1

The cost of software is comprehension.

Code that compiles is easy; understanding it is the hard part. Every line you write is a permanent tax on everyone who reads it. The measure of good code is not elegance or brevity. It's how quickly a new person can build a mental model of what it does and why.

Reading path

Post 1 of 9

Comprehension Can't Be Reduced to the Artifact

6 min read

Peter Naur argued in 1985 that programming isn't about producing code. It's about building a theory of how problems map to solutions.

Post 2 of 9

Constantine's Equation

4 min read

Understanding the fundamental equation that shows why software costs are dominated by maintenance, not initial development

Post 3 of 9

Expressive Code

5 min read

Why code should communicate its intent clearly to humans, not just execute correctly for computers

Post 4 of 9

Locality of Behavior

5 min read

Design for understanding: code behavior should be comprehensible by reading only that code, not multiple files or abstraction layers

Post 5 of 9

Never Nester

6 min read

How avoiding deeply nested code structures reduces cognitive load and improves code readability

Post 6 of 9

Control Flow Complexity

8 min read

Why decisions buried deep in functions create complexity, and how pushing them to system boundaries creates simplicity

Post 7 of 9

Lines of Code is a Bad Measurement

3 min read

Why measuring productivity by lines of code is counterproductive and actively rewards what good engineering tries to eliminate

Post 8 of 9

The Hidden Cost of Agentic Development

3 min read

Why AI code generation optimizes for the wrong variable and violates Constantine's equation about software economics

Post 9 of 9

AI and Software Engineering: Iteration Compression, Not Revolution

16 min read

AI has compressed the iteration cycle, not transformed the discipline. The constraint was never writing code. It was always understanding.