Software Craftsmanship
Engineering is closer to art than to science. Functionality and reliability are the two pillars of software development, but achieving them is a deliberate practice, not an exact science.
The Core Claim
Software development is not just solving problems with code. It is crafting solutions that:
- Functionally and reliably solve a real-world problem
- Can be understood and extended by others
- Hold up under pressure in both short and long term
The developer who only types is operating at a fraction of their actual role.
The Multiple Roles of a Developer
During a single project, a developer cycles through:
- Requirements engineer — when the problem is first presented
- Design engineer / architect — when crafting the solution
- Assassin — when testing
- End user — when changes go live
Missing any of these roles produces predictable failures.
Art is the Elimination of Unnecessary
The best code and the best solutions share a quality: nothing left to remove. Complexity is easy to add; restraint is hard. The cognitive overhead of modern software comes from accumulated necessary complexity plus accumulated unnecessary complexity — the job is to keep the second pile small.
Why This Matters Now
The bar for "good developer" keeps rising as software eats more domains. Developers face increasingly unrelated cognitive overhead from tooling, infrastructure, and process — much of which abstracts poorly. The answer is not to abandon systems, but to be deliberate about which systems actually reduce friction versus which ones add new kinds of it.
Related Pages
Sources
- Obsidian Source: Building(and Maintaining) Software is a Work of Art -
wiki/sources/obsidian/building-and-maintaining-software-is-a-work-of-art.md
Evidence
Linked source: Obsidian Source: Building(and Maintaining) Software is a Work of Art