Retrospectives just do it
Retrospectives are ones of the most critical must have agile practices. Is really easy to see the differences between a team who does retrospectives and other who don't. Unfortunately so many so called "Agile Adoptions" avoid doing teams retrospectives in regular basis. Unless you have a great Lean-like culture of continuous improvement in place in don't see sense killing retrospectives(Even if you have - IMHO the difference is that you do retrospectives in small batches and you don't need a especial day to do it).
Retrospective Format & Styles
There are several ways to perform an agile retrospective, some are time fixed like 1h or 2h. Other formats are very driven like the 6 hats, in this style of retrospective you have specific moment for talk good or bad about somethings. I found interesting work with these formats and for young and new agile teams they cloud help to focus on the right spot.
IMHO i found really boring and rigid or with these formats, I do prefer work with a more free-style retrospectives, that basic there is no restriction on time, thats mean you can have a retrospective session with more them 4 hours. It's really important that everyone talks, in order to archive that I like to let everyone written events on post-its and this is free, anybody can write anything BUT the team will judge if that event was good or bad and if was team responsible or not.
Growing the team
(You don't build the team you grow it)
One by One everybody talks, you can introduce a little optimization getting all people post-its that are very related to the same subject, what you write down and how you write down really don't matter, what really matters in the discussion that the team will have about the event.
You must carry some stick notes to put the events in some class near by or even on the near by table. Is important that the team make the call if something is good or not, people may have different points of view, this is normal and acceptable, but you must reach consensus.
One person could put one event good looking for one point of view and other point that out bad in other point of view, I found better accept both points and put it in the wall, this is more democratic and enable the team live with different points of views and also this helps a lot people to feel confident to talk more and more and share they're ideas and worries.
This sometimes generate some very enthusiastic passion discussion or even conflict thats good, some folks cloud think that we should avoid the conflict, I totally disagree, retrospectives are the moments to talk and have the conflicts that we should have, this is really important to grow up the team as a real agile team.
The pyramid above show the 5 dysfunctions of the teams, this are the team behaviors that you want do fix in order to archive a working team, the first issue is the absence of the trust, this cloud appear when the team members don't tell what they are really thinking this leads to the second issue thats is Fear of Conflict, someone outside cloud look the team and say "It's a very professional team, no conflicts" BUT the true cloud be that no one cares or people are not saying what really matters and hiding issues that cloud became bigger issues in the near future.
Retrospectives are great moments to build trust and have conflicts, conflicts cloud lead to pain or learning depending the way that you conduce they, one good agile coach knows how to driven people trough conflict to learning. One thing that is really needed in this free-style retrospectives in getting actions, I personalty don't like to get and write down actions on the retrospectives day, I do like to talk a lot about the subject or even discuss actions but I don't like write down in the same day. Why ? There are a couple of reasons, first because I like to follow the last responsible moment and delaying action to other day also give more time for me and for the team, second because I really like separate thing in two moments, first moment discussion and talk, throw the shit and let the shit hit the fun, second really take action and split the action own through the team, all actions must be spited through the whole team, this helps to create a team ownership and establish trust.
Throw shit on the fun is great because create a culture inside the team that they can talk about any subject like real adults with no fear or pain, this is really important, one step more in the trust, trust is the basics of an agile team.
When you get people out of they're comfort zone, magic happens, a team is like a bigger living organism, much more stronger and powerful then just people inside a room, its hard to explain but when you get a team you feel that you have find your place inside the project and your challenges are motivation not fear because you do have people that you can trust and they can and will help you.
Getting people and teams out of the comfort zone is not easy, this may take more them one retrospective to archive that, but the practices leave to perfections and retrospectives are one step to grow that team, you do follow other agile practices that help you archiving that like: pair programing, customer daily talk, collective class ownership and several other practices and good mindsets.
GO outside!
I did several retrospectives inside companies or teams workspace and I must admit it they suck. Call me crazy, I really hate doing retrospectives inside companies and I have my reasons:
When you share food with people this create not just the sense of union but also is a celebration of the importance and awareness of a team. People tend to let ideas and personal opinions out easier in that kind of environment. FUN is a important part to a team, why ? Because developers like to do cool and fun stuff. Sometimes this kind of retrospectives could create side effects to your wallet(spending more money) or to your shape(getting more fat) BUT those are risks that I can support in order to create a agile team. The real issue could be if you work in more than one team and your company is doing retrospectives in each team. :D
In the photos above you can see my team having fun in the near by arcade, yes geeks do love arcades. :D
It's a small action going to arcade but also works in the direction of creating trust and really put people more close to each other, this heps a lot in the daily work basis.
Cheers,
Diego Pacheco
Retrospective Format & Styles
There are several ways to perform an agile retrospective, some are time fixed like 1h or 2h. Other formats are very driven like the 6 hats, in this style of retrospective you have specific moment for talk good or bad about somethings. I found interesting work with these formats and for young and new agile teams they cloud help to focus on the right spot.
IMHO i found really boring and rigid or with these formats, I do prefer work with a more free-style retrospectives, that basic there is no restriction on time, thats mean you can have a retrospective session with more them 4 hours. It's really important that everyone talks, in order to archive that I like to let everyone written events on post-its and this is free, anybody can write anything BUT the team will judge if that event was good or bad and if was team responsible or not.
Growing the team
(You don't build the team you grow it)
One by One everybody talks, you can introduce a little optimization getting all people post-its that are very related to the same subject, what you write down and how you write down really don't matter, what really matters in the discussion that the team will have about the event.
You must carry some stick notes to put the events in some class near by or even on the near by table. Is important that the team make the call if something is good or not, people may have different points of view, this is normal and acceptable, but you must reach consensus.
One person could put one event good looking for one point of view and other point that out bad in other point of view, I found better accept both points and put it in the wall, this is more democratic and enable the team live with different points of views and also this helps a lot people to feel confident to talk more and more and share they're ideas and worries.
This sometimes generate some very enthusiastic passion discussion or even conflict thats good, some folks cloud think that we should avoid the conflict, I totally disagree, retrospectives are the moments to talk and have the conflicts that we should have, this is really important to grow up the team as a real agile team.
The pyramid above show the 5 dysfunctions of the teams, this are the team behaviors that you want do fix in order to archive a working team, the first issue is the absence of the trust, this cloud appear when the team members don't tell what they are really thinking this leads to the second issue thats is Fear of Conflict, someone outside cloud look the team and say "It's a very professional team, no conflicts" BUT the true cloud be that no one cares or people are not saying what really matters and hiding issues that cloud became bigger issues in the near future.
Retrospectives are great moments to build trust and have conflicts, conflicts cloud lead to pain or learning depending the way that you conduce they, one good agile coach knows how to driven people trough conflict to learning. One thing that is really needed in this free-style retrospectives in getting actions, I personalty don't like to get and write down actions on the retrospectives day, I do like to talk a lot about the subject or even discuss actions but I don't like write down in the same day. Why ? There are a couple of reasons, first because I like to follow the last responsible moment and delaying action to other day also give more time for me and for the team, second because I really like separate thing in two moments, first moment discussion and talk, throw the shit and let the shit hit the fun, second really take action and split the action own through the team, all actions must be spited through the whole team, this helps to create a team ownership and establish trust.
Throw shit on the fun is great because create a culture inside the team that they can talk about any subject like real adults with no fear or pain, this is really important, one step more in the trust, trust is the basics of an agile team.
When you get people out of they're comfort zone, magic happens, a team is like a bigger living organism, much more stronger and powerful then just people inside a room, its hard to explain but when you get a team you feel that you have find your place inside the project and your challenges are motivation not fear because you do have people that you can trust and they can and will help you.
Getting people and teams out of the comfort zone is not easy, this may take more them one retrospective to archive that, but the practices leave to perfections and retrospectives are one step to grow that team, you do follow other agile practices that help you archiving that like: pair programing, customer daily talk, collective class ownership and several other practices and good mindsets.
GO outside!
I did several retrospectives inside companies or teams workspace and I must admit it they suck. Call me crazy, I really hate doing retrospectives inside companies and I have my reasons:
- Work get you: Is common that someone goto your room asking a favor or help about a small issue thats only will take 1 minute, this minutes repetes all the day.
- Heavyweight Environment: Even if you have a lightweight agile cool and fun environment it could get heavy because people get afraid to say stuff(other people may listing) etc..
- Computers: People have workstations and they may start using during the retrospective, then you lost all people attention, it's not just that BUT the respect for the other could be compromised.
- 4h inside the company(meeting): Do you really want spent 4h inside your company locked inside a room with your team for 4h or more ? Really ?
The solution is go to a nice Restaurant with your team. This have nothing but advantages, people get outside of the work environment enables a feeling and sensation of coolness and freedom to speak. I will not mention that you're helping growing your local economy and discovering the city with your team. This sense of discovering with the team is great, is learning, creates a caring feeling.
When you share food with people this create not just the sense of union but also is a celebration of the importance and awareness of a team. People tend to let ideas and personal opinions out easier in that kind of environment. FUN is a important part to a team, why ? Because developers like to do cool and fun stuff. Sometimes this kind of retrospectives could create side effects to your wallet(spending more money) or to your shape(getting more fat) BUT those are risks that I can support in order to create a agile team. The real issue could be if you work in more than one team and your company is doing retrospectives in each team. :D
In the photos above you can see my team having fun in the near by arcade, yes geeks do love arcades. :D
It's a small action going to arcade but also works in the direction of creating trust and really put people more close to each other, this heps a lot in the daily work basis.
Cheers,
Diego Pacheco