Oct 12th, 2020
End to End Delivery
Part 8: Ensuring Quality
Written by: Craig Vosper, Chief Delivery Officer
Over the last couple of weeks I’ve been writing about our 4 delivery tenets at Clientek. My past two articles have focused on delivering value sooner and becoming more predictable. Today however, I want to talk quality. To reiterate, here are our 4 delivery tenants:
I’d like to share the six steps/ideas we use to ensure quality.
Define needs. Define what the business needs to achieve their goals. We discussed this previously in part 2, “Defining Success”. The Standish Group 2018 Chaos Report included metrics on how often a feature used. This metric (displayed below) shows that more than half of all work is either rarely or never used. In my opinion, the lowest level of quality is software that’s never used! Without appropriately defining the businesses needs up front, all our subsequent steps are just ensuring that useless code works well.
Decompose. We‘ve discussed how to decompose work into Minimal Testable Features, which allows the business to implement what we build. Key to successful decomposition is slicing work “vertically” – allowing it to be built and tested by the business. If your business partners cannot validate it, then you should rethink your breakdown.
Define “Done”. This definition is more than just acceptance criteria for a particular story. This includes success criteria that span multiple stories. For instance , at Clientek we define “done” as a story being accepted by the business within the sprint it was started. Another definition would be that the business accepts the story within a defined environment, such as UAT.
Review tests cases. This step provides two benefits. First, test cases are a reflection of the teams understanding of the requirements – ensuring that they align. Second, you can validate that you are testing appropriately, which helps avoid spending time on tests that are not valuable.
Demo. Demo your progress every step of the way (we do a demo in almost every daily standup). If possible, demo in an environment that the business can review and use as well. You will be able to get business feedback immediately and rectify any issues if needed before moving forward.
Automate. Automate your tests, your deployments, and the creation of your environments. These efforts enable nearly every other activity that takes place during a project. Reduce the number of issues that result from a mistake being made during these manual tasks.
As you can see, ensuring quality starts on day 1 of a project and goes long past it’s completion. It’s a discipline that’s straight forward, but incredibly easy to stray from!
Next week, we will discuss how all the tenets we’ve outlined so far prepare us to handle the most critical part of any software project, Change!