Skip to content

Latest commit

 

History

History
61 lines (45 loc) · 3.69 KB

File metadata and controls

61 lines (45 loc) · 3.69 KB

Software Craftsmanship: The New Imperative by Pete McBreen

Introduction

Software Craftsmanship by Pete McBreen challenges the traditional view of software development as an engineering discipline. Instead, McBreen argues that software development is a craft, where developers should see themselves as craftsmen rather than engineers or factory workers.

The book emphasizes skill, mastery, and continuous learning, promoting an apprenticeship model for developing expertise. It serves as a call to action for developers to take responsibility for their craft and strive for excellence beyond just meeting deadlines.


Part 1: Rethinking Software Development

1. Software Development is a Craft, Not an Engineering Discipline

  • Unlike traditional engineering, software development is highly flexible and creative.
  • Engineering focuses on rigid processes and repeatability, while craftsmanship emphasizes skill, experience, and adaptability.
  • The best developers hone their craft through practice, mentorship, and continuous learning.

2. The Problem with Software Factories

  • The factory model of software development (rigid methodologies, mass production mindset) fails to deliver quality software.
  • High-quality software comes from skilled individuals, not rigid processes.
  • Agile methodologies align better with craftsmanship than traditional waterfall models.

Part 2: The Craftsmanship Approach

3. The Role of Apprenticeship and Mentorship

  • Master-apprentice relationships help junior developers learn by working alongside experienced professionals.
  • Companies should invest in mentorship and knowledge sharing rather than relying on formal training alone.
  • Continuous learning and practical experience are essential to building mastery.

4. Emphasizing Code Quality and Maintainability

  • Software craftsmanship prioritizes well-structured, maintainable, and readable code.
  • Developers should refactor continuously to improve codebases.
  • Testing, peer reviews, and continuous feedback loops are core practices.

5. Taking Pride in Your Work

  • A craftsman cares deeply about the quality and impact of their code.
  • Good developers own their work—they don’t just write code; they build solutions that last.
  • Software should be designed to be extended and adapted rather than discarded and rewritten.

Part 3: Applying Software Craftsmanship in the Real World

6. Building a Craftsmanship-Oriented Team

  • Companies should hire and nurture craftspeople, not just programmers who follow instructions.
  • A craftsmanship culture promotes collaboration, creativity, and continuous improvement.
  • Encouraging self-directed learning and experimentation leads to better software.

7. Beyond Just Getting the Job Done

  • Short-term thinking (rushing to meet deadlines without considering long-term code health) leads to technical debt.
  • Craftsmen balance business needs with technical excellence.
  • True professionals push back on bad practices and advocate for sustainable development.

Conclusion

Software Craftsmanship promotes a shift in mindset—developers should view their work as a lifelong craft rather than just a job. The book advocates for:

  • Mastery through experience and mentorship
  • Code quality, maintainability, and long-term thinking
  • Rejecting the factory model in favor of a craftsmanship approach

By embracing craftsmanship principles, developers can create software that is not only functional but also elegant, reliable, and sustainable.