Software Craftsmanship Principles
Overview
A consolidated reference on professional software craftsmanship principles drawn from foundational texts: The Pragmatic Programmer, Clean Code (Bob C. Martin), Modern Software Engineering (Dave Farley), Best Practices for Developers (KDAB), and Good Programming Practices. These sources converge on iterative development, maintainability, and the alignment of code quality with business outcomes.
Core Principles
Code Quality
- Write code for readability first, performance second
- Meaningful names over comments; self-documenting code is the goal
- Single Responsibility Principle at every level (function, class, module)
- DRY (Don’t Repeat Yourself) balanced against premature abstraction
Professional Practice
- Own your craft: continuous learning is a professional obligation
- Automate everything repetitive: builds, tests, deployments, formatting
- Estimate honestly; communicate uncertainty early
- Refactor continuously; technical debt compounds like financial debt
Development Workflow
- CI/CD as the backbone of quality assurance
- Trunk-based development for team velocity
- Environment isolation (dev/staging/prod) for safety
- Feature flags over long-lived branches
Design Thinking
- Design for change; the only constant is requirement evolution
- Minimize coupling between components; maximize cohesion within them
- Prefer composition over inheritance
- Make decisions reversible where possible
Source Materials
- Pragmatic Programmer (Andrew Hunt, David Thomas)
- Clean Code (Robert C. Martin)
- Modern Software Engineering (Dave Farley)
- Best-Practices-Dev (KDAB)
- Good Programming Practices
See Also
- professional-software-engineering-patterns - Broader SE architectural patterns abstract
- swebok-guide - Software Engineering Body of Knowledge
- software-engineering-guide - Core SE principles reference