In a recent email conversation I touched on the ability, or more often inability, of a one-man software project to deliver regular controlled packets of code. Or to put it another way the the ability for many one-man software projects to deliver very little or nothing at all despite setting out with the best intentions and a following wind. At the heart of the problem lies the following rather messy aphorism:
You don’t get concencus in a one-person software project.
Concencus by definition is a group activity. A one-person project or software product can have concencus but this is only arrived at by interaction with others, usually your users, and if you don’t have a delivered product or a project then you don’t have users. Concencus is vital to give you the confidence to deliver what you’ve been developing.
So the question turns to how can we form a concencus on project decisions when there is no code to attract users? What we’re seeing increasingly is the use of crowd funding to drive software development. Crowd funding is proving to be very useful for software developers and not just from a financial point of view. More importantly crowd funding can help drive direction, delivery and scope and also help test the choppy waters of marketing by trying out ideas on an interested and motivated audience. This works better for established companies or old-timers than it does from unproven individuals with new ideas simply because old-timers already have a track record and an audience. So let’s back up a bit further.
A Kickstarter project commits you to a direction – a product usually – and an intention. You scope is inherently limited by the promises you make, the videos you release, the decisions you’ve already made when you’re coming up with your Kickstart concept. It’s all about selling a promise.
A one-person (software) project is usually driven to scratch a particular itch, and its scope may not necessarily include getting to a point where you can sell something. You might want to make an open-source framework, you might want to come up with a vaccine, who knows? What you do know if that you as a one-person team have limited time to accomplish this and you want to make incremental progress.
How can you deliver progress? Well, I’m going to tell you what I do. I do it by giving myself more than one thing to do in my spare time. Instead of deciding to deliver one project, I will deliver three or four or five projects simultaneously. Each will have its own technology associated with it that is slightly different, each will offer something slightly different that allows me to enjoy working on it for a different reason. It’s me after all that I’m pleasing here. I’m also out to help others and provide something they might like and find useful but I’m doing this, for me.
The premise may sound slightly insane – why should you make your life more complicated when you want to focus all your spare time on doing one project really well? In the next few weeks I’ll take you through how I do this and what techniques I use to keep myself interested and focussed. Above all I want to show you that you don’t need to despair when you look at the calendar and realise that the code is still not out.