How to control costs of custom software development – Part 2 “The Scope”
In part one we talked about how it was important to plan. There is no doubt that is one of the most important items you can do in a custom software development project. Yet one must remember that a plan is only good until you use it. What I mean by that is that you should expect change. No software project that is going to succeed is going to go 100% according to plan. For example you may roll out a beta test of the software and get back 100 things that are wrong because what your users told you they wanted is not what they needed or they like the changes so much they must have this an extra add-on. This is custom software 101 and should be expected, that is why I say that you must expect change. Now the key to keeping a project on time and on budget is to anticipate these types of change requests up front. I’m not saying that you should double your figures or time, but you should make it clear that your numbers are estimates and have some cushion in your budget. Your software shop should not add this to their quote; they should quote what you have asked for so far.
One of the best ways to plan for change is to set milestones in place where you have reviews of functionality. These milestones can be beta tests, check points, or iterations that get deployed. During these milestones everyone gets a chance to bring their ideas up. After these milestone reviews this is where you can figure out what is in the budget for the changes and how it will affect the timeline. The most important things when looking at adding changes to an active project are : does the change affect the success of the project as stated originally, is there a strong ROI to justify adding it mid project, and is there executive support. If all three of these are true, then it’s a no brainier that you need to add it in to your project.
The most important things to remember when adding items into a project are:
- The timeline will increase. No matter how easy something is, it will take time, you must expect the timeline to increase.
- It will cost money. There is no such thing as a free lunch. No matter how the software company words it, you will pay for it.
- Watch out for scope creep. Just as stated above new items will add time, don’t fall victim to adding so much to a project that it can never make delivery. Remember you can always have a version two, three, etc.
- It must be important, not everything is as important as people make things seem. Rank the items you want to add in by importance with their cost and estimated time. Evaluate how much time and resources you have and see how many you can fit in starting with the most important.
- Don’t switch tasks. If you are currently 50% done with task A and you want to add task B as it’s really important, don’t stop task A. Let task A finish then start task B. Now granted in the real world this may not always be possible, but remember switching tasks in development is like switching tasks in writing an article/book. If you are in the middle of writing a book and you have to stop and write another book. How easy will it be for you to start writing again in the first book? Not easy at all ,you probably forgot what you were writing about in the current paragraph and will most likely need to reread a good chunk of you own book to get your mind back to where it was. This is why constant task switching in software development can kill a project. It just simply wastes time with little to show for it.
Now one important thing to note here is that adding items to the scope is to be expected and will increase your cost and time. What this should not do is change the budget and time estimated to complete the items you already had quoted. If you plan ahead and anticipate the change it will ultimately save you time and money on your next software project.
He who rejects change is the architect of decay. The only human institution which rejects progress is the cemetery. ~Harold Wilson
