Our software should improve with time.

Painters refine paintings and homeowners improve houses - our software should get better, not worse, as we work on it.

Continuous improvement means the architecture, code, and performance progressively mature. If we accept creeping cruft and brittle designs, we betray our users and stakeholders.

Instead, let’s make daily habits of pairing, TDD, refactoring, and simple design. These practices let help us to steadily reduce technical debt, increase throughput, and make the system safer to change.

We treat improvement as part of the job, not a separate project. So the software gets better with age.

Discussions for the team

  • How can we measure and notice a decline in our software early?
  • Who is responsible for long-term code quality?