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.