GuerrillaXp, Bristol, 21-23 November 2011
We have now finished our inaugural Certified Scrum Developer course at the Bristol Marriott and what a great three days we had!
From the word ‘go’ we embarked on an intensive look at some of the key pillars of Extreme Programming and Scrum. On day one we covered many of the key technical aspects of XP in a classroom format where delegates were first taken through presentations on various modules and were then asked to complete hands-on exercises in Visual Studio. Following their instruction booklets, each delegate worked through a series of exercises using their dedicated development machines running in the cloud. Modules covered continuous integration, code management, automated deployments and test driven development. More technical aspects were also investigated such as dependency injection and aspect oriented programming along with some common design patterns. The hands-on labs gave each delegate the chance to experience the technology in action and for each module “before and after” code was provided enabling individuals to follow up the subject in more detail in their own time.
Days two and three of the course saw the delegates form a Scrum team and work together to deliver a set of user stories. Before we began, an overview of the Scrum framework was presented and discussed to clarify some of the subtler points. As it was one of the common themes throughout GuerrillaXp, we noted that it is much easier to adopt Extreme Programming tools but much, much harder to cultivate a great Agile culture within an organisation. Our two day “mini-sprint” was designed to explore some of the aspects of that culture in order to get a feel for Agile in action.
Starting with Sprint planning, “Team Hurricanes” (as they were now know) were presented with a set of user stories from their Product Owner. The Product Backlog had been designed with an element of realism about it with real business needs and drivers behind each story. However, as is the case in the real world, there were deliberate “challenges” set within the backlog to encourage the team to question and discuss with their Product Owner the stories being asked of them. Agile, after all, relies heavily on open communication between technologists and their business counterparts.
With Sprint planning over and a set of user stories taken into the Sprint the team then set about creating their Sprint Backlog (on the wall!) and complete a task breakdown. Hour estimates were placed on each task enabling a burndown chart to be created. The team then split into pairs and selected tasks from the board to complete using the Extreme Programming skills they had covered in day one.
A huge build radiator had been created to project to the whole room the status of the Sprint. On the radiator was a Red/Green build status indicator showing the health of the software alongside a constantly updated burndown chart showing the health of the Sprint. Along the bottom of the radiator was a “Check-In Ticker” reporting live on the last few check-ins to the code base, who had made them and their comments.
Two “daily” stand-ups were held in the Sprint and tips were provided on how to run a good stand-up and which pit-falls a Scrum team should look out for.
Finally, at 3:00pm on the final day of GuerrillaXp, Team Hurricanes held their Sprint demo. Slides were banned and all presentation was done using live software running in an (automatically) deployed environment in the cloud. With an eagle-eyed Product Owner scrutinising the behaviour of the deliverable using not only the provided acceptance tests but also at a detailed level using the Fiddler Http proxy, this was no rubber stamp meeting. This stringency was intentional. In Agile, everything hangs on software being “DONE” at the end of a Sprint and it ain’t over until the PO sings!
Our final ceremony was the Sprint retrospective where Team Hurricanes looked back over the previous two days and highlighted areas which went well and those which could be improved upon. All agreed that Continuous Deployment, Test Driven Development and their “Definition Of Done” had helped keep control of their software under pressurised conditions. Lessons learned included being more aware of refactoring techniques and good design principles.
GuerrillaXp covered a lot of Extreme Programming and Agile material in the space of a few days, both a classroom environment and the more fluent Sprint. Team Hurricanes did extremely well though delivering working software to specification in the time allotted. The feedback we received at the end of the course was fantastic! – “Intense”, “valuable”, “motivating”, “hard to think of anything that wasn’t valuable” were just a few of the words used to describe GuerrillaXp.
Great work Team Hurricanes and good luck on your XP and Scrum journeys!