Software Estimation Best Practices

How to Improve Your Software Project at the Foundation

Now that it’s officially summer I’ve been feeling the pressure to do some of the home improvement projects that I’ve been putting off since winter.  I figured watching one of those cable shows about flipping houses would inspire me to get started.  But instead, I started thinking about all the parallels between the show and software projects.

In our training classes, we often make the analogy that software projects are like construction projects.  When you start a project, you need to determine its scope.  That would include how big it is and how much functionality it will have.  You need to determine what resources are available to you.  This includes what tools you have to build your project, the number of people available, their skill levels, and your budget.  You also need to determine how much time you have to complete this project and the level of quality you’re willing to accept.

This particular episode began as most home improvement shows do.  A team of overly ambitious stakeholders with limited construction knowledge decide that they are going to flip a house because it’s all the rage this year.  They do some calculations based on the costs of acquiring, renovating, and maintaining the property, which determines that the house needs to sell in 60 days or else they will lose money.  Already, we’re looking at a high risk project.  

They hire a team of carpenters and contractors to start the work, but during the initial survey of the property they discover that the scope of the project is not possible given the allotted schedule or budget.  The team then engages in a series of spirited discussions about which features they can cut without compromising the overall quality of the house.  The remainder of the episode is then spent watching the team rush to finish the project on time.  

By working around the clock with an added touch of Hollywood magic, the team is able to meet the scheduled deadline, sell the house, turn a marginal profit, and deem the project a success.  The team then goes off and celebrates until the next episode, which has a nearly identical plot.  However, in real life the end result is rarely so fortuitous.  Often the projects end up overrunning their schedules and/or budgets, or never reach completion.

The difference between home improvement shows and software development is that home improvement shows rely on the drama created by limited resources and a rushed schedule to get viewers.  The shows never tell the viewers what is a manageable project scope, nor do they examine previously completed projects to determine what has been manageable in the past.  

With software projects, a lot of this drama can be avoided by doing some upfront planning.  If you collect data on your completed projects, you can use your history (or the QSM Industry Trends) to determine what a typical project would be moving forward.  By deciding on which features are important to the project and what you can afford, developers and stakeholders can decide together what would be manageable in terms of the scope, deadline, and budget.  Setting expectations early in the project lifecycle makes it much easier to understand what is actually achievable.  Finally, if you under-promise and over-deliver, it’s much more likely that your future dealings with stakeholders will be positive, and you’ll avoid a lot of sleepless nights in the process.

Blog Post Categories 
Process Improvement Project Management