I have been part of multiple projects in multiple companies throughout my 8 years of learning and development in IT.
Out of those 8 years, I spent half being a software developer working on code and making sure I deliver all the requirements in time and hopefully without many rollbacks or defects.
The other half of my career, I spent as a technical lead, scrum master, program manager, and an overall mediator between what the product owners wanted and what my team could deliver. I was constantly looking at timelines, deliverables, and whatnot.
Even though I have learned a lot from these experiences, I fairly recently came across an exercise that kind of really helped me put all my knowledge of the software delivery life cycle into a concise but thorough checklist. This has changed the way product teams that I handle deliver their user stories. It has helped in traceability, transparency, and delivery improvements that helped manage a lot of issues that certain projects face throughout their lifetimes.
I would like to share that experience. It started with two words — Quality Excellence.
You may already be familiar with this but in case you aren’t, Quality Excellence focuses on the maturity of a team in how they are documenting, testing, delivering, and maintaining their products.
Usually, this term gets mixed with engineering excellence or operational excellence but it most definitely should not be as it is its very own thing.
Engineering excellence means having the right tools and framework to make your project a success and having the backup of said framework to work efficiently and effectively to deliver value.
Operational excellence means embracing certain principles and guidelines to make sure your operations can support your products and create a culture of high productivity and great value.
The difference is in the details when you look at Quality Excellence. It focuses on how well can you deliver your products with great success and consistent value to your customer by boosting transparency, and traceability and making sure each deliverable is upheld to the best quality your team can offer.
Quality Excellence can be divided broadly into –
- How well are your requirements documented? — This could further be broken down into whether all your requirements (epics, stories) are in one place, all your stories have well-defined criteria, and whether your testing and release plan is linked to the stories that you plan to deliver. This promotes traceability through each requirement from start to finish.
- How thorough is your testing? — Here you can pick and choose what testing your team has to go through before they are confident in delivering quality products/enhancements. We can have common testing like integration, functional, and end-to-end to more in-depth testing like chaos, content validation, and accessibility testing. Each testing suite checks a certain aspect of your product and it is always good to have as much testing as possible that can be allowed given your timeframe.
- How is your defect management? — There are bound to be defects in your products but managing them by having proper RCA (Root Cause Analysis), reviews and retrospectives so that the probability of the same kind of defects minimizes over time. Here, the better you handle your first few production defects will make sure you handle lesser defects going forward.
- How robust is your continual improvement?– Here you can use various tracking tools that measure parameters of your code quality, lead times, cycle time, sprints per story, etc that your company employs. Constantly keeping a close eye on these metrics and making sure they improve or stay optimal will automatically result in better quality releases.
- How well can an outsider understand your team? — One exercise that I like to focus on is to ask the team that if a customer or user, who is not aware of how a team delivers, wants to look at their dashboard, will they be able to trace their way from when a requirement arrived to when it was delivered? This is such a great exercise because it focuses on simplifying unnecessary complex paths and helps to maintain traceability for any story that comes in. The user should be able to make out what the ask was, what was tested, what were the results, and when it was delivered.
Like anything else in this agile world, these points above only work when the whole team is onboard and takes quality excellence as seriously as they do their MVP (minimum viable product). Because in the end, an MVP is only as good as the value it delivers with great quality and accuracy.
Value delivered with bugs and post-production issues is no value delivered at all.
If you are able to implement the points above, I can assure you that your team will deliver quality products time after time and with great value and almost zero (it never is zero, is it?) post-prod issues. In the end, isn’t that the dream of every customer?