Have you been on a project with scope creep recently? The scope increases, that leads to late delivery of the project, budget overruns, stress, late nights spent coding when you’d rather be doing other things. Plus all those endless changes have made to the code base decline in quality from all the work done under pressure. Writing code is a very brain-intensive task and when people are stressed out, their code quality tends to go down.
In a recent survey of attendees of a webinar I gave on “7 ways ColdFusion projects fail”, 89% of people listed scope creep as a problem they have.
Here are three keys to avoiding scope creep problems:
- Clear written requirements
- Requirements sign off
- Change management system
1. Clear written requirements
So how does scope creep on a project? You start off with one set of requirements and then you discover other ones as you're writing the code. This is not surprising as users find it difficult to express their needs in a way that developers can understand.
What can we do about these problems and other requirements issues? I think one of the most important things is having clear written requirements. That's not just writing. It's also screen shots or mockups of any screens and reports that you have in the system - because users often can't fully understand a written set of requirements but when they see a picture of something they can give you precise feedback that this is or isn’t something they want.
2. Requirements sign off
Next, it is important that an executive on the client side signs off these requirements and agrees that we're going to stick with this functionality until we deliver version 1.0 of the app. I recommend printing your requirements out (do screen prints if you have prototype screens) and literally have an executive sign the paper. While this is more work than getting a verbal go ahead, I have found that each person remembers the terms of verbal contracts differently… Physically signing gets people to read what they are signing, provides a written record of the scope and makes everyone take the process seriously.
3. Change management system
If there are any changes that come up, have some kind of way of tracking them in a formal change request system. A spreadsheet is the simplest option. A change tracking system that you buy or make yourself might be more robust. The important point is that you track the changes and you evaluate each one. “Okay, are we going to do these in the next version or are we going to adjust our schedule to get them done in this version with a later delivery date?”
In my lifetime as a programmer and project manager, I have seen a vast amount of scope change. I can tell you from experience that having and using a change management system is definitely one of the elements needed to avoid scope creep.
At TeraTech, our promise is to deliver projects on time and on budget. Some of the reasons that we can promise what we do is because in addition to other processes, we insist on very well defined requirements with executive sign-off. Once in project mode, we are diligent about using a change management system to keep on track.