liveBook · Manning

Sustainable growth

As explained in Unit Testing Principles, Practices, and Patterns

The ability of a software project to evolve over time without development becoming unmanageably slow or regression-prone.

Sustainable growth is the ability to keep evolving a software project without development speed collapsing or regressions multiplying. Unchecked software entropy increases disorder, complexity, and the cost of change; continuous cleaning, refactoring, and effective tests counter that decline. section 1.2 section 1.6

Use these rules to protect growth over time:

  • Treat tests as a safety net against regressions, not as proof that the design is good. section 1.6
  • Keep tests whose benefits outweigh their costs; remove tests with negative net value. section 1.6
  • Use difficult unit testing as a warning about tight coupling, but do not treat easy testing as a quality guarantee. section 1.2

Growth dynamics

A project without tests may advance quickly at first, then slow as architectural problems and existing code accumulate. Bad tests can follow the same path, eventually producing stagnation or frequent regressions. section 1.2 section 1.6

Figure 1.1. The difference in growth dynamics between projects with and without tests. A project without tests has a head start but quickly slows down to the point that it’s hard to make any progress.

Compare the early speed and later stagnation of projects with and without tests. section 1.2

How Unit Testing Principles, Practices, and Patterns covers it

How deep it goes
Explains growth dynamics, entropy, regression protection, test economics, and directional quality indicators, but stops short of implementation detail.
Examples
Contrasts growth curves for projects without tests, with good tests, and with badly written tests.
What you can do after
Apply via unit testing, continuous refactoring, and cost-benefit review to reduce regressions and preserve development pace.
How it connects
Connects sustainable growth with unit testing, software entropy, refactoring, tight coupling, regressions, and coverage metrics.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Unit Testing Principles, Practices, and Patterns. The section links point to the parts of the book it draws on.