Five years ago, a handful of us nervously deployed a little application that held some pretty lofty ideals for the future of software development. We had grown restless with the shifts we were seeing inside the Agile movement. Conferences seemed to be filled with more and more coaches and fewer and fewer developers. People were talking about software development without ever really talking about code.
At the Agile 2008 conference, Uncle Bob Martin, in a keynote address, proposed an addition to the Agile Manifesto: “We prefer Craftsmanship over crap,” he said to the horde of thousands. Bob set the room ablaze that night. Code matters. All the terrific process in the world would never make up for that stinking turd of code festering just beneath the surface.
Instead of attempting to amend the then eight-year-old Agile Manifesto, we wrote a new one. We took the four values of the Agile Manifesto one step further.
The document was an attempt to raise the bar of professionalism in software development. We wanted people to stand up and say, “I can do better.” I believe today that the new manifesto succeeded in that goal.
Working software was definitely better than comprehensive documentation, but we knew that working software was not enough. We knew that the code had to be well crafted to keep a project productive over the long haul.
This wasn’t a new idea for the manifesto. Extreme programming has already developed most of the practices that are central to writing clean code today. In the last five years, though, their practices have moved from the fringes of software development toward the center. I would not say practices like Test Driven Development are common practice everywhere. What I have seen is that people come to the software craftsmanship community because of their strong commitment to practices like TDD.
Steadily Adding Value
We had seen how responding to change often left projects directionless, spinning in circles. Instead, we chose to commit to constantly adding value. So many teams and organization that tried to implement agile succeeded only in generating a flurry of activity, never actually getting anywhere. We’ve found that by practicing with discipline, we can cut through the noise and ambiguity and move a business steadily forward week after week. Small teams of software craftsmen routinely have success where larger teams fail. All the fancy process can never beat the solid, disciplined developer who works directly with a stakeholder to deliver the maximum amount of value.
A Community of Professionals
We knew that individuals and their interaction were important, but we saw the emergence of a community of professionals working together to build great software. This has perhaps been the greatest success of the manifesto. Groups all over the world have come together over their shared commitment to quality. Meetup has 97 groups listed in 27 different countries with nearly 20,000 participants.
There are a number of software craftsmanship conferences around the world. What’s great about these conferences is that there is no central authority running all of them. People have come together in their own communities to hold craftsmanship-focused conferences. They are wildly different, and each one is fantastic in its own way.
While we had experienced open collaboration, we stretched ourselves to imagine what it would be like to become partners with our customers. The small craftsmanship development company has led the way in this regard. We’ve seen that, in order for shops like 8th Light to be successful, we need to make our customers successful too. This begins with good software, but extends throughout a partner’s organization. Some companies were so successful in their partnerships that businesses actually fused together. Groupon purchased Obtiva in 2011, and Digital Garage acquired EdgeCase in 2012 and formed what is now Neo. Others have partnered directly with startups and fostered them through their early stages of growth.
Five years later, I remain proud to be the primary author and the first signer of the Manifesto for Software Craftsmanship. Its values remain relevant and its ability to bring people together to write great software endures.