Starting new projects
So I know I'm not the only dev who does this, but I tend to start a lot of projects -- and not finish them. I'm coming up with a checklist of things that I want to make sure I do before getting involved in any new projects.
Read on for some of the initial questions you should ask yourself, and what to do next.
Questions
Is it useful?
No, really, would anyone use it? Would you personally use it? Would people like you use it? Who is your audience? Would they use it? ... ask them?
Is it sufficiently useful?
Is the problem this application aims to solve painful/time-consuming/hard enough that people will actively search out an application that does what yours does? If they have any problems with your application, how probable are they to going back to what they were doing before?
Is it unique?
If it's a great idea, there's a fair chance someone has thought of it before. Put in a solid 20 minutes (or more) of searching for a product that does what you want to make. Pretend that you already made your product -- what terms would you use to search for it, besides the name?
Is it sufficiently unique?
So your idea is original -- but is it really original? A social networking website with one additional feature is not sufficiently unique. A news aggregation website with customizable themes is not sufficiently unique. A script that performs the same stuff as another script but is 5-10% faster is not sufficiently unique.
Is the project small enough that you can do it with the team you have?
The team you have may be just yourself, it may be 3 guys, may be as high as 5 guys. Can you make the project a success with the team size (and members) you have? Can you finish the project with the team you have?
Is it fun?
No, really -- this is a key factor in whether you'll be able to stay mentally and emotionally involved in the project. Do you think you'd enjoy working on it? Spend 10 minutes staring at the ceiling or jotting down some ideas while thinking about the project. Reduce and translate the ideas to the smallest number of features that you'd need to make a "1.0" version of the project. Will it be fun to implement those features? Or will it start to seem like real work after only a few minutes of development?
What next?
Are all of the above questions answerable with an emphatic "Yes!"? Then continue on to the below steps...
Plan more!
Odds are you haven't written anything down yet. Go ahead and do it, and do it by hand -- not to set it in stone, but rather I've found that to get my creative energies going you have to write it down. And put it to paper because a) you write slower than you type, and so this forces you to think more about what you're writing and what you will be writing next, and b) paper has fewer email notifications and instant messages popping up...
Bounce your idea
Reduce your game plan to something succinct and organized, then pitch it to friends, families, coworkers, and members of your target audience. Do they think it sounds useful? Would they use it?
Sit on it
Any time you make a big decision, it usually helps to sit on it for a while. Pick a length of time -- 1 day, 3 days, a week -- during which you only plan. No coding! It's hard to think through general flow and architecture when you're making it up as you go along. Then spend another day or two where you don't even plan about it. Just let the ideas float around in your head.
Stay in the game
How to keep focused -- in the next post!