Thursday, July 18, 2013

The Thick of Thin Things

One of the situations that terrifies me, in the life of any team, is the period when, all good intentions aside, the real work load descends in earnest. All rhetoric at this point goes by the wayside. It doesn't matter what the process is. It doesn't matter what the division of labor is. What matters is just plain "getting stuff done" and by hook or by crook, you do that.

Very often, the minutiae of what we do comes to the fore at times like this. We want to be effective at explaining what we are doing. We want to be able to help out our team mates understand what's going on. The problem is, if we hit any kind of barrier, we often get the external pressure that implicitly tells us "deal with that later".

This is a dangerous time. What often happens is that little things start falling like snowflakes. They just keep coming. More and more little issues, needs, meetings, deliverables, you name it. Stephen Covey, in his book "The Seven Habits of Highly Effective People" described this situation as getting into a trap called "the thick of thin things". What makes this period dangerous is that, almost universally, these situations have the unintended consequence of creating knowledge silos.

As an example, I'll describe a recent turn of events that have happened over the past several months. We have a good team, we have a variety of skills, and as a team, I think we do well together. What has happened over the past few months is that one of us has been primarily focused on and making great strides with mobile testing. One of us has been actively engaged with performance monitoring and looking for ways to boost performance in the app. Another one has been actively hammering away at creating integration tests for each of our story steps. As for me, I've been spending a lot of time getting into the internals and platform configurations necessary to test and learn about the underlying architecture of our application infrastructure.

These things are all great, and it's important that we know what we are doing and can get better at it. The danger of getting into the thick of thin things is that expediency almost guarantees that those who are good at particular areas will get sucked into the gravitational pull of those skills. I'll mention something I'm working on and wouldn't it be great if another tester could try out what I'm doing. Lamentably, there are a number of times where we've looked at each other and realized "oh, wait, you can't do that for me. My environment seems to be the only one that can do that."

I see what some of you are thinking... "well, Michael, what's the problem? Why don't you just go and help get your teammates up to speed so they can do what they need to do?" I agree, it's a great sentiment, and it's one I want to do all I can to help with, but then comes the snowfall again, and the danger sign appears where we say "I'd love to help you set that up, but it would take me so long to do it that I'll not be able to do what I need to do, because I'm getting buried in my own thick of thin things".

When the snow starts falling, we naturally go where it's warm, and usually, what's warm is what we know and can do quickly and effectively. When it's storming, we want to stay cozy until it blows over. Our colleagues are thinking the same way. The problem is, unlike a snow storm that will eventually end and allow you to dig out, in our work life we often don't get that break in the weather. That means we never really get a chance to dig out of our own shelter to go see how our teammates are faring.

So what should we do? One of the things that we have built into our schedule is what's called a "Wiki Wednesday". We get them once a month, and they are opportunities for our developers to go and work on something interesting to spur creativity and new product directions. If you get the chance to participate in something akin to a Wiki Wednesday, take it. Get the whole test team together, or at least pair with another tester or team member (could be a programmer, a designer, an ops person, or a support person, doesn't really matter). Make a commitment for that day to exchange information in a meaningful way. That could mean sitting down and walking a tester through setting up an environment (or multiple environments) from start to finish. Have both of you document the process and have the junior partner in the activity present to the team to show what they have learned. Likewise, take the opportunity to work with the pair to get into what their expertise happens to be, and be prepared to do a write up and presentation about what you have learned. If Wiki Wednesday isn't an option, then get together for breakfast, lunch or dinner, or over drinks at the local pub. Just find some place and time where people can separate from the daily nitty gritty and make sure that they are learning from each other.

I personally enjoy the opportunities I get when I can confer with my teammates and learn something new from them. It's easy to do this when things are relatively mellow. The real trick is to remember to do this when things get cloudy and blustery, and the thick of thin things descends. The more often this exchange of knowledge occurs, the less likely that you will find yourself snowed into your own cabin when things get crazy.

No comments: