Managing Complexity Print

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

The central problem.

WHY COMPLEXITY IS THE CORE ISSUE

Every system becomes harder to change as it grows, and eventually change becomes impractical.

WHAT ESSENTIAL COMPLEXITY IS

Complexity inherent in the problem.

WHAT ACCIDENTAL COMPLEXITY IS

Complexity introduced by how it was built.

WHAT THAT DISTINCTION MEANS

Only the second can be reduced.

WHAT INTRODUCES ACCIDENTAL COMPLEXITY

Abstraction that was not needed Configuration for cases nobody has Generality added in anticipation Patterns applied without a problem to solve Dependencies added casually

WHAT REDUCES COMPLEXITY

Deleting code Clear boundaries between parts Naming things accurately Doing one thing per unit Removing features nobody uses

WHAT DELETING ACHIEVES

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

WHAT TO RESIST

Building for requirements that do not exist yet.

WHY

Anticipated requirements are usually wrong, and the flexibility built for them makes the actual requirement harder.

WHAT TO PREFER

The simplest thing that solves the current problem, clearly.


Was this answer helpful?
Back

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


Trustpilot