Often, when I comment on someone's blog post or respond to a tweet with a story about how my team succeeded with some practice, someone replies, "Yeah, but your team is special." I interpret this as meaning, "You're a presenter and book author. You must be an expert, so of course your team can do anything." This frustrates the heck out of me.
Sure, after more than eight years of working together, we've had a lot of success and we've learned how to collaborate to solve problems. But, we didn't start out as intrinsically "special." It took a lot of time, experimenting, and learning. My ability to share helpful ideas through writing and presenting is because of my team, not the other way around. It's ironic that people discount my stories because they think my team got some kind of special pass to success.
What's more, my own team isn't particularly impressed with my speaking and writing activities. I have to contribute value every day and argue for my point of view when there's a problem to solve, just like anyone else.
If you know my work, you probably know that the company where I work was headed for disaster in 2003. The business model depended on automating everything, and the software wasn't working. This was as dysfunctional a software team as you've ever seen.
The owners wanted their business to succeed. They knew nothing about software development, but they were smart enough to ask around and find alternative approaches. They heard about agile, found out the name of the best person to help a company implement agile, and worked really hard to recruit him. Yep, it is true that having Mike Cohn as your team’s manager for the first year of their agile transition is a big advantage. But, more important is the fact that the business owners hired the best person they could find, and he actually did what he said he would do. For example, the owners gave the software team all the time we needed to learn how to deliver high-quality software. That isn't magic; it's hard work and a huge investment, and it required a lot of trust on all sides. I don't want to bore any readers again with the story of how it took us so much time and work to learn how to be a self-directed team. It was the constant focus on quality, not speed, that let us start to have tiny successes and build on them.
Pride in Our Product
I recently happened to run across a few different articles and blog posts that talked about how pride in your work is really a key to success. My team made a commitment in 2003 that we would deliver the best code we possibly could and, over the years, we have made that commitment meaningful.
When we hire a new team member, we take the time to find the right person—someone we're proud to have as a peer. If someone on the team isn't able to buy into our desire for top-notch quality, our manager has to let that person move on.
It’d be easy to decide things are good enough and coast, but we don't. We look for ways to shake up our routine, make our retrospectives more useful, and improve our product.
We want the improved user experience provided by Dojo, so we tackled this problem as a team. We researched other test drivers and frameworks to see if they handled the Dojo implementation. We had a meeting to discuss whether we should hire an outside consultant to come in and help or try to spike a solution ourselves. This wasn't an easy or comfortable meeting. We all just looked at each other, and nobody would make a decision.
Finally, our system administrator popped up and volunteered to do the first spike. He had some success with a homegrown framework and an open source driver, and he turned it over to a developer. The developer compared the homegrown framework to an open source one, coded some example tests, and showed it to the team. We decided to go with the open source solution. Now, we are free to use Dojo to enhance our site's user experience, well-supported with appropriate automated regression tests.Enlightening Managers
Early in our agile transition, my team had to educate the business managers and show them that while they own the business priorities, we own the technical implementation. After all, they hired us because we're the experts in delivering software. When they said, "Couldn't you just work late one day and squeeze in this one extra story?" we didn't say, "We'll try.” We said, "You can't put ten pounds of sugar in a five pound bag." When they asked, "Can't you just hack a quick solution?" we explained how doing things the right way would save them a huge amount of time and money in the long run. We showed them how technical debt works. Yes, sometimes there is a business need to do a quick-and-dirty solution, but we always go back and pay that debt.
Last year, there was a sudden need to deliver significant new functionality quickly. Our manager and our product owner pushed for a crazy hack solution, but we explained that it wouldn't take us much longer to do it the right way. Because our team has learned to identify simpler technical implementations and push back on the business to agree to them, we did three times our average number of story points in one two-week sprint. We don't usually pay attention to our velocity; it's just a number that helps the business plan. But, the stack of story and task cards that we finished in one sprint—especially one which included a holiday and some team members on vacation—was pretty impressive. We didn't work overtime or stress out. Our years of investment helped us to go quickly.
Yes, I guess you can say our team is "special," but it isn't due to pixie dust It's because of a lot of small experiments, and our pride in what we deliver. If you see a comment from me on a blog post that says, "Here is what worked for my team," don't discount it out of hand. Think about how your team might educate your own managers and try some small experiments. Your team might become special, too!