I’ve been working on a side project with a friend for well over a year now, and in addition to the joy of working with someone you like on a problem of your choice, I’ve had quite a lot of “aha” (or “oh…”) moments.
We’re both basically happy with the state of our little project, with just a few small tweaks remaining before we can send it off into the world, except for one not-so-small thing: billing.
There are several fairly obvious reasons why we (and anyone, really) left billing last: it is an unappealing, generic thing to work on, as opposed to the very cool and very specific features we have worked on that are particular to our project. And besides, we didn’t even know if we would get this far: maybe we lost interest in the project midway, or personal circumstances forced us out of it, or some unforeseen technical limitation rendered it unfeasible, or an identical twin project beat us to market. Starting with billing sounded a bit silly, presumptuous even, and a waste of time.
Alas, a year later and with bountiful hindsight, I see clearly that that was exactly what we should have started with. Maybe not the very first line of code, but Billing should definitively be among priorities of the first few months of a project.
The reasons for that are embarrassingly simple, and I’m sure all the cool guys have said it before a thousand times: Without Billing the project won’t launch. It precludes all the rest of it. Yes, the project can still flop, be abandoned, or succumb to a number of unpredictable mishaps. But we can say with 100% certainty that none of the cool features we worked hard on matter unless there is a sustainable way of financing them. Next time, I will start with Billing!