Explain like I'm five · SW Eng

What Makes Good Software?

A book that's only pretty, or only crammed with content, isn't a good book — a story about meeting several conditions together.

I just want it to be funI want it to not fall apartI want it easy to readevery reader wants something different from a book

Every reader wants something different from a book.A good book has to answer all of these readers' wishes at once.

pretty cover, wrong contentcorrect, but way too hard to readneither the pretty-but-wrong nor the correct-but-hard book is a "good book"

Excelling at just one thing doesn't make a good book.Neither the pretty-but-wrong book nor the correct-but-hard one is a good book.

good software = meeting several quality conditions togetherexcelling at one condition isn't enough — balance among them is the point

Good software means meeting several quality conditions together.Excelling at one condition isn't enough — balance among them is the point.

Functionalityhas all the content it needs
Reliabilityfew errors or typos
Usabilityeasy to read and follow
Maintainabilityeasy to revise for the next edition
SIX QUALITY CONDITIONS (per ISO 9126)functionality — has everything needed?reliability — holds up without error?usability — easy to read?efficiency — not needlessly bloated?maintainability — easy to revise?portability — easy to adapt to other formats?

Quality conditions fall into six broad groups.Efficiency and portability are the quieter conditions behind a good book.

only pretty: thin on contentonly packed: nobody can read itfavoring just one side still isn't a good book — balance is the point

Leaning too far either way isn't a good book.Balance among the six conditions is what really makes software good.

In one breath

Good software means meeting all six quality conditions — functionality, reliability, usability, efficiency, maintainability, and portability — in balance, without neglecting any one of them.

Software quality models like ISO/IEC 9126 and its successor ISO/IEC 25010 break quality down into several characteristics. ISO/IEC 9126 names six: functionality (does it do what's needed), reliability (does it hold up without error), usability (can users work it easily), efficiency (does it use resources well), maintainability (is it easy to change), and portability (is it easy to move to another environment). ISO/IEC 25010 added security and compatibility. Good software balances these characteristics to fit the project's context.

When grown-ups say it

ISO/IEC 9126 and 25010
The international standards that lay out these quality conditions. The six conditions come from 9126; its successor 25010 added security and compatibility.
Functionality
Whether the book has everything that's needed. The condition people notice first.
Reliability
Whether it holds up without error. The area QA/QC directly looks after.
Usability
Whether it's easy to read and follow. The one readers feel most directly.
Efficiency
Whether it isn't needlessly bloated. The condition about not wasting resources.
Maintainability
Whether the next edition is easy to revise. Directly tied to coupling and cohesion. → how tangled the chapters are
Portability
Whether it's easy to adapt to another format. Matters especially for things like e-book conversion.
Architecture Evaluation (ATAM/CBAM)
Checking the trade-offs among these conditions ahead of time. A method for weighing these conditions at design time. → scenario rehearsal before publication
Next story
Buying the Press Machine, No Middleman →
Want another term as a picture book? Request →