On Software Craftsmanship
The State of Things
We're in an era where you can generate an entire application with a single prompt. The barrier to producing working software has never been lower. But there's a gap between software that works and software that's well-crafted.
What Makes Software Well-Crafted?
Simplicity
The most important quality of good software is simplicity. Not simplicity of implementation — that's often complex — but simplicity of interface. A function should do one thing. A module should have one responsibility. A system should be understandable by a single person.
// Bad
function process(data: any) {
// 50 lines doing 5 different things
}
// Good
function validate(input: Input): Result {
// 10 lines doing one thing
}
function transform(validated: Result): Output {
// 10 lines doing one thing
}
function persist(output: Output): void {
// 10 lines doing one thing
}Consistency
Consistency reduces cognitive load. When every module follows the same patterns, you can reason about unfamiliar code without re-learning conventions.
Discipline
This means:
- Thoughtful naming
- Proper error handling
- Meaningful tests
- Documentation that explains why, not just what
- Deleting code that's no longer needed
The Role of AI
AI assistants are incredible productivity tools. But they generate code that's average by definition — the statistical midpoint of all the code they were trained on.
Craftsmanship means going beyond average. It means making intentional decisions about structure, naming, and trade-offs. AI can write the boring parts; you should focus on the parts that require judgment.
Closing Thoughts
Software craftsmanship isn't about perfectionism. It's about caring enough to do things right when it matters, and knowing when "good enough" truly is enough.