It’s been awhile since my team had a (Sprint/Iteration) Retrospective. I’ve been grumbling about it on my team for several months, but after my Certified Scrum Master training I was reenergized to try it again. It went better than I think most of us expected, and I think it was the most productive Retrospective we’ve had.
I started out asking people if they thought we should have a retrospective. There were a few team members that voiced honestly they didn’t want to take the time to do it. The explanation they gave was that they’d participated in many before, often listing the same things that needed improvement, and rarely ever seeing any changes. And as you would expect it doesn’t take too many rounds of that for people to write retrospectives off as something useful.
I also learned that my previous way of facilitating the meeting was an issue with some team members. In the past I would ask each person one-by-one during the retrospective to list things that went well and things that need improvement. There are team members that take that as being “put on the spot” and they feel pressured to come up with things that need improvement. (As a side, I explained to them that my way of thinking if people can’t come up with any things that need improvement then the team is perfect and we coudln’t do better. The reaction to that from the same people was a “OH GOSH! No way, it’s far from perfect” type of reaction. Hm! ).
After some discussion everyone decided they were willing to at least give up one hour and to try this retrospective. I came in with one major goal, pick ONE thing to improve. Make it visible to remind people what the one thing is. And build a list of real action items to help improve the one thing. We built a good list of things that are going well and things that could go better. The team decided they wanted to pick off two things. Since one of the things was a pretty easy improvement, we all felt we could take on two things to improve.
The first thing to improve was making our burndown chart more visible. Another team member suggested that (at least for now) we take a few minutes at the beginning of our daily standup to talk about the burndown. Some people aren’t familiar with all the different things we communicate through the burndown, and what all those lines and dots really mean to the team.
The next item we took was to build a definition of “Done” for a Sprint and build action items to help us get there. Currently our team defines done as coded. As you can imagine it can get messy when things from a previous Sprint are being tested in a new Sprint. If things need tweaked or bugs are generated it can throw a new iteration out of whack. We decided as a team that “Done” to us for a Sprint means Coded, Tested (by BA role), QA Scripts pass, and the task in our tracking tool is marked as closed. Next we brainstormed about ways to achieve that definition of done:
- Organize our Sprint Backlog in such a way that larger or more complex stories are checked in to give testing plenty of time. We’ll move little cosmetic changes or simple fixes to later in the Sprint, because those should be easy to test and generally won’t introduce new bugs.
- Developers working more closely with QA members and BAs to help test. It sounded like developers would even be willing to quit coding for a day or two if need be to help the BA’s with any testing issues they may have.
- Developers taking ownership of getting code changes deployed into our testing environment. Currently developers are monitoring CI for bad builds. When a build goes bad developers will quickly get the build fixed, but we wait for the overnight deployment process to move the new code base to our testing environment. Now developers will make sure that things get deployed in the middle of the day if overnight the build breaks. This ultimately boils down to a little more communication between the ba’s and developers on our team : “Hey BA Jones, our unit tests failed last night. I’ll get it fixed within the hour and once the build is good we’ll get the new code deployed to the test box”
I captured our TWO big things on a cling sheet and stuck them to the wall where we have our daily scrum. It should be a good reminder, and when things get off track we can talk about it. Everyone on the team was engaged in talking about the things we wanted to fix. It wasn’t just a person or two doing all the talking.
As the meeting concluded one of the team members that was honest about not wanting to do the retrospectives said she enjoyed it and thought it was productive. I was reminded of an important concept that everyone loses sight of from time-to-time : just give it a try. I got feedback from a few other team members over the next day. Everyone seemed really positive about the retrospective, and excited that we had concrete ideas on how to address things we want to do better. And now at our next retrospective we have a jumping off point - how did we do our communicating around our burndown and achieving our definition of “Done”. I’m looking forward to the next one!