Harnessing the Hybrid
As outlined in the previous article, having identified several shortcomings in our approach to project management, we sought to develop and implement a series of improvements. With our diverse business environment, we looked into the possibility of adopting best practices from the agile approach, whilst retaining the critical elements of the more traditional waterfall approach.
The Appearance of a New Approach – Utilising the Best of Both Worlds
At the start of a project’s lifecycle, our approach follows a more traditional path. A Gantt chart is produced as part of the quotation process, displaying key deliverables and high-level tasks against a timeline with the required resources at each stage. Following the flow of the Waterfall methodology, these charts will typically reflect the requirements, design, development and testing stages of the development lifecycle. Having these timelines in place makes it easier for us to speak with our clients about the plan, as well as giving us a framework from which we can derive estimates and lets us agree on and track progress against key milestones.
Once the high-level plan has been agreed, we can start to introduce Agile practices into our approach. Our tool of choice for recording tasks and monitoring progress is Jira from Atlassian. Each high-level task from the Gantt chart is added into a project backlog as long-term ‘Epics’, essentially ensuring that the backlog accurately reflects the milestones laid out in the plan.
The next step in the process is to break down each Epic into relevant, low-level, short-term tasks, and assign an estimation of effort. These tasks are then organised in the backlog according to their level of priority, with the highest being positioned at the top. By following this process we ensure that tasks are completed in a suitable order.
The overall aim is to have a project backlog with a complete and carefully prioritised list of the tasks needed to complete the project, and for the total estimates of low-level tasks to correspond to the high-level estimates outlined in the initial Gantt chart.
Projects are then delivered in two-week sprints, where the goal of each sprint is to develop something functional. This could be the production of sections of a requirement specification or design, but could also be fully coded and tested system features. Each sprint kicks off with a sprint planning session where the project team selects several tasks from the top of the backlog that they believe will be achievable by the end of that sprint. There is no set limit on the volume of tasks or on the type, however, this will depend on the capacity of the team during the sprint, the priorities of the customer and the approaching milestones.
Several Agile ceremonies are adopted throughout each active sprint. This ensures a consistent focus on progress and early elimination of unexpected barriers. Short daily stand up meetings, open up communication between team members to ensure that everyone knows what is going on and individual blockages can be discussed. These stand-ups also introduce and push on the concept of task ownership for our engineers. Each person knows what tasks they are responsible for and how they fit into the overall timeline for each project.
Upon the conclusion of each sprint, Sprint Review meetings are held, followed up by a Sprint Retrospective. While they may sound similar on the surface, these meetings differ drastically in what they achieve. The aim of the Sprint Review is to provide team members with the opportunity to showcase what they have managed to accomplish. Typically, this would be a demo of the new features developed, but could also be the release of documentation. On the other hand, Retrospectives encourage self-review, asking questions such as “Were we realistic with our expectations?”, “What could we have done better?” and just as importantly “What did we do well?”. In getting this feedback regularly, we can continually improve our delivery and processes.
While having our new hybrid project management approach ready in hand is certainly a step in the right direction, there is still the matter of fostering adoption and reversing years of learned behaviour. How have we decided to fight this battle? Check back next time to learn how defining critical success factors have helped to drive internal change to meet the standards that we want.