"While We're at it": The Most Expensive Phrase in Software Development
While listening to the radio the other day, I came across a talk show where a contractor had called in to discuss a recent client he had. Over the course of 3 weeks, what had started as a backsplash installation in her kitchen had snowballed to a full kitchen and bathroom renovation. According to the contractor, one common phrase almost single-handedly paved the way for the massive increase in project scope: “while we’re at it”.
The train of thought goes something like this:
“I know we just wanted to do the counters, but while we’re at it, let’s paint the walls too!”
“You know what? While we’re at it, let’s get new cupboards as well!”
“And while we’re at it, let’s just buy a new house alltogether!”
Maybe that last one is a bit of a stretch, but the cost can be the same when it comes to software—the options are limitless! In any project, be it renovations or software development – the term “while we’re at it” can be a slippery slope. Whether you are installing a new backsplash or creating a new app, you need to keep your original vision in mind.
For software in particular, adding on additional features or requirements during development can be costly. In fact, according to The Project Management Institute, failing to establish project specifications and failure to focus on high-priority features are some of the leading causes of scope creep. Don’t start building before first establishing your requirements – otherwise, development will become the most expensive “while we’re at it” ever!
Mitigating the Mentality
If you had unlimited time and budget, the “while we’re at it” mentality wouldn’t be a problem because you would be able to include everything in the final product. Unfortunately, having an unlimited budget is highly unlikely, and your users will need the tools as soon as possible. So, here are a couple of ways you can mitigate the “while we’re at it” mentality. First, establish SMART (Specific, Measurable, Attainable, Relevant and Time-Specific) goals at the start of the project; they will help you clearly outline your project’s objectives.
Another useful tool is the MoSCow Method. The MoSCoW method breaks each feature and function down into the following categories:
- Must have
- Should have
- Could have
- Won’t have
Leverage your project manager to make sure that each requirement doesn’t become a “Must Have Item”. If all requirements become a “Must Have”, it defeats the purpose of the method! A prioritization matrix is a good way to determine which category a requirement falls under.
The YAGNI (You Aren’t Gonna Need it) principle is another useful tactic to employ when trying to mitigate the “While we’re at it” mentality. The YAGNI principle basically means that you should not add features or functions until deemed necessary.
Like co-founder of Extreme Programming, Ron Jefferies has said:
“Always implement things when you actually need them, never when you foresee that you need them.”
At CoreSolutions we have refined our process to mitigate the likelihood of scope creep. First, we start by establishing what is known as an MVP (Minimum Viable Product)— the most basic version of the system acceptable for release. Then, we add on the value-adding ideas and features, like the should haves and could haves in the MoSCoW method. Bolt-on features can be added moving forward, ensuring the product extends as your business extends.