liveBook · Manning

Maintainability

Maintainability is the degree to which software can be understood, modified, corrected, tested, repaired, or kept operational with reasonable effort over time.

How 7 Manning books explain it

The Art of Unit Testing 3e

The degree to which software or tests can be understood, modified, corrected, or evolved efficiently over time.

How it is used
Guides test reviews toward reducing the cost of changing tests as production code evolves.
How deep it goes
Defines maintainability through forced test changes and false failures, then gives assertion, mock, interface, and strategy trade-offs.
Examples
Uses partial string matching, multiple mock expectations, a complicated logger interface, and a team delivery comparison.
What you can do after
Evaluate/understand whether test failures and assertions reflect production defects rather than avoidable test brittleness.

Read how The Art of Unit Testing 3e explains maintainability →

"Looks Good to Me"

Code maintainability is the ease with which software code can be understood, modified, debugged, and extended safely.

How it is used
Uses code reviews as a team goal for producing stable, readable, extensible, and safer-to-change codebases.
How deep it goes
Defines practical review criteria and improvement steps, but stops short of code-level implementation internals.
Examples
Uses code reviews, unit tests, edge-case checks, coding conventions, code-smell detection, and pull-request context as concrete practices.
What you can do after
Apply it through a team code-review process by prioritizing stability, iterating practices, and resolving disagreements toward maintainable solutions.

Read how "Looks Good to Me" explains maintainability →

Python How-To

Maintainability is the degree to which software can be understood, modified, corrected, or extended with reasonable effort.

How it is used
Guides everyday Python choices toward code that remains readable and workable after its first use.
How deep it goes
Develops a practical self-checklist and explains trade-offs through data models, functions, classes, and tests rather than a formal measure.
Examples
Uses reused scripts, lambda tracebacks, class attribute initialization, and shared test setup to expose maintenance costs.
What you can do after
Practice/perform maintainability checks and refactor repeated or unclear Python code before it becomes harder to change.

Read how Python How-To explains maintainability →

Unit Testing Principles, Practices, and Patterns

The ease with which software or tests can be understood, executed, changed, and kept operational.

How it is used
Evaluates automated tests as liabilities whose value depends partly on readability and operational simplicity.
How deep it goes
Defines maintainability through readability and operational dependencies, then connects it to refactoring and feedback trade-offs.
Examples
Uses a trivial property test and an exact-SQL repository assertion to contrast readable tests with implementation-coupled tests.
What you can do after
Evaluate tests, reject low-value cases, and prefer assertions that verify observable results over implementation steps.

Read how Unit Testing Principles, Practices, and Patterns explains maintainability →

Practical Automation with PowerShell: Effective scripting from the console to the cloud

Automation maintainability is the ease with which an automated system can be understood, modified, and kept operational as requirements change.

How it is used
Frames automation design by weighing the future effort of changing goals, triggers, actions, and building blocks.
How deep it goes
Defines maintainability and illustrates its procedural consequences through provisioning and configurable log-retention scenarios.
Examples
Uses a failed user-provisioning workflow and a web-server log cleanup retention change.
What you can do after
Evaluate/understand whether an automation can adapt to changing requirements without costly repeated edits or manual workarounds.

Read how Practical Automation with PowerShell: Effective scripting from the console to the cloud explains maintainability →

Troubleshooting Java, Second Edition

A maintainability problem is a condition in which software is harder to understand, modify, or support because of its structure or implementation.

How it is used
Uses logging review to identify instructions that make source code harder to read.
How deep it goes
Contrasts concise and crowded implementations, but does not develop broader maintainability measurements or refactoring procedures.
Examples
Compares two Java extractDigits implementations, one concise and one crowded with per-step log messages.
What you can do after
Evaluate logging instructions for their effect on source-code readability.

Read how Troubleshooting Java, Second Edition explains maintainability →

The Well-Grounded Python Developer: How the pros use Python and Flask

Maintainability is the degree to which software can be understood, modified, corrected, and extended efficiently.

How it is used
Guides developers toward code that remains readable, flexible, and changeable as applications and requirements evolve.
How deep it goes
Explains conventions, naming, comments, flexibility, and function separation through a worked refactoring, without detailing testing or deployment.
Examples
Uses a calculation-formatting-output function example and a MyBlog application configuration improvement.
What you can do after
Apply coding conventions and refactor coupled functions into clearer, more reusable components.

Read how The Well-Grounded Python Developer: How the pros use Python and Flask explains maintainability →

Related concepts

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.