Blog

Agile is just human nature

May 12, 2007

I just finished reading a book written by Phillip Khan-Panni, and its not about any of the latest cool technologies or methodologies, but about efficient communication between us human beings. It's about learning how to talk on lectures, presentations, meetings, etc. ...  without putting anyone to sleep (that's why I started reading this book). The book I read was translated in Dutch, so I don't know the original title of the book.

One of the exercises in the book is to have two people sitting with their backs against each other. One of the two people involved describes the following drawing to the other person as he tries to recreate the drawing according to the directions from the first person.

You can probably imagine that this gives you quite some funny variations of this drawing. The clue is that most people (including me) fail miserably in successfully completing this exercise and this for the following reasons:

  • we need human gestures.
  • we need to have eye contact.
  • we need interaction as we speak our language.

We needs these things in order to communicate properly from one person to another.

We need feedback to let us know how we are doing and lead us to adapt our communication in order to accomplish better results.

Sounds pretty agile to me, right? Being an agile developer is all about having all kinds of feedback:

  • feedback from our clients after each iteration so that we know we're on the right track. If not, we need to use this feedback to make the right adjustments.
  • feedback from our code thanks to continuous integration, daily builds and unit testing.
  • feedback from code coverage.
  • feedback from code metrics.
  • etc. ...

Therefore I say that agile development means to bring the process of  developing software back to our roots. This is why agile development feels like the right thing to do (for me it is).

The absence of eye contact forces us to completely rely on words. This brings us to the interpretation of those words.

This describes why the waterfall methodology fails miserably. Near the end of this sequential development process everything and everyone involved gets out of sync including the software itself because of a continuous lack of feedback. How we interpreted the input coming from our clients at the very beginning is something we need to show them as soon as possible. It's all about people communicating with each other. 

What I'm trying to explain here is that the traditional waterfall approach is a violation of human rights. Noticed that I used the word feedback eight times in this post (not including this sentence). We need a guy that jumps up on stage on agile conferences, jumping around like a monkey while screaming "feedback, feedback, feedback" ;-). What do you think? (and no, I'm not the chosen one)   

If you and your team want to learn more about how to write maintainable unit tests and get the most out of TDD practices, make sure to have look at our trainings and workshops or check out the books section. Feel free to reach out at infonull@nullprincipal-itnull.be.

Profile picture of Jan Van Ryswyck

Jan Van Ryswyck

Thank you for visiting my blog. I’m a professional software developer since Y2K. A blogger since Y2K+5. Provider of training and coaching in XP practices. Curator of the Awesome Talks list. Past organizer of the European Virtual ALT.NET meetings. Thinking and learning about all kinds of technologies since forever.

Comments

About

Thank you for visiting my website. I’m a professional software developer since Y2K. A blogger since Y2K+5. Author of Writing Maintainable Unit Tests. Provider of training and coaching in XP practices. Curator of the Awesome Talks list. Thinking and learning about all kinds of technologies since forever.

Contact information

(+32) 496 38 00 82

infonull@nullprincipal-itnull.be