What Is Software Craftsmanship and Why Does It Still Matter?

Peter Langewis ·

Software craftsmanship is a professional philosophy that treats software development as a skilled trade, where writing clean, maintainable, and well-tested code is as important as simply making it work. It emerged as a direct response to the widespread practice of shipping functional but brittle, poorly structured software. If you work with software teams or commission digital products, understanding this discipline helps you set higher expectations and get better long-term results. The questions below unpack where craftsmanship came from, what it looks like in practice, and when it matters most for your organisation. Explore more about our approach at Bloom Group.

How did software craftsmanship evolve as a discipline?

Software craftsmanship evolved from the Agile movement of the early 2000s, particularly as practitioners felt that Agile had become too focused on process and not focused enough on technical quality. The Manifesto for Software Craftsmanship was published in 2009, extending the Agile Manifesto by adding commitments to well-crafted software, productive partnerships, and a community of professionals who continuously raise the bar.

The roots go deeper, though. Practices like test-driven development, refactoring, and pair programming were championed by extreme programming (XP) in the late 1990s. Extreme programming was one of the first methodologies to argue that technical discipline and code quality are not optional extras but core engineering responsibilities. Craftsmanship essentially formalised and expanded that argument into a broader professional identity, one that emphasises mentorship, continuous learning, and pride in the work itself.

Over time, the movement attracted developers who were frustrated with codebases that worked on paper but were impossible to maintain, extend, or hand over to another team. Craftsmanship gave them a shared language and a set of practices to push back against the “just ship it” culture.

What are the core principles of software craftsmanship?

The core principles of software craftsmanship are: writing well-crafted software, steadily adding value, forming a community of professionals, and enabling productive partnerships. These principles go beyond technical skill and address the attitude, relationships, and responsibilities that define a true software professional.

In practical terms, these principles translate into a set of commitments:

  • Clean code: Code should be readable and understandable by any competent developer, not just its original author.
  • Test coverage: Automated tests are not optional. They protect the codebase and make change safe.
  • Continuous refactoring: Improving the internal structure of code without changing its behaviour is an ongoing responsibility, not a one-off project.
  • Simple design: Complexity is the enemy of maintainability. Craftsmen favour the simplest solution that genuinely meets the need.
  • Honesty with stakeholders: Craftsmen do not cut corners silently. They raise concerns about technical debt and advocate for the time needed to do things properly.

These principles are closely aligned with the practices promoted by extreme programming, which treated technical excellence as a non-negotiable foundation for sustainable delivery.

How does software craftsmanship differ from standard software engineering?

Software craftsmanship differs from standard software engineering in its emphasis on professional pride, continuous improvement, and ethical responsibility toward the codebase, not just toward the delivery deadline. Standard engineering often focuses on meeting specifications and timelines. Craftsmanship insists that how you meet them is equally important.

A software engineer working to a standard brief might write code that passes all tests and ships on time but leaves behind a tangled architecture that the next team struggles to understand. A craftsman considers that outcome a failure, even if the product launches successfully.

The distinction also shows up in attitude toward learning. Craftsmanship treats development as a lifelong apprenticeship, where senior practitioners mentor junior ones and everyone is expected to keep growing. Standard engineering roles do not always build that expectation into the culture. The craft mindset borrows explicitly from traditional trades, where mastery is earned through deliberate practice and passing knowledge forward is part of the job.

Why do enterprises still struggle with low-quality codebases?

Enterprises struggle with low-quality codebases primarily because short-term delivery pressure consistently wins over long-term code health. When teams are measured on feature velocity and release dates, there is little organisational reward for writing clean, well-tested code, and significant pressure to skip the practices that produce it.

Several compounding factors make the problem persistent:

  • Technical debt accumulation: Every shortcut taken adds to a growing backlog of structural problems that slow future development. Left unaddressed, this debt compounds until even small changes become expensive.
  • High developer turnover: When teams change frequently, institutional knowledge about why code was written a certain way disappears. New developers inherit problems they did not create and often lack the context to fix them safely.
  • Lack of craftsmanship culture: Organisations that do not invest in code reviews, pair programming, or mentorship rarely produce the shared standards that keep quality consistent across a large team.
  • Misaligned incentives: Business stakeholders who do not understand the cost of poor code quality often resist the time investment required to address it, creating a cycle that is difficult to break without leadership buy-in.

The result is that many enterprise systems become increasingly fragile over time, making digital transformation initiatives far more expensive than they need to be.

What practices define a software craftsman in 2026?

A software craftsman in 2026 is defined by a consistent set of technical and professional practices: test-driven development, continuous integration, rigorous code review, deliberate refactoring, and a commitment to simple, expressive design. These are not new ideas, but their disciplined, daily application is what separates craftsmen from average developers.

Extreme programming practices remain central. Test-driven development, where you write the test before the code, forces clarity about what a piece of software is actually supposed to do. Pair programming, where two developers work together at one machine, produces fewer defects and transfers knowledge in real time. Continuous integration ensures that changes are integrated and tested frequently, catching problems before they compound.

Beyond the technical, a craftsman in 2026 also engages actively with the broader community, contributes to open-source projects, mentors less experienced colleagues, and stays current with evolving tools and paradigms without abandoning proven fundamentals. They communicate honestly with clients and stakeholders about what is achievable and what the true cost of cutting corners will be over time.

When should an organisation prioritise software craftsmanship?

An organisation should prioritise software craftsmanship when the long-term cost of maintaining and extending its software begins to outweigh the short-term savings of fast, low-quality delivery. This is especially true during periods of rapid scaling, digital transformation, or when planning a greenfield project where the architectural decisions made early will shape years of future development.

Craftsmanship is most critical in these situations:

  • When a codebase is slowing down delivery because every change risks breaking something else
  • When onboarding new developers takes months rather than weeks because the code is hard to understand
  • When the organisation is integrating AI, cloud infrastructure, or new data pipelines into existing systems
  • When a product needs to scale to a significantly larger user base or more complex use cases
  • When teams are distributed across locations and shared code standards become essential for coordination

For organisations that are still in early-stage growth, craftsmanship principles help avoid the technical debt traps that slow many scale-ups down later. Getting the foundations right from the start is always less expensive than rebuilding them under pressure.

How Bloom Group supports software craftsmanship in your organisation

We bring software craftsmanship into practice at every stage of the development lifecycle. Our team consists entirely of developers with advanced academic backgrounds in Computer Science, AI, Mathematics, Physics, or Aerospace Engineering, which means the rigour and precision that craftsmanship demands are built into how we think and work.

Here is what working with us looks like in practice:

  • Clean, maintainable code as a standard: We apply test-driven development, continuous integration, and regular refactoring on every project, not just when clients ask for it.
  • Greenfield project setup: We help organisations design new systems from the ground up with the right architecture, avoiding the technical debt that plagues many enterprise platforms.
  • Team as a Service (TaaS): We embed experienced craftsmen directly into your team, transferring knowledge and raising the quality bar from within.
  • Data and AI integration: We bring craftsmanship discipline to data engineering, machine learning, and AI development, where poorly structured pipelines and models create serious long-term risks.
  • UX/UI and product management: Quality extends beyond the code. We apply the same rigour to design and product decisions, ensuring the entire product is built with care.

If your organisation is ready to move beyond shipping software that merely works and start building software that lasts, we would love to talk. Get in touch with us and let us show you what a craftsmanship-first approach can do for your team.

Frequently Asked Questions

How long does it typically take to see measurable improvements after adopting software craftsmanship practices?

The timeline varies depending on the state of your existing codebase, but most teams begin to notice meaningful improvements within 3 to 6 months of consistently applying practices like test-driven development, code reviews, and refactoring. Early wins often show up as fewer production bugs and faster onboarding for new developers. Larger structural improvements — such as reduced time-to-deploy or significantly lower maintenance costs — typically become visible over 12 to 18 months as technical debt is systematically addressed.

What is the best way to introduce software craftsmanship practices to a team that has never used them before?

The most effective approach is to start small and build momentum rather than overhauling everything at once. Introducing a single practice — such as mandatory code reviews or a basic automated test suite — creates a foundation without overwhelming the team. Pairing less experienced developers with craftsmen who model the right habits accelerates adoption, and framing the change around business outcomes (fewer bugs, faster delivery, lower maintenance costs) helps secure buy-in from stakeholders who may be sceptical of the upfront time investment.

Can software craftsmanship principles be applied to legacy codebases, or is it only practical for new projects?

Craftsmanship principles absolutely apply to legacy codebases, though the approach differs from greenfield work. The recommended strategy is to follow the 'Boy Scout Rule' — leave the code slightly better than you found it with each change — rather than attempting a full rewrite, which is high-risk and expensive. Gradually introducing test coverage around the most critical or most frequently changed modules creates a safety net that makes deeper refactoring possible over time. This incremental approach is often more sustainable and delivers value continuously rather than requiring a disruptive, all-or-nothing transformation.

How do you make the business case for software craftsmanship to non-technical stakeholders or executives?

The most persuasive business case focuses on cost and risk rather than technical ideals. Concrete metrics such as the average time spent fixing production bugs, the cost of onboarding each new developer, or the number of delayed releases caused by unexpected regressions translate craftsmanship directly into financial terms that resonate with decision-makers. Framing poor code quality as an accumulating liability — similar to deferred maintenance on physical infrastructure — helps executives understand that the cost of inaction compounds over time. Presenting a phased improvement plan with defined milestones also reduces the perceived risk of committing to a quality-first approach.

What is the difference between technical debt and simply having an older codebase?

Age alone does not define technical debt — the distinction lies in intentionality and structure. A well-maintained older codebase with consistent standards, good test coverage, and clear architecture is not necessarily problematic, even if it uses mature technologies. Technical debt refers specifically to the accumulated cost of shortcuts, poor design decisions, and deferred refactoring that make the code harder and riskier to change, regardless of how old it is. The danger is that unmanaged debt grows exponentially: the longer structural problems go unaddressed, the more expensive and disruptive they become to resolve.

Does software craftsmanship slow down delivery in the short term?

In the very short term, adopting craftsmanship practices such as writing tests before code or conducting thorough code reviews does require more upfront time per feature. However, this investment typically pays back quickly — teams with strong test coverage and clean architecture spend significantly less time debugging, fixing regressions, and untangling dependencies than teams that skip those steps. Most experienced practitioners find that after an initial adjustment period, craftsmanship practices actually increase delivery speed by removing the friction that low-quality code creates, making the 'slowdown' argument a short-sighted trade-off.

How does software craftsmanship intersect with AI-assisted development tools like GitHub Copilot or similar?

AI-assisted development tools can complement craftsmanship practices well, but they do not replace the judgement and discipline that define a craftsman. Tools like GitHub Copilot can accelerate boilerplate writing and surface useful patterns, but they can also generate technically functional code that lacks clarity, testability, or appropriate structure — making the human review and refactoring skills of a craftsman more important, not less. A craftsmanship mindset encourages developers to treat AI-generated code with the same critical scrutiny applied to any other contribution, ensuring it meets the team's quality standards before it is accepted into the codebase.

Related Articles