Overcome Agile hangovers with a 'software craftsman' approach

How to make Agile stick: both IT professionals and their employers need a 'software craftsman' mindset that addresses each project with extreme quality and care -- despite deadline pressures.

Agile software methodologies are all well and good, but many companies may be experiencing "Agile hangover." This is something that happens as a result of going into Agile with high expectations, but not seeing overnight success with software finely tuned to business needs.

ibm-watson-photo-from-ibm-media-relations.jpg
Photo: IBM Media Relations

That's the word from Sandro Mancuso, author of The Software Craftsman: Professionalism, Pragmatism, Pride. In an InfoQ interview with Ben Linders, Mancuso cites Agile hangover as something that happens as companies "wake up, after a few years of Agile transformation, to realize that all those Post-Its on the wall and all the Agile coaches they hired really didn't do much to increase the quality of their software and neither helped developers to get better."

That's because many organizations obsess over the Agile process itself, but don't focus enough on what is actually being delivered, says Mancuso. By having developers "working in the same old way when it comes to software development practices," software will still be delivered late, will still be buggy, and the gap between business and IT people will remain.

To make Agile stick, Mancuso advocates reviving a "craftsman" (or "craftsperson") approach to software development. This seems almost like a quaint notion, and seems to fly in the face of the increasing industrialization we have been seeing in the software space, in which solutions are rapidly assembled with pre-built components. Mancuso urges getting away from a production-line mentality, and getting back to basics. After all, software will be running the business at the highest levels, as well as routine day-to-day operations.

Software craftsmanship is more than simply having pride in one's work. It's a two-way street. A craftsman approach also helps increase the respect of the business for their IT professionals, who bring high-level expertise and a sense of purpose that will advance the business. In software, developing a deep obsession with the customer's needs is part of being a craftsman approach. After all, obsession with customer satisfaction is what helps business succeed at the highest level.

A few years ago, these values were enunciated in the Manifesto for Software Craftsmanship (with more than 16,200 signatories so far), citing the following values:

"As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value:
  • "Not only working software, but also well-crafted software"
  • "Not only responding to change, but also steadily adding value"
  • "Not only individuals and interactions, but also a community of professionals"
  • "Not only customer collaboration, but also productive partnerships"

The manifesto has a very similar vibe to the Agile Manifesto, and that's no accident. As Mancuso explains in his book, Agile principles are an important part of software craftsmanship, which also advocates a higher-order role for developers:

"Although software craftsmanship is not a methodology, it strongly recommends the adoption of certain technical practices and disciplines, mostly the ones defined by Extreme Programming. With a great synergy with Agile and Lean principles, software craftsmanship promises to take our industry to the next level. Professionalism, technical excellence, and customer satisfaction are the main focus of software craftsmanship. One of its main focuses is changing the perceptions that software developers are like workers on a production line and that software projects can be run as if running a factory."