mai 2011Monthly :

Agile teams – What people managers can learn from parents

image by candrewsBefore I explain what people managers can learn from parents, I feel the need to defuse what some readers may have in mind. I am not suggesting that employees and team members are children or act like babies [although, sometimes ... - sorry, I'm digressing].

The Art of Parenting

If you have children, you should quickly relate to the fact that nothing really prepares us to be good parents. Sure, while growing up we assimilate patterns, behaviours, and skills from our environment – including and often to a large extent from our own parents. At a later stage in our children-free life, some of our friends start to have kids and we observe them – sometimes with curiosity, sometimes out of sheer voyeurism, and sometimes with envy – and that’s when we contemplate the idea of having kids of our own.

Then, one day out of the blue, the kind doctor tells your spouse that she is pregnant – in our case with twins! But that’s an entirely different story ;)

Then comes the next stage of learning to become a parent, we spent countless hours on amazon.com previewing and ordering books, lot’s of books. Except for a few best sellers, the others titles vary based on our perceived areas of weakness and the bad pattern we noticed from our parents when they raised us.

And one day, a beautiful baby boy is born and/or a pretty baby girl – once again, in our case we got one of each.

Once the sleepless nights are over and the baby is capable of learning, parents slowly transfer increasingly complex tasks to their child: holding the milk-bottle, feeding themselves, walking without holding mommy’s hand, abandoning the diaper, selecting how much ketchup to put on their food, picking their own clothes, walking to school by themselves, deciding what time to go to bed, going to a movie without supervision, and so on up to the point when the child moves out of the house to start their own independent life.

What people managers can learn from parents

It is obvious that parenting is very different from managing people, no doubt about that. On the other hand, their are some similarities.

Nothing prepares people to become good managers. Sure, while growing up in our professional career we assimilate patterns, behaviours, and skills from our environment – including and often to a large extent from our own managers. Granted, some people had the opportunity to learn about management during their school years and that could be an added bonus.

As with parenting, once we decide to get into management we spend countless hours on amazon.com previewing and ordering books, lot’s of books. Except for a few best sellers, the others titles vary based on our perceived areas of weakness and the bad pattern we noticed from our previous managers.

How that applies to Agile teams

Agile management is somewhat similar to the art of parenting with the manager transferring to its team increasingly complex tasks and responsibilities. Helping the team self-organize doesn’t mean to abandon the team to itself without help or some supervision. Along the same lines as parenting, there comes a time when the manager must determine how much responsibility to transfer and what level of support to provide.

Similar to the role of the parent, the agile manager is there to support the team’s development and make it successful and autonomous until one day – maybe – the team is highly performing and can become independent.

The myths of self-organized teams

Image by Lauren_MillerMany Agile practitioners will push forward the concept of self-organized teams as a first step towards an Agile transition. Unfortunately, self-organization is often mis-understood and many become frustrated with the concept. Below are myths taken from real life situations – including the inner workings of our organization.

  • Self-organized teams can only work with experienced people. Although more experienced individuals may make it easier to self-organize, they can also make it much more difficult due to their old work habits. Overall, the age of the team members or their actual experience doesn’t impact their ability to self-organize. Self-organization has more to do with the people’s willingness to self-organize and the support they get from their manager than it has with age or experience.
  • Self-organized teams don’t need a leader. Wrong, self-organized teams still need a leader to move them through the various stages and toward their end goal. This being said, it doesn’t mean that the leader has to be a manager or a person in authority. Quite the contrary. Emerging leadership is a much better way to achieve self-organization but management needs to be patient because self-organization takes time.
  • Self-organized teams don’t need managers. Why not? Managers are a key success factor to support self-organization. Once again, this doesn’t mean that the manager is included in the self-organized team or that the manager will be leading the team. As Jurgen puts it – “Agile managers work the system around the team, not the people in the team”.
  • Self-organized teams are for everyone. Not necessarily, some people may not be ready for self organization or they may not be willing. Everybody has the capacity to be part of a self-organized team, it is simply a matter of wanting to be part of such a team because it is demanding and requires people to become responsible and accountable.
  • Self-organized teams are easy to implement. Really? If it was easy, why wouldn’t everyone adopt self-organization? The fact is that starting at a young age, we keep being told what to do (brush your teeth, go to bed, pick up your clothes, do your homework, show up at the office at 9am, finish the report for your boss, go on vacation in July, retire at 65, etc.) Wanting to be self-organized and taking control of your life is counter-intuitive and difficult. People in self-organized teams often act as victims of circumstances during the early stages (I can’t do this because the system won’t allow me) and then start to notice the opportunity the freedom of choice brings.
  • Self-organized teams quickly increase the team’s performance. No, it won’t. The team’s performance will indeed increase and for the long run but self-organization requires time, energy and much efforts to deliver results. If you are interested in quick-wins with minimal investments (time and/or money), I would suggest the Agile magic pill.

Autonomy or self-organization is a strong contributing factor for motivation and motivated individuals lead to improved performance and better results. Attempting to implement self-organized teams without understanding the risks and the energy required isn’t a good idea.

Classes ouvertes en ruby

Le kata du mois dernier proposé par @12meses12katas m’a encore appris quelque chose. C’était la première fois que je faisais en Ruby le kata bowling. Comme d’habitude je voulais passer sous les 10 minutes avec un code et des tests avec lesquels je sois confortable, c’est à dire qui communiquent leurs intentions d’une manière que je pourrais encore comprendre l’année prochaine.

J’ai commencé par écrire des tests qui ressemblaient à ceci:

describe Bowling do
    specify "spare" do
        claire.sheet = "1/------------------"
        claire.score.should == 10

        claire.sheet = "1/2-----------------"
        claire.score.should == 14
    end
end

J’ai continué tranquillement avec le kata et lorsque j’ai fait passé les tests avec les cas plus complexes avec des spares et des strikes j’ai regardé mon chronomètre et j’ai pris une baffe: 24 minutes. J’ai recommencé plusieurs fois, j’ai posé mon scénario sur une feuille, pour arrêter de perdre du temps à calculer les résultats attendus, j’ai utilisé un raccourcis clavier de plus pour introduire une variable dans RubyMine, j’ai tapé sur mon clavier comme un fou, j’ai mis une table dans les tests, et j’ai péniblement atteint 18 minutes. Bof.

Puis je me suis rappelé du kata des chiffres romains de @jacegu du mois dernier et j’avais bien aimé ses tests qui utilisaient une extension de la classe Fixnum. Alors j’ai essayé de mettre ça en pratique et cela donnait des tests assez différents:

describe Bowling do
    specify "spare" do
        "1/------------------".scores(10)
        "1/2-----------------".scores(14)
    end
end

J’aime mieux cette version des tests qui se concentrent sur le problème à résoudre et supprime le bruit. En plus cela m’a permis de baisser le chrono :) .