Code Simplicity

A short, focused book that distils software design into a set of logical principles. It argues that the purpose of software is to help people, and that good design is measured by how easy the code is to change over time. Complexity causes most software problems, so every design decision should weigh immediate benefit against long-term cost. Rather than prescribing specific techniques, the book focuses on the underlying laws of software.