The last post about definitions of done got me thinking about another under used team practice, working agreements.

A working agreement is a set of rules that a team agrees to follow so that everyone has a common set of expectations, responsibilities and obligations to one another. It's subtly different from the definition of done in that it's meant to cover all the teams working practices not just when writing code.

The team work out what their individual agreements will be and, like the definition of done, they are expected to change over time.

Here's an example to get you started:

  • No rambling during the stand-up
  • Meetings have an agenda
  • Turn up on time for meetings
  • Complex code must be written by a pair
  • No checkins without passing unit tests
  • Everyone helps to fix a broken build
  • Fix bugs before new features

Everyone brainstorming items on sticky notes is a good way to get started. Techniques like dot voting can be used to find the most important items the team agrees on from a long list of potential rules.