Many startups start developing their product with out a ‘development plan’.  Many of the entrepreneurs I have talked to, found this as common thing. Common mistake that leads to mediocre technology is not having a decent development plan.

Well yes, startups can not adhere to some plan. Things are figured out as we go along. Things are added, removed, enhanced many times during the first beta release. But, that does not mean we can not have a plan for development.

Problem I see is, if you do not have a plan a target release date, you are aiming at a target which is not there. Result, you miss! and you miss BIG time. Worse is startups that put in place a very very aggressive development plan. 200% of times that target is never achieved. Once you miss one deadline you are going to miss many deadlines.

You need to find out set of features that you are going to implement in first release, no matter what. Find out function point estimations for this. Do some basic resource management math. Put it in an spreadsheet (I personally recommend Open Office!) and start shooting.

Now if you come across things that needs to be added, enhanced put them under on-hold changes. Release the product (even if internally) on or before the target date you had set. And then start incorporating those changes.

Advantages you get is, changes are required too often. Dev cycle is broken, processes go out of window when you change too often. Also many times changes are done and only to rollback in couple of days time. So time is wasted and wasted again. Instead keeping changes on hold, gives you time to really think about it. Make sure you are going in the right direction and not detouring so early in the development.

Summary: Always and always have a decent enough development plan in place and try to follow deadlines. No matter how cool features you have, how 'All Stars’ development team you have. Teams have struggled hard when they do not follow at least basic software engineering principles.