2 Sure-Fire Ways for a PM to Ruin a Retrospective

Posted January 28, 2009 by seandoran
Categories: Retrospectives

Tags: ,

Effective team communication always requires multiple channels. Stand ups, Iteration Planning Meetings, informal one-on-ones, team lunches, retrospectives, and (perhaps most important) simply sliding your chair across the team room to ask a question are all a part of the necessary multi-channel approach. 

For project and program managers, retrospectives stick out as a unique channel for their utility in providing a dedicated time and space to surface those nagging concerns and good ideas that all teams have but often do not express. PMs should work very hard to make sure this regular forum goes very smoothly for the team. All well and good, and not really controversial, I hope.

So then why do so many retrospectives still suck? 

I believe that the retrospective techniques themselves are rarely at fault. Not to say that every activity has equal merit; some approaches do fall flat. But there is something else going on when you see an unengaged and quiet team every time you kick off the session. That silence is a danger sign and a missed opportunity for the project. I see two key areas where the PM uniquely has the ability to drive team engagement in the retrospective, or, the reverse, make it a painful exercise the team cannot finish soon enough.

It’s not the PM’s retrospective

Retrospectives are for the team and their voice has to be primary. A PM that doesn’t understand this point can instantly shut down the flow of ideas through simple but inappropriate comments. Things like ‘didn’t we already talk about that’, ‘that’s out of our control’, or, the real killer, ‘you don’t understand’. Repeat those comments and you will create the impression that retrospectives do not matter, nothing will change, and the team’s opinion is not important to management.  

Fundamentally, without a climate of openness, retrospectives have no chance for success. Any team member can torpedo a retrospective but none with greater ease or speed than the PM. 

So what does a PM need to do? First, never jump to the resolution of any raised issue immediately. Let the team have the opportunity to express their concerns and generate ideas for solutions. They will likely generate a much better breadth of ideas than you could alone and, further, a team is much more likely to support an idea that came from them.

Second, teams need to vent. Disagreeing with them about feelings and concerns they express is a sure way to cut off useful contribution in retrospectives. Sure, some of those feelings and concerns may be off base but they still change team behaviors. As such, the team leadership has to deal with the issues raised but public disagreement in a retrospective is rarely the best way.

It will eventually break, no matter how well run

A certain staleness creeps into retrospectives over time. This applies mostly to the iteration level retrospectives, where the team loses interest in generating new ideas. They are being asked the fundamental question of a retrospective, “How do we improve”, in the same way over and over again.

So the lesson for a PM is to make sure the retrospective activities rotate. There are lots of options out there, easily found, and easily implemented in your next retrospective. Get out there, find them, and use them. 

Another cause of staleness is too many sessions by the same facilitator, very often the PM. Even if you are brilliant retrospective facilitator, look for other team members to step up and hold the white board marker for a change. Experienced facilitators from outside of the team are often the best approach, bringing a fresh perspective on things. This is sometimes difficult to arrange on an every iteration basis but it really is a must for larger, project length retrospectives.

How high is your wall?

Posted January 13, 2009 by seandoran
Categories: Team

Tags: ,

One of the most common complaints heard on software projects where inter- and intra-team communications have broken down is that something has been ‘thrown over the wall’. In comes a deliverable (documentation, code, tests, even whole applications) with no warning, no instructions, and no context for the recipients.

Developers throw software over the wall to the QA department for them to sort out the bugs. Business analysts throw requirements over the wall to developers so they, the analysts, do not have to talk to the technical staff in any meaningful way. The more handoffs you have, the more opportunity this phenomenon has to cause waste. Many agile and lean practices are focused on breaking these walls down within teams, or, better yet, preventing them from being built in the first place. 

But those who have likely suffered the most from this dysfunction are deployment and support organizations, those responsible for shepherding software projects to the point where they can be used and supporting those applications once they get there. In many organizations, project teams have thrown a lot of bad software over the deployment wall and, in response, the gate keepers on the other side look to build their wall as tall as possible. If you keep getting hit hit on the head by failing software coming over the wall at you, making it harder and harder to get faulty software into production is the natural response.

How is the done? Many ways, of course, but perhaps you have seen unnecessarily lengthy release documentation, onerous approval processes requiring coordinating a huge number of uninvolved stakeholders, and quality assurance process that are all backloaded to the end of the project but don’t actually assure quality.

The problem with all of the above is that these approaches do not actually keep faulty software out of production. It still gets to production, it just takes longer. Even worse, even if the project teams have put together quality software, the journey to production just takes longer without adding any value. 

In contrast, some organizations look to build bridges between their delivery and their support organizations. By this I mean establishing a clear and predictable path from the development process to the production environment, as free from obstacles as possible but still focused on close observation of those applications attempting to move into the production.

There are lots of technical practices available to help out, like continuous integration, testing automation, and deployment automation. But one of the most straightforward techniques is to keep project teams focused on their software until it is in production. This eliminates unnecessary handoffs between teams and links a project team’s success to the ultimate goal: software in production that delivers value to the business not an interim goal of merely getting software ready to deploy.

It is right and proper that organizations control deployment of software into their production environments. But the right mission is to get quality software into production as soon as possible, not make it as difficult to as possible to get any software into production.

Finally entering the blogging world

Posted January 8, 2009 by seandoran
Categories: Introduction

After much procrastination and delay, I’m finally entering the blogging world. My focus will be managing IT projects from an Agile and Lean perspective. Much to follow….