I co-presented 'The Value of Agile Methods' at the Microsoft Architecture Forum on Monday along with a colleague Howard van Rooijen. The presentation discussed the shortcomings of traditional software development approaches, before looking at agile methods and engineering practices that we have found help deliver quality software with features that the business actually need. Here at Conchango we have adopted a combination of Scrum and engineering practices derived from XP and this is what the meat of the presentation material covers.
Microsoft has posted an early version of our combined slide deck and this can be downloaded from here.
Howard has published his final version slides with extensive notes on his blog.
My slides have quite a few custom animations in them with the result that the message may get lost in the translation to jpeg so I've decided to leave them in PPT format on the link above rather than including them in this post.
We had very good feedback after the presentation and it was a shame that we didn't get more time to answer the many questions. It was interesting that the questions and concerns were not with the concept of agile methods but more about how to persuade organisations to adopt agile approaches, with the most common obstacle seen as the dreaded 'Fixed price - fixed scope' impasse.
Sadly there is no instant silver bullet answer to this problem with the reality being that culture takes far longer to change than technology. The big problem is this illusion of fixed scope. This could only be a real concept if the requirements could be recorded in such a way that they were 100% rigorous, complete and unambiguous. Having achieved this impractical aim the requirements would then have to remain unchanged through to the time the software gets delivered. Life isn't like that, well at least mine isn't! An interesting example of the impedance caused by the written word occurred in the panel Q&A session at the end of the Architect Forum. Delegates wrote down their questions for the panel on post-it notes that were then read out by the facilitator. Almost every single question needed to be qualified verbally before we could be sure we understood the question enough to begin answering it.
So we give up and admit that we don't fully understand the requirements at the start of the project and we know they'll change anyway by the time we're done. This makes it somewhat problematic when trying to gain budget approval or bidding for a project. A certain amount of education needs to take place in the corporate world to make it understand that specifying and building software is far from the exact science that it is generally assumed to be.
When we engage with a customer we explain the futility of the fixed scope concept and rather than fix the scope we agree a fixed price to suit the budget. We then incrementally deliver the most valuable features, as prioritised by the business, until either we reach the end of the budget or achieve enough value from the delivered features. This approach does require a level of trust between the parties and has a much greater chance of success when the relationship works as a partnership rather than a customer-supplier arrangement.
Another colleague has a post dealing with the change in approach required from the Project Manager's perspective when dealing with the cost-scope-time triangle. Find this here on Steve Garnett's Blog.