Agile (Wrongfully) Assumes Craftsmanship

I love driving my car. It’s a male thing, I suppose. It’s somewhere in my Y-chromosome. I embrace every opportunity I can find to hop in my car and start driving.

And (like every other male on the planet) I think I’m a good driver.

You see, I always watch the other cars around me on the road. When changing lanes I check all sides and mirrors. My distance to the cars in front of me is enough to allow for occasional extreme speed reduction. I match my speed with the weather conditions. I play music in my car (loudly) but I don’t wear headphones. I don’t use my mobile phone while driving. And, as far as I can tell, I am the only person in the world who is able not to cross the lines that mark my lane while taking a curve to the left or the right.

I have adopted this behavior myself. I might have copied some stuff from other people, but it was my choice to learn these rules and use them, always.

In software development it is the same. We may learn practices from colleagues, books, or from any other source. But it is our personal choice to learn new practices and to apply them. It is not the number of official rules in an organization that counts. What really counts are the rules that people are willing to learn and use. In his book Complexity and Management Ralph Stacey wrote:

”Rules are not what make an organization function. What people do despite the rules is what brings an organization success.”

It is people’s actual behavior that must result in successful projects. And so I come to the topic of craftsmanship and discipline.

In his post What the Agile Manifesto left out, Brian Marick (one of the original signatories) wrote that discipline was never explicitly mentioned in the manifesto. Consequently, this lack of mentioning discipline introduced the problem of many people incorrectly interpreting agile as being “undisciplined”, which is untrue, or forgetting about implementing the disciplined parts. Scott Ambler wrote about that in The Discipline of Agile. The truth is that discipline is essential to agile software development. Many professional software developers agree, and so we now have a Manifesto for Software Craftsmanship, which mentions “well-crafted software” and a “community of professionals”.

Unfortunately, while many people think they’re good drivers, not many people attempt to be good drivers. In my recent presentation I said it like this:

Agilists assume craftsmanship
Only few people
pursue craftsmanship

Corey Haines loved this statement of mine, so it must be true. When we go to a doctor, we expect the doctor to be skilled. When we step in someone else’s car, we expect the driver to be capable. (Except when it’s a Romanian taxi driver) And when someone hires a software developer, she expects him to be disciplined. It’s as Jeff Atwood said: Discipline Makes Strong Developers.

My recent Big Agile Practices Survey showed that following a Definition of Done is the 2nd most important practice in software development (right after Source Control). But 17% of the respondents told me that they did not apply this practice. In fact, the percentages of practices deemed important were always higher than the percentages of them actually being applied.

People are not doing what they think is important.

Only thinking and talking about something doesn’t make it so. Just like making up official rules won’t turn your business into a success, traffic signs won’t make you a good driver. In fact, I often don’t notice many of the signs. It is my attitude and actual behavior on the road that makes all the difference.

Road-nicholas_t-361161401

Craftsmanship is something agile doesn’t introduce by itself. And just thinking and talking about it doesn’t give you successful projects. Managers who want better results must acknowledge that they have to actively change the attitudes and behavior of their people. They must stimulate craftsmanship and discipline. Or else…

Or else accidents will happen.

They say changing people's behavior starts by giving them a good example. So let the world know that yesterday night, while many people were watching the Champions League Final, I myself was learning how to do test-driven development with Python.

I hope to have inspired you…

(images by Viernest and Nicholas T)

Twitter TwitterRss SubscribeEmail NewsletterDelicious Bookmarks

Latest, greatest and favoritest posts:
Managing != Coaching
I Don't Feel Like Writing, Yet I Write
How to Make People Behave: 6 Levels of Disciplinary Action

  • Scaling Up My Twitter Follow-Back Policy
  • Top 25 Hitler Rants
Related Posts
free book
GET MY FREE BOOK!
“How to Change the World”
  • http://conceitua-se.blogspot.com Bruno

    I was watching the champions league final.

  • http://conceitua-se.blogspot.com Bruno

    Complementing my previous comment: what a confusion of concepts. What’s the relation of “people pursuing craftsmanship” and “agile”?
    If people don’t bother about their work, it’s already lost. Agile is only a way of *empowering* people and *freeing* them of bureaucratic tasks.
    If your people don’t care, you have an entire different problem – one that’s totally unrelated from using agile or not. And if that’s the case, no process or “discipline enforcement” will make things better, no matter what.
    Because process doesn’t write software. People do.

  • Kevlin Henney

    Good post, but the statement that “many people incorrectly interpreting agile as being “undisciplined”, which is untrue” is itself untrue. Whether or not it can be attributed directly to the wording of the Agile Manifesto is perhaps a separate question, but the assumption that agility does not entail discipline is a common problem. It can be found as a theme running through many books, blogs, articles, etc. For example, the implication that agility is not necessarily disciplined is embodied in the title of Boehm and Turner’s book, “Balancing Agility and Discipline”.

  • http://joapen.blogspot.com/ joapen

    You did!

  • http://www.thousandtyone.com rajiv

    > In fact, I often don’t notice many of the signs. It is my attitude and actual behavior on the road that makes all the difference.
    True and very well put.
    > Craftsmanship is something agile doesn’t introduce by itself
    But then, I don’t think any other process does that either. After all, people build awesome software; “Processes” (with a capital “P”) don’t.
    > I hope to have inspired you.
    Yes, you did.

  • http://softwareresults.blogspot.com/ Dave Moran

    I agree! Agile is all about being lightweight, and geared toward experienced practitioners who already understand software engineering practices and the craft of software development. Less experienced people – or those who don’t pursue craftsmanship as you point out – have little to rely on with agile.
    The Agile Manifesto leaves out craftsmanship, but I would point out that the Agile Principles do at least give this mention: “Continuous attention to technical excellence and good design enhances agility.” Of course, the pursuit of excellence is completely up to the practitioner…
    http://www.ambysoft.com/essays/agileManifesto.html

  • Gustavo Martinez

    Jurgen, if you agree on this maniefesto. Why didn’t you sign it? 😉

  • http://www.webjam.com Marcus Greenwood

    This is a great article which I’m just about to forward to our development team. Thanks for explaining something so well that I’ve really struggled with for so long!
    cheers
    Marcus
    p.s. I guess you’re not a football fan then!

How to Change the World - free Workout - free
CLOSE