Agile Software Development practices are bringing a host of benefits to more and more organizations who choose to adopt this Lean way of working – and do it right. The press is full of success stories and examples of companies who have successfully made the journey. Well documented benefits include greater stakeholder involvement yielding improved customer satisfaction, higher quality products, greater adaptability to change, faster risk retirement, and earlier initial product (and value) delivery to name just a few. So what could possibly go wrong? See where this is going?
The real-world fact is that moving to Agile is not necessarily an easy move, especially for larger development teams. Like any methodology there is no such thing as perfect, meaning that there exist pitfalls and problem areas that have caused more than one company to wade in deep and then get out quick. Interestingly many of the pitfalls are not at all new to Agile, they are classic old school pitfalls that still apply even with Agile. Sorry – Agile does not solve all problems. You still need some level of up front estimates to help build a solid business case and avoid stakeholder disillusionment. You still need solid customer engagement and in fact Agile requires greater customer engagement! Your Agile teams and their leaders still need to look above the trees and see the forest, meaning you cannot just jump in and begin sprinting without a clear vision of your destination. And the list goes on. My message here is that the fundamentals still matter.
Today I want to focus on one fundamental that transcends methodology and that is developing a solid business case to justify an investment in software development. To quote Stephen R Covey, “Begin with the End in Mind.” When it comes to software development, this translates to starting with a good vision document, reviewed and approved with key stakeholders. It is appalling how often this step is skipped and it is fundamental. Complete this step or do not pass go!
When the vision is agreed upon, quantify the business benefits, develop a cost estimate, and complete your business case before the project begins, before Agile teams are fully assembled — aka early on. There are those who might argue estimates are too difficult and that Agile eliminates the need for this step. “It’s too waterfall”. My advice is go right back to the fundamentals and complete your estimates. In fact, use modern tools and Lean thinking to improve your estimates and complete them much faster.
One tool that I’ve found to be highly effective is SEER from Galorath and there are other similar modeling tools available. These tools allow project leaders to quickly describe a project in a surprisingly few number of steps and then based upon sound estimation techniques and real world project histories, create estimates for cost, effort/complexity, and duration. More than that, modeling tools enable PMs to quickly test different ideas to help business teams evaluate multiple scenarios and business cases with relative ease. Unlike traditional techniques, which can be quite time consuming and less accurate, using tools like SEER reduces estimation demand on your most experienced and valuable technical resources, which really fits well with Agile thinking. You do not want to have experienced developers and architects getting dragged into being professional estimators, you want them developing great software!