You must establish quality first to increase your software delivery speed. We all want our teams to move fast and deliver at a rapid pace. But from an oversight perspective, you, as the software executive, need to demand quality output from the team.
This isn’t just slamming your fist on the table and saying, “give me quality!” But you need to demand quality output from your team at whatever pace they can deliver.
First, measure the pace that they’re delivering with a good quality that you can be happy with. Think of when you are learning to type. The measure of typing speed is the number of words per minute with some number of errors. If you type 100 words per minute with 100 errors, that doesn’t do anyone any good. That represents 100 misspelled words that have to be fixed. You want 100 words per minute with zero errors.
Establish Quality First and Productivity Will Follow
Valuing productivity more than quality in software development, as per Capers Jones, can lead to issues for teams. Bugs pile up more and more, and your team ends up spending a lot more capacity fixing the bugs. Less of the team’s full capacity goes towards delivering features.
Productivity slows down, creating more pressure to re-establish productivity. The team members are now under even more pressure to perform and take more shortcuts to get things done. This just yields more bugs, which takes more team capacity to tackle. With a small fraction of the overall team capacity dedicated to new features, the overall productivity tanks. And this is the cause for some teams to pitch a new plan to management.
They’ll say, “we need to modernize this system”. Well, that is just code for “fixing this is more effort than starting over from scratch.” This is the equivalent of waving the white flag and surrendering. No army that surrenders can later claim victory.
Outstanding Leaders Establish Quality First
Your executive leadership comes in when you establish quality first. Sequence the establishment of a quality standard first before challenging the team to increase the pace of delivery. Measure the number of bugs caught before production, the number of bugs caught by users in production, and how long it takes to fix each bug. There are many excellent modern worker tracking tools that will do all of this for you.
Your leadership is important here because you’re establishing a principle – an important principle for your team to abide by. And that principle is that quality should be prioritized over speed of delivery. It’s proven that adopting a “speed over quality” strategy doesn’t yield either speed or quality.
The Question to Ask
In your weekly team meetings, you can ask the team the same question over and over. When you are told a bug escaped into production, ask, “What are we changing to prevent that bug in the future?” Their answers are going to be different every time. But your question will be the same.
As you know, you can also ask for a tour of the code that caused the bug. If you can’t understand the explanation or the code, then you’ve found a quality hotspot that you’ll want to ask more questions about.
Don’t believe the lie that, “oh, the code is too complex for you to understand.” After all, you wouldn’t accept that excuse from an electrician or any other trade. That’s how you got to be an executive; you can raise an issue and simplify it in any situation. The purpose of the software is to simplify a domain that has a higher complexity without the software.
Do you want to empower your software team
to be effective:
moving fast with high quality?
Establish Quality First in Your Minimum Standard Practices
In any of the teams that you oversee, you’ll want to understand the engineering practices that are in place.
Here are a few that every software team should be using.
- Test automation
- Continuous integration
- Static analysis
- Pull request checklists
By the way, that’s a good modern implementation of a formal change inspection that’s been around the industry for a long time.
This is the minimum set of practices. And you should expect the team to have other practices in place as well. These practices help the team maintain high standards of quality. Without these, your team is going to struggle unnecessarily to keep quality high, especially on a multi-developer team.
Do you want to empower your software team to be effective: moving fast with high quality? Begin with this Free Assessment.