Showing posts with label retrospective. Show all posts
Showing posts with label retrospective. Show all posts

Oct 23, 2011

Team Entropy


Code that is left alone will eventually start to break down. This is called code entropy  and is like this evil force of nature which can only be kept at bay by constant code refactoring. 
Each time you add code, entropy increases making the code a little bit more complex and a little bit harder to maintain.  In short, technical debt is slowly increased little by litte.

But what about team entropy?

Like code decay, team entropy is an invisible force constantly working on you to let things slide, beckoning you to return to the way things were before. At the core, this is one of our most basic instincts: avoid work by taking the easy path, not necessarily the smartest path. 
"I should go to the gym, but...". 
"We really need to do something about this, but ..."
All teams are influenced by it and many succumb to it. When energy is high, this is not a big deal, but eventually energy is lost. After numerous sprints and releases, things starts to get cosy and routine. Complacency sets in. The result is that continuous improvement suffers and the team eventually falls back to a pre-agile state. But the funny thing is that the team still believes they are agile, even though they are only going through the motions.

Here are some indicators that a team is affected by entropy or complacency.

  • Retrospectives becomes a comfortable routine
  • Longer iterations are introduced
  • Re-planning during iterations are accepted
  • Stand-up meetings gets longer and does not create energy for the team
  • Less pair programming and/or pairs rarely switches
  • The whole team is getting more quiet
  • Agreed-upon practices are skipped in silent agreement
  • Workarounds are accepted instead of fearless problem solving
  • Bugs are starting to appear again
Team entropy is hard to fight or even notice once it has started to set in. They way to fight it to be vigilant (for lack of a better word). You need to be on your toes. Constantly challenge yourself and your team to improve and question the way you work.

How to fight it?

Retrospectives! Treat them seriously and never accept routine when it comes to retrospectives!
Change the way you do them, make them shorter or longer, try a new agenda, hold them in a new place, use different tools, try another time. In short, surprise your team!
For inspirations there are a few books which can help you with this. I recommend that you add Agile Retrospectives and Collaboration Explained to your reading list.

Oct 24, 2010

Small Steps Forward

You can strip away everything there is in Scrum/XP or whatever you call it, as long as you keep true to one thing: Be better tomorrow.

It's the concept that you should constantly challenge yourself and your team to improve and take small steps forward each day and be proud of your progress. I don't know if there is a term for it, but continuous improvement seems suitable enough, or heck, just remember the boy scout rule:

Leave the campground cleaner than you found it.

The retrospective meeting is the most obvious practice which works towards this goal. This check is enforced at least once every iteration, and is there to make sure you are in fact getting better and not stagnating or even starting to slip.

Some (otherwise) great agile teams seems to fall back into complacency and, dare I say it, laziness, after a while. This is like code entropy, but for the team. The result is that continuous improvement suffers and the team eventually falls back to a pre-agile state. Here are some indicators that the team is slipping into complacency:
  • Retrospectives are becoming a boring routine
  • Stand-up meetings no longer creates energy for the team
  • Less pair programming and/or pairs rarely switches
  • The whole team is getting more quiet
  • Agreed-upon practices are skipped in silent agreement
  • Workarounds are accepted instead of fearless problem solving
  • Bugs are starting to appear again
Team entropy is hard to fight or even notice once it has started to grow. Also, there is always a certain amount of acceptance from the whole team which makes it even harder to bring up to light.

You might consider using any of the online agile assessment tests or bring in experienced people from outside the team to help challenge the status quo.