liveBook · Manning

Functional frugality

As explained in The Art of Code

Frugality is a design pattern that avoids unnecessary features, technologies, and complexity in favor of solutions that provide real value.

Functional frugality is a design pattern for avoiding features that provide no real value to end users. It starts during design: select only the capabilities users genuinely need, rather than building every requested possibility. section 8.4.1

Use the three Us to test whether a feature deserves to exist:

  • Useful: answers a real end-user need or provides a clear benefit. section 8.4.1
  • Usable: remains simple enough to understand and operate, including for less technically confident users. section 8.4.1
  • Used: demonstrates practical value after release through observed usage. section 8.4.1

A feature that gathers dust

A team can spend countless hours building a client-requested feature only to discover that users never touch it. Functional frugality questions the feature before development, then uses actual usage after release to confirm its value. Removing unused or low-value functionality simplifies the interface and keeps the codebase smaller. section 8.4.1

The same discipline applies to product technology. An overengineered architecture built around fashionable frameworks can add code, dependencies, and components without meeting a real need. That extra weight consumes storage, bandwidth, CPU, and energy; it also increases maintenance cost and may expand the attack surface. section 8.4.1

Frugality is not blind optimization. Prefer the smallest solution that delivers genuine value, while preserving clarity and usability. Treat a feature as justified only when it is useful, usable, and actually used. section 8.4.1 section 8.5.2

How The Art of Code covers it

How deep it goes
Defines the pattern through the three Us and usage monitoring, but does not prescribe detailed implementation techniques.
Examples
Uses an unused client-requested feature and an overengineered fashionable framework as examples of avoidable excess.
What it assumes
Assumes the ability to identify end-user needs and observe product usage, while treating feature selection as a design responsibility.
What you can do after
Apply the three Us to select, review, simplify, or remove features according to demonstrated user value.
How it connects
Connects functional frugality with sustainability, technical frugality, user experience, resource usage, and security.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of The Art of Code. The section links point to the parts of the book it draws on.