Addressing the Pain
Prior to the workshop, some of the team had attended an “introduction to agile” training class and Software Education’s Software Development Conference (SDC)in March 2009, including a requirements-by-collaboration workshop by Ellen Gottesdiener. This gave them an understanding of the principles and philosophies behind agile methods.
Part of our workshop involved a presentation on the various agile software development practices, followed by extensive debate among the team members about how (if at all) the team could apply these practices to address the pain points and whether the team was prepared to apply them.
The team identified specific practices that could improve the software development process, including the following:
Daily Standups: Meetings that provide rapid and efficient information sharing from within the team.
Retrospectives: Meetings to discuss what has been going well, what has not gone well, and what are we puzzled by; these retrospectives are key in moving these learnings forward every day.
Showcases: Sharing with our stakeholders progress, which enables early and continuous feedback.
It is important to note here that while management provided support, encouragement, and the leeway to make the changes, the team was responsible for selecting those changes.
What resulted was not a branded agile methodology (for instance, we didn’t adopt Scrum or Dynamic Systems Development Method (DSDM)as our approach), but rather a pragmatic set of practices that fit with the agile philosophy and aligned with LIC’s values and behaviors. Our selected practices (iterative development, requirements as stories, sustainable pace, daily standups, social contracts, retrospectives,co-location, adaptive planning, continuous feedback, frequent small releases, automated testing, continuous integration, test-driven development, refactoring, and pair programming)form the core of LIC’s agile, iterative approach, specifically aimed at creating a more collaborative environment with cross-functional teams, each dedicated to a single work stream along with open communication with the customer representatives. We have drawn from the social, management, and technical practices of a variety of branded agile methods as they reinforce each other and provide us with the improvements we were seeking.
Learning the Practices
Having identified the practices that team members felt would help them improve the software development process, the next step was for everyone to agree upon an implementation approach. After a team discussion, we decided to train everyone in the practices using real LIC projects, reorganize team members into two cross-functional teams, co-locate those teams into a reorganized space, and get them started on two work streams.
Our first step was to provide some structured training on agile for the whole group, including courses in team practices, stories, testing, project management, and programming techniques. To ensure that the team could implement this training in a real-life scenario, they undertook the training using real LIC projects. (We had hoped to select non-critical projects in terms of scope, time, and budget, but this wasn’t possible in our commercial environment.) Farm systems needed to deliver two major projects within the next year: the next release of the MINDA product and a new, pasture-to-plate traceability product. The group formed two cross-functional teams, and the training began.
During the excercises, the two teams worked on identifying the stories for their projects. In a single, one-day, collaborative workshop, they scoped the two projects, identified the user stories, prioritized and estimated the stories, and produced initial release plans for the products. This was an enlightening experience. The teams were totally focused on their individual projects with no task switching, and they had the right people in the room and the necessary tools (flip chart, paper, pens, and wall space) to achieve their goal.
Rob Ford, general manager of the farm systems division, said during day one of the “Requirements as Stories” training course, “We achieved in one day what normally takes us six weeks!”
We had learned a powerful lesson. Given the right people, a dedicated focus, a collaborative approach, the right tools, and the right environment, we could deliver.
Figure 1: The story-writing workshop