Declan Whelan wrote a thought-provoking blog citing an idea he learned from Mishkin Berteig about an (unspoken) principle behind successful Agile teams: truthfulness. The basic idea is this:
... agile methods rely on people speaking the truth and acting with integrity. I thought this was very insightful since most agilists focus on either technical aspects of agility such as TDD, refactoring or they focus on team and leadership issues.
Truthfulness? Really? It's not immediately clear to most people, so Declan gives a personal example where he was less than truthful:
For example, once when I was developing a financial application I made what I thought was a good design decision but really struggled to get it to work. I did not want to appear as if I had made a mistake. I basically lead everyone to believe all was well and meanwhile I worked insane hours to get it all working. I was letting pride get in my way and was lying to cover up a bad technical decision.
That example, unfortunately, is not uncommon for many of us and let pride get in our way. An agile team, according to Berteig, is not fertile ground for such actions:
Now, I think it should be obvious that on an agile team you simply could not get away with such behavior for any length of time. There is collective code ownership, daily stand-ups, task and story tracking, sustainable pace; all of which make the whole process much more transparent. So, on the one hand I agree with Mishkin that agile methods rely on people speaking and acting truthfully.
But is an agile team really immune to this type of problem? Not, necessarily says Declan:
But we are devious creatures and so I would like to leave you with some questions to ponder:
- Are you honestly expressing your doubts and concerns in retrospectives?
- If something is bothering you with another member of the team do you act in a direct but respectful way to resolve it?
- Are you able to freely admit when someone has a better idea or design than yours?
- Are you willing to admit when you make a mistake?
- Do you say the same things about someone when you are face-to-face with them to do you say something different behind their back?
"Truthfulness an Agile value" has a nice ring to it. Values are increasingly taking front-stage as the core - without them the individual practices like TDD, Iterations, Done State and others are meaningless.