This morning at CloudHealth we had the best sprint retrospective we've had during my entire tenure (5 months already!?) Let me tell you why.
The sprint itself was really productive. We delivered a lot of value to our customers, we responded promptly to customer issues, and we moved ourselves forward strategically. That being said, no codebase, process, product, or engineer is perfect. We've all go our strengths, weaknesses, tendencies, and pet peeves. We all have opinions on what is done well, and what isn't working.
At this retro our CTO Joe really encouraged us to take the gloves off and get brutally honest about what isn't working. Don't take anything personally, but let's get it all out there. Once we got started it got really real in the room. There were some tense moments but in my opinion it brought the true priorities to the surface.
I found the experience really refreshing. Honesty can hurt and sometimes we don't want to hear it, but you can't truly mesh as a team without it. We all got to know each other a bit better today and I think we're all better for it. And when the team gets better, the product and the company benefit.
It occurred to me afterwards that this brutal honestly is a key part to making any process work. Honest with each other, but more importantly honest with ourselves. Decisions made with a firm grasp on reality are decisions made on solid ground. This is much better than making decisions based on whatever stories or mythologies you and your peers have invented about how things are.