The Most Important Agile Practice Of All

RespectI believe respect is one of the corner stones of agile teams. In my mind agile software development was always first and foremost about people – the practices and processes we use now are secondary and less important. It is all about how you deal with people, how you treat them, how well you are able to collaborate etc. Even technology must take a back seat considering that any non-trivial piece of software these days will be built by a team of people (rather than just one individual) and even the coolest technology in the world will not be able to make up the deficit when the people in the team are unable to work together. It therefore should come as no surprise that 2 out of the 4 points in the Agile Manifesto are centered around people:

  • Individuals and interactions over processes and tools
  • Customer collaboration over contract negotiation

There has been a tremendous amount of literature written about how to get people to work well in teams. When a company/projects can get it right – astonishing results have been achieved, but despite all the studies and guidelines on the subject, to this day the elusive factor that makes a team click is more often than not pure chance (with elements of premeditation, but chance nevertheless). Which leads me back to where I started – respect.

I am not saying that respect is the single factor that will make people succeed when they work together, but it is certainly a major component.

Respecting Those You Work With

Can you respect absolutely everyone you work with? It is a tough question and if we’re honest with ourselves, the answer will have to be no. We respect certain qualities and attributes, these are the qualities that are important to us. When others exhibit those qualities, we are likely to esteem them more highly than the people who lack the attributes that we admire. But, just because a person may not be someone we can innately respect, that does not mean that they should be treated disrespectfully or dismissively or that their opinions are less valid. You potentially interact with all sorts of people on a day to day basis:

  • team mates
  • members of other teams you deal with
  • business people (customers, stakeholders)
  • marketing
  • users
  • etc.

Not all of these will have the same background or level of knowledge/skill – infact they may be completely unlike you in every way. But aside from the fact that they may be highly respected in their field of expertise, your interaction with them forms part of the dynamic of your whole workplace which contributes to the energy it will exude.

Have you ever walked into an office and just felt really good about the place? Everyone seems to be really happy and the whole area just feels a little brighter than it should. Well, more likely than not, people treat each other with respect and courtesy there. On the other hand, I am sure you’ve at least visited an environment where as soon as you walked in you thought to yourself, “I’d rather shoot myself than work here and if I did work here I probably would“. Guess how people treat each other there.

Of course all of this seems really fluffy and touchy-feely (flowers and peace man – groovy :)) and I am well aware of that. If you’re a hardcore analytical developer who only respects cold logic and wicked Unix skillz think of it this way, there is always a developer out there who is much more hardcore and analytical than you and whose Unix skillz are way more wicked. If you ever met that person would you like to be dismissed and marginalized by them or do you want to be treated with courtesy and respect? And now tell me, does that ‘clueless customer’ or ‘stupid marketing guy’ really deserve your disdain? You can make all the jokes you want at this point, but just remember one thing. Do you know who else works in that crappy workplace where everyone is an arrogant bastard and people treat each other with contempt and scorn – you do! Joke about that.

Respect In Teaching And Learning

Enough of the fluffy stuff here is something concrete. Most developers would agree that one of the things you want to get from your job is to be able to learn from the people you work with. Of course, in order for someone to learn, someone else will have to teach – that’s just common sense. But, nobody really has a duty teach anyone anything. They will either do it because they are extremely altruistic and enjoy teaching others or something will prompt them to share their skills and knowledge. Do you know what that something is? You guessed it – respect.

Let me share with you a little piece of wisdom that my dad shared with me a little while ago. My dad has been a tradesman ever since he got out of the army – around 30 years or so. He is very good at what he does. The way knowledge is passed on in the trades is through apprenticeships. The relationship between master and apprentice is interesting, the master can either tell the apprentice what to do or he can also explain why certain things are necessary. In the first case the apprentice learns the moves and may become a decent worker, in the second case the apprentice can set himself firmly on the road to becoming a master himself. But, the thing is, it is much easier for the master just to give directions, it takes extra effort to sit down and explain (and sometimes show) why things are necessary. So what would make the master want to take the time to order their own thoughts and to actually sit down and teach rather than just supervising? It is several things:

  • when the master can see that he has the apprentice’s undivided attention – the apprentice is not distracted by other concerns when the master is sharing knowledge
  • when the master can see that the apprentice is willing to follow direction – the apprentice doesn’t argue unnecessarily
  • when the apprentice is willing to do something extra without being told – for example, the apprentice takes the initiative to clean up after a job is finished without being told

It has taken the master many years and/or decades of effort to gain the knowledge that they have, all they want to see is that the apprentice appreciates being taught what the master knows. The thing that the three points above have in common is that they are all signs of respect:

  • showing appreciation for being taught by giving your full attention
  • not being too argumentative (although asking questions and arguing to some extent can be ok)
  • saving the master from doing something routine/boring

Just three little signs of respect, but they make all the difference between a person who is happy to teach you something and take the time to explain and someone who won’t really bother and just do it themselves (probably better and faster to boot).

I’ll be the first to admit that the dynamic in software is completely different than it is in the trades. There is no formal apprenticeship relationships and the line between master and apprentice can be extremely blurry, it is more often several people sharing knowledge with each other rather than one person teaching. But the basic principle of respecting the person who is willing to share the knowledge translates very well. If you don’t give your attention, if you don’t show some appreciation if you’re not willing to follow the directions at least for a little while, next time the person may not even bother sharing what they know and everyone is worse-of if that happens.

Fostering An Atmosphere Of Respect

If you were asked to give up any agile practice or ideal which one would you choose? It is tough to answer that one, but I do know one thing, I would give up all of them before I would give up the idea of respect within the team and in the workplace, because without respect all the other practices aren’t worth a whole lot.

One of the best things you can do for any software team is to foster an atmosphere of respect, not just towards other team members but towards anyone who has to deal with the team. Not only will this create an atmosphere where people will be happier, but it will also foster an environment where everyone is willing to share what they know, people are happy to collaborate, noone is afraid to bring up issues if they notice them. Everybody knows that no matter what, they will be treated with respect and courtesy. How to foster such an atmosphere is a whole other matter and I would like to come back and look at it at some point. In the meantime, I would love to hear what you think. Do you believe respect is as important for truly agile teams as I think it is, or do you think something else is more so?

Image by kkimpel

  • http://www.markhneedham.com/blog Mark Needham

    Nice post – it actually reminded me a lot about the stuff I’ve read about lean where the emphasis is on the need to continuously improve and respect other people.

    I like the ideas you have about masters/apprentices as well – I think they are definitely more willing to share their ideas if you are inquisitive but not dismissive and it’s certainly useful to understand the reasons behind their approaches otherwise we just end up blindly following some advice which is never effective.

    Enjoying reading your posts by the way, great stuff.

    Cheers, Mark

    • http://www.skorks.com Alan Skorkin

      Thanks man, even though I blog to make sure I sort out my own thoughts, follow up on my ideas and to keep myself from slacking off :), it really makes you feel good when other people appreciate it. I guess we’re all human after all :).

  • http://vinay.in Vinay

    You said it. Respect for one another can make a world of difference. Very good post.

  • Ignasi

    I totally agree with you.

    Even working with a crappy and messy application, that can drive us mad easily, our team is able to finish on time and keep going because of the respect and the good mood.

    Cheers

    • http://www.skorks.com Alan Skorkin

      Exactly, respecting each other can overcome quite a lot and get you through some bad spots without ruining any relationships.

  • http://bloggerkedar.blogspot.com Kedar Mhaswade

    I agree, there is no point in being a jerk. Even highly opinionated people have a set of people they can work with. So, everybody has to be able to find a set of people they can work with.

    It’s mostly about people, I agree. Sometimes it gets challenging especially when deadlines are nearer than they appear. Perhaps the techniques of “isolation” i.e. separating yourself from the problem and looking at it impartially (as an observer) can help?

    • http://www.skorks.com Alan Skorkin

      The thing for me is that being opinionated does not preclude you from being respectful to people. I am highly opinionated and I’ve met plenty of people who would argue like there is no tomorrow when there was a need but they are still friends afterwards because they respect each other and each others opinions.

  • http://blog.iljapreuss.de/ Ilja Preuss

    I agree that respect is vital – not only for Agile teams, but for teams in general. I was a little bit mislead by the title of this article, as “having respect for each other” is hardly a practice, in my eyes.

    So, what practices build respect? I’d think mainly those that foster mutual understanding, expectation setting and collaborative achievement. Which Agile Software Development has a lot to offer for: Retrospectives, Whole Team, Daily Stand Ups, Short Iterations, Pair Programming etc. pp.

    • http://www.skorks.com Alan Skorkin

      You’re right respect is not really a practice but more of an ideal, but I think it underpins many of the things that we actually do consider practices such as pairing, retros etc. And you’re also correct in that those same practices can build respect as well, which is a kind-o feedback cycle.

  • Rainer

    Hallo Alan, glad i found your blog. This is a well argued post that focuses, as you say, on what’s most important in agile – people. I am interested in the quality of communication and collaboration in the workplace. Without respectful behaviour toward one another, we’re dead in the water. Thanks for your insights.
    btw a related reading resource about jerks in the workplace: “The No Asshole Rule” by Robert Sutton.

    • http://www.skorks.com Alan Skorkin

      I am happy that you enjoyed reading it and thank you for your comment I really appreciate it. I’ve heard of/seen the ‘The No Asshole Rule’ before, but haven’t yet had a chance to read it (it’ll have to go on my Amazon wish list now :)).

  • Pingback: links for 2009-09-02 « pabloidz

  • http://twitter.com/limafabio Fábio

    This post is EXCELLENT. I absolutely enjoy this read. One of the best posts i ever read. Nice job. Keep going :)

    • http://www.skorks.com Alan Skorkin

      Thanks man, really appreciate it. I just try to put down my thoughts in the best way I can, it is really gratifying to see that people enjoy it.