While I don’t have any statistics to back me up, I’d guess that the number one killer of software is the Moving Target. Usually, a software project starts with a person or group of people deciding on what the program should do. Then there is a period of designing the software, which is sometimes long, and sometimes short. Before long, though, the coding begins. It is usually at this point when people start saying, “Hey, guys, wouldn’t it be great if we could do ____?” And everyone loves it and high-fives each other.
Now, there is absolutely nothing wrong with coming up with improvements to the program once you start coding. In fact, it is almost a must. But at some point, if you don’t start saying “Hey, I’ve got a great idea for version 2.0!” version 1.0 will never get completed, and it will remain buggy and scattered until it suffers a horrible death because your end goal never stayed put long enough to be hit.
The solution: a feature freeze. At some point, write down a list of all of the features that you absolutely need or want in the current version. Also, make a second list of any other features that you’d like to see eventually, and when you come up with new ideas, put them on the list. Once you’ve got your current version list complete, start a feature freeze, and under no conditions (well, there’s always exceptions) add anything else to the list of features. If a new good idea comes up, stick it on the second list for later, and keep working on the current version.
Having a feature freeze will ensure you get a working version out the door. Then you can go back to the improvements you thought of for version 2.
Got any other good ways to deal with moving targets? Leave a comment!
View Comments
blog comments powered by