Goal Driven Retrospective
Retrospectives are usually conducted in order to keep the continuous improvement engine wheels working properly on a project. It is present on most of the agile processes I have worked with, such as Extreme Programming (XP) and Scrum.
The image below describes retrospective that most of us are used to:
On my last project at ThoughtWorks I had the opportunity to introduce to our client, together with Jason, a new type of retrospective, the Goal Driven Retrospective.
Goals and Actions
The Goal Driven Retrospective brings the idea that we should be much more focused on creating actions to achieve common goals shared and agreed within the team and also that will definitely add business value to the client.
Examples of goals:
- Zero bugs in UAT
- Productivity x 2: If a similar feature is required, the team should be able to implement it in at least half the time that they took at the first time
- Improve work environment
Examples of actions:
- Showcase and run selenium tests on IE to decrease number of browser dependency bugs in UAT
- Refactor JSP's and create a DSL to specify exactly what varies from one story to the other
- Team lunch to improve work environment
It is essential that the person who is facilitating the retrospective, usually the Scrum Master, XP Coach, or Iteration Manager is aligned with the goals of the organization.
Values
In order to prevent conflict of interest, all the goals are defined based on values:
- Productivity
- Cost
- Quality
- Morale
By following these values the actions will make the team:
- Faster
- Cheaper
- Better
- Happier
All the actions must be aligned with all the values.
Some examples of actions that would not be acceptable because they go against values:
Where is morale?
What if someone suggests that in order for the team to be twice as productive they need to work 16 hours a day? If you just had that face and thought: "Come on, we know that this doesn't work..." you are smart aligned with the values, but remember: this is not common sense.
Slow slow slow... what about productivity?
Or what if to achieve zero bugs in UAT we try to test and automate every single possible scenario in the whole application?
The picture below shows the output from the retrospective we had on the client:
I strongly encourage everyone to give it a go and try this new way of improving.