On this page
Kutanga

Building a Culture of Quality Without Slowing the Team Down

Chinyorwa ichi parizvino chiri kuwanikwa neChirungu.

Teams often talk about quality and speed as competing interests. One person wants to ship; another asks for another review or test. The usual compromise is frustrating: delivery slows down and avoidable problems still reach customers.

I think this happens because “quality” is left undefined. People argue from preference, and review begins when the work is already expensive to change.

Agree on the standard

A payment flow, an internal admin screen, and a disposable experiment should not receive the same process.

Before work begins, the team should know the cost of failure. Could we lose money or data? Could someone gain access they should not have? Is the change easy to reverse? How many people will use it, and how often?

The answers tell us where to spend attention. A risky permissions change may need a written design, focused tests, and a careful rollout. A copy correction probably does not.

This conversation can be short. A few sentences about the consequence of failure are usually more useful than a generic instruction to “make it production ready.”

Review the decisions early

Many defects begin before anyone writes code. A vague requirement becomes rework. An unanswered permissions question appears near release. A feature tries to support too many cases because nobody chose the first one.

A final review cannot cheaply repair those choices.

I prefer to bring product, design, and engineering together around the risky parts before implementation. We decide the essential behaviour, identify what can wait, and call out assumptions we need to test. The team then starts with fewer hidden disagreements.

Review should continue in small pieces. Feedback on a day of work is a conversation. The same feedback on three weeks of work feels like a threat to the deadline.

Make common mistakes harder

Culture cannot depend on everyone remembering every rule. People are busy, and the same mistakes will return unless the environment changes.

Shared components can handle keyboard and focus behaviour. Automated checks can catch unsafe imports or a missing test. Templates can remind a team about permissions, failure states, and rollout plans. A good default can remove the decision entirely.

These tools have to earn their place. A checklist nobody trusts or a rule that produces constant noise teaches people to work around the process. When an issue repeats, I ask what would have made it difficult to introduce or easy to notice sooner. Sometimes the answer is automation. Sometimes it is a better example or a clear owner.

Keep ownership with the team

Specialists in security, accessibility, design, operations, and quality assurance bring knowledge a product team may not have. Their involvement should improve the team's judgment, not move responsibility elsewhere.

The person making a change should understand how it behaves and how it fails. The team should be able to explain why it is ready and what it will watch after release. Review is a chance to test that reasoning.

The depth of review should follow the risk. Maximum ceremony on every change spreads attention evenly when some work deserves much more of it.

Learn in small loops

Small releases make cause and effect easier to see. They also reduce the pressure to accept a weak decision because too much work has already been invested.

The loop continues after release. Support conversations, customer behaviour, logs, and incidents reveal problems an internal review could not predict. The team needs enough visibility to notice when an assumption was wrong.

When something fails, accountability still matters. So does understanding why the mistake travelled as far as it did. Blaming one person may close the incident quickly, but it leaves the path open for the next person.

Leaders reveal the real priority

Teams watch what leaders reward under pressure. If launches get celebrated and prevention is invisible, people learn to optimise for the launch. If scope grows while the date stays fixed, they learn to hide the compromise.

Leaders can make the choice explicit: reduce scope, move the date, or accept a named risk. They can recognise the engineer who removed recurring friction even when no new feature appeared in the release notes. They should also use the product; recurring problems are harder to dismiss after experiencing them directly.

Quality helps a team move when it is applied at the right moment. Clear standards shorten debate. Early decisions reduce rework. Useful defaults prevent familiar mistakes. Small releases make learning cheaper.

That is the culture I want: careful where failure is costly, light where it is not, and always willing to improve the system after learning something new.