As the old saying goes 'calm waters never made a good sailor'. Applying this maritime proverb to a somewhat different, but none the less hazardous field like IT project management, certainly has its merit. The reality of IT project management in the modern age is a tale of delayed project go-lives and project completion beyond the original budget and time frame.
The industry has seen a paradigm shift from traditional waterfall project management to more agile ways of working, partly in the hope of improving this otherwise dismal delivery average. Certainly, agile ways of working have yielded some very real benefit - a topic for another day. A key theme in the narrative of delayed project delivery is that of defect resolution, especially as a product matures and approaches that all-important go-live date. The theme of this article, therefore, is defect management in an agile context. It will offer practical steps on how to get a potentially high defect situation under control before your project team are overrun by bugs and your delivery timeline ultimately suffer as a result.
1) Understand the problem
It might go without saying but if you do not understand the root cause of your defects you will not be able to stop defects at the very source. Bug management can sometimes feel like a game of whack a mole, as you resolve one bug and another pops up in a seemingly never-ending cycle. Investing time in knowing the cause will at the very least help prevent more defects down the line. It will also help determine and align the team on what collective action is required to remedy the situation. Once this is done, you can start focusing on bringing that defect number down. In an agile context the retrospective offers a natural point in which this topic could be addressed with your team.
2) Build in more quality measures
Emphasis on quality is imperative and the number of defects your team create is a measure of quality. Putting in place simple measures, such as desk checks on developed features or peer reviewing, can help your team slow down to speed up. Especially when those interventions help identify issues closer to the development team’s local environments. This promotes the spotting of issues before they make their way through the various test and UAT environments, before wasting additional time and thus money.
3) Listen to your Scrum board
Often the scrum board itself is a great indication of where potential process improvements exist. Focus on process improvements can help accelerate your defect resolution process. Tracking bugs on the board and simply placing a dot on each defect or task each day may shed light on where focused effort could improve overall flow for the team. Something caught in a state for a day or more can mean it is blocked and should require focus and attention. If you are the scrum master, removing blockers will be one of your chief concerns. Encourage the team to park blocked tasks while you resolve them allowing them to focus on tasks which can be completed.
Agile morning meeting
4) Don't Panic
Depending on the length of your career, chances are you may have encountered panic amongst different stakeholders and team players during critical parts of a project. Resist all urges to become overwhelmed and in a state of panic when this happens. Your delivery team requires calm and rational thinking and being objective and consistent in your decision making is half the battle won. Remaining calm will show your team and upstream stakeholders that you are in control and in so doing, allow you to be. Quick decisions made in a panic can only compound the problem.
5) Be factual
Most agile project management tools like Jira, provide robust reporting functionally. Understanding the rate at which your defects are being logged and closed is a good start to getting to grips with bringing the defect count down. You can also use this data for more accurate reporting to upstream stakeholders. Better yet, it empowers you to talk from a place of factual confidence rather than emotive feeling.
Defect management and tracking dashboard
6) Size your defect list and re-plan your delivery (sooner rather than later)
Each defect is a little bit of extra scope that will need to be addressed on your path to production. Rushing scope can result in additional defects downstream. For that reason, it is better to take a step back, size your defect scope and begin expectation management. If additional time is required to meet delivery, knowing so sooner and communicating this right away goes a long way in establishing credible delivery for your team. Nothing can be more frustrating for a management team than continuous week by week delays, with false hopes and promises.
7) Understand your scope
Is it a bug or new scope? The agile manifesto agrees that documentation of scope needs to be fit for purpose. This, however, does not mean that agreed scope and detailed stories are non-existent. Understanding the target end state of the product up front, and to the right level of specificity will help avoid those complex discussions. Sprint planning is the opportunity for you and your team to truly understand what needs to be delivered. Ensure that this ritual is a vibrant and dialogue rich session between the product owner and the team.
8) Defect prioritisation
Remember, every hour of effort in doing something is opportunity cost spent which takes away from doing something else. That something else could add much more value to the business. It is important that defects are prioritised and that clear defect tolerance levels are in place. In a perfect world, defects do not exist. However, in reality this is not the case. It will be better to focus your time on potential showstopper defects of high priority and work towards the more trivial thereafter.
In closing, tough situations bring a treasure trove of learning, learnings for a team that allow them to adapt and improve. Project management theory makes use of a ‘lessons learned’ log while agile speaks of building learning into each iteration. It is important that these learnings are documented for future reference. Tools like Confluence and Microsoft Teams are a great place for storing these types of reusable assets of knowledge. Encourage your teams to seek these assets, grow them and more importantly avoid those high defect situations in the future.
Additional blog posts that may be of interest to you include how our operations team here at Infomentum have adopted agile delivery to improve traditional operation management processes.