I ran my "Software Project SOS" session at Skills Matter on Thursday evening and it was brilliant fun. The premise behind the session was to present the current state of a struggling software project and understand what could be done to fix it.
To set the scene, rather than describe the software project myself I asked everybody to imagine they were taking over a project that they had no exposure to. In order to understand what state the project was in, they had to ask me questions to explore the situation and discover the important information (an important consulting skill).
With the facts discovered (the white index cards in the photos below), I then asked everybody to vote on those they thought were the most important to do something about in order to bring the software project back on track.
The voting certainly picked out the big-ticket items that needed fixing in this particular scenario and it was amazing to see this unfolding. No helping, no prompting; everybody just jumped on these items.
For the final part of the session, I asked people to pair up, take a couple of the cards and jot down some ideas of the changes they could make to turn the project around.
The room was buzzing for about 5-10 minutes while everybody was throwing ideas around and busily writing up those ideas on post-it notes. The end-result is what you see above and the full set of photos showing all of the suggested changes is available to view online.
Take a look at the photos for yourself. They're mighty impressive when you consider that very few of these people had met before and they came from different backgrounds, with different levels of experience working on different types of software. Yet, as a group, they identified the key problems that were causing the project to struggle and came up with a number of ways in which they could be resolved.
The other thing that I really admired was the level of pragmatism exhibited. There's an awful lot of evangelism being thrown around the IT industry at the moment, particularly with the buzz around lean, agile and software craftsmanship. Clearly many of these ideas are appropriate for turning this software project around, but nobody was stood up chanting that "agile is the one true way to build software", for example. The scenario we used was based upon a combination of real software projects and included a fair share of real-world constraints that couldn't be overlooked. They had to be taken into account and this is why the results of the session are so impressive - everything suggested was relevant, applicable and pragmatic.
Thanks again to everybody that came along and made it such an excellent evening ... I'm certainly looking to run this again.
Simon is an independent consultant specializing in software architecture, and the author of Software Architecture for Developers (a developer-friendly guide to software architecture, technical leadership and the balance with agility). He’s also the creator of the C4 software architecture model and the founder of Structurizr, which is a collection of open source and commercial tooling to help software teams visualise, document and explore their software architecture.