
Obsolete Bytes: Nazi Submarines, High-Tech Toilets, and Lessons in Software Engineering
Do not flush the toilet; it may initialize the self-destruct sequence.
What do German World War II submarines and modern software development have in common? Surprisingly, quite a lot: Overengineering, ignoring testing, poor modularity, and cascading failures, to name a few.

Tidy First?: A Personal Exercise in Empirical Software Design
The biggest cost of code is the cost of reading and understanding it, not the cost of writing it
In theory, there is no difference between theory and practice, while in practice there is.

Book: Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
This Is the Way
Every change should trigger the feedback process.