Knowledgebase

The Discipline: Everything That Matters, Briefly Print

  • softwareengineering, software, troubleshooting, guide, howto, solution, zillionkinghost, hosting
  • 0

The summary.

WHAT SEPARATES ENGINEERING FROM PROGRAMMING IS TIME AND OTHER PEOPLE

Code written once and discarded needs none of this. Code maintained for years by a changing team needs all of it.

MOST PROJECT FAILURES ARE NOT TECHNICAL

Building the wrong thing is the commonest and most expensive cause.

What reduces nearly all of them is delivering something small, early, to real users, and repeating — it surfaces misunderstandings while correction is still cheap.

ASK OF ANY DECISION HOW EXPENSIVE IT IS TO CHANGE LATER

That determines how much thought it deserves now. Decide expensive-to-reverse things early; defer the rest.

ONLY ACCIDENTAL COMPLEXITY CAN BE REDUCED

It comes from abstraction nobody needed, generality added in anticipation, and patterns applied without a problem to solve.

Code that does not exist has no defects, needs no tests, and requires no maintenance.

STATE TRADE-OFFS EXPLICITLY, AND RECORD WHY YOU CHOSE

Unstated trade-offs become disputes about preference. And circumstances change decisions from right to wrong, not poor reasoning.

QUALITY ATTRIBUTES DRIVE ARCHITECTURE MORE THAN FEATURES DO

State them as figures, not adjectives, and accept that requiring the highest level of everything delivers nothing.


Was this answer helpful?
Back

Are you happy with your experience? Leave us a review on Trustpilot.


Trustpilot