Saturday 5 March 2016

The fallacy of self-organising teams

"The best architectures, requirements, and designs emerge from self-organising teams” - Agile Manifesto

I respect the intent of this line from the Agile Manifesto but in my many years of experience in Agile teams I've noticed a common theme.  Yes teams need to self-organise but they always need a leader and teams rarely self-organise without this leadership.

For example...


  • Its natural for techies to scope creep through sheer enthusiasm (or perhaps just taking their eye off the prize) and it's not always obvious to a non-technical product owner when this is happening.
  • Don't expect "the team" to pick up individuals who aren't performing or perhaps are forgetting all of the agreements in the definitions of done.


I've always felt that someone in the team (I'm talking technically here) need to understand the direction they are taking and on occasion be a bit grumpy when they deviate from this.   Yes architecture can evolve but doesn't it help to have someone have some idea of where they are trying to go? 

I've just not seen teams do this naturally without prompt and that's why in a lot of teams there is some level of seniority - perhaps an architect or lead developer.  As much as the manifesto would like everyone to be equal in an Agile team, back in the real world someone needs to stand up and show some leadership qualities.

Perhaps this is symptomatic of having always worked for large enterprises.  The culture of Agile is evolving in this types of places and that takes time.

Its the same with DevOps.  Sticking a load of devs together with a load of infrastructure people together in a room and expecting them to instantly bond and start hugging each other is just not going to happen.  Sometime you need someone to lead from the front and (to begin with at least) TELL them what to do.

Of course, the easiest way NOT to influence someone's thinking is to tell them how to do their job - you have to make them think its their idea.

I catch myself from time to time telling and slap myself on the wrist.  Sometimes, even if I know they are doing the wrong thing you just need to let them get on with it - some people need to learn through failure.  Saying "I told you so" afterwards isn't going to win you any friends either.

Not to say I don't make mistakes myself.  Of course I do but then I'm happy to put my hands up, admit it and learn from it (which is what Agile is about after all).

Certainly our DevOps movement has been top-down rather than down-up as most purists would be prefer and would be interested to hear if this is the same experience in your organisation?