Code Simplicity

The Universal Laws of Nature

The Universal Laws of Nature

Software

Purpose

  • I'm @zachfedor, a teacher.
  • I know that I know nothing.
  • I want to hold a discussion, not tell you what you're doing wrong.
  • I like playing the devil's advocate!

Credit

By Max Kanat-Alexander

"Code Simplicity:

The Fundamentals of Software"

Context

  • The author was a Chief Architect of the Bugzilla Project
  • There's no code samples, just anecdotes, observations, and his conclusions.
  • It's less than 70 pages, so go read the whole thing!

Labels

  • Fact: a true statement, piece of true information
  • Rule: advice to guide a specific decision, won't predict the future
  • Law: fact that will always be true, prediction of what will happen in the future

Everything we hear is an opinion, not a fact. Everything we see is a perspective, not the truth.

Marcus Aurelius, Meditations

Facts, Rules, and Laws

Helpful

Controversial

Notable

Law

The purpose of software is to help people.

Fact

Every programmer is a designer.

Rule

Design is not a democracy. Decisions should be made by individuals.

Rule

The quality of your design should be proportional to the lifespan of the code.

Rule

You are safest if you don't attempt to predict the future and only act on immediate information.

Law

The longer your software exists, the more likely it is that any piece will have to change.

Law

The chance of introducing a bug is proportional to the size of changes you make.

Law

The desirability of a change is mostly affected by the effort of maintenance.
D = \frac{V_n + V_f}{E_i + E_m}
D = \frac{V_f}{E_m}

Rule

The best design allows for the most change in the environment with the least change in code.

Fact

The difference between a bad programmer and a good programmer is understanding.

Fact

Simplicity is relative.

Law

The ease of maintenance of software is proportional to the simplicity of its parts.

The End

  • Thanks for sharing your thoughts!
  • This was a small sample of the book so go read it if you're curious for more.
  • Let's keep the discussion going on the #front-end channel in Slack!

Code Simplicity

By zach fedor

Code Simplicity

The Universal Laws of Software adapted from the book by Max Kanat-Alexander

  • 834