Saturday, April 12, 2008

Force Multiply: Send In the Marines

I've always liked working in small groups. I think small teams have more room to accomplish what they need to do without so much bureaucracy getting in the way. Plus, those posters with "inspirational" sayings on them come to mind. Like, "None of us is as dumb as all of us." Or, "Never underestimate the power of stupid people in large groups."

The same thing that makes a small team appealing to me is also the same thing that the team must overcome - the "small" part of the "small team". While a smaller team is able to move more nimbly than a larger team, it is also has less resources. So how is a small group supposed to get an ambitious project done in a timely manner with all that work to do?

Force Multiply.

That's how. I'd love to take credit for the idea, but in truth I saw this while watching a Military Channel special on Rangers. My wife left the room and my dog gave me the, "Are you really going to watch this over Sienfield?", look - but I did it anyway. (Our idea of what is interesting to watch on TV evidently differs somewhat.) According to the show, Rangers work in very small groups, but are responsible for a large number of successful high priority missions. I was interested to find out how that's possible.

Here's the concept. In order to be successful, you have to be able to overwhelm the enemy by being able to instantly multiply the size of your force. So, unless you have a cloning machine or a well trained pool of contractors, that means that you have to be able to count on people/teams outside of your team.

Now, that sounds like a pretty simplistic idea in theory. In theory, practice is like theory, but not in practice. I submit to you, that being able to count on people outside your team is much easier said than done. Some teams can't even count on the people on their team, let alone another team. But look what happens when it becomes a reality - three rangers sneek behind enemy lines and take their time doing recon. When the enemy starts to mobilize, they take action. The Airforce is radioed and suddenly the sky is full of bombers, the Army was positioned well in advance and has the enemy blocked in. Game over. They were able to force multiply faster than the enemy.

If you think about the factors that allow for this to happen, there aren't that many: communication and coordination. You have to get the other teams involved from the start and have good communication, so that when the call is radioed in everyone is coordinated and acting as one force. In our corporate software development world where each team often has a different agenda and so many people are willing to do whatever it takes to make themselves look good and get ahead (not just developers, but management as well) these simple concepts are often difficult to execute.

With my two cents said, what ways have others found to successfully break down barriers between departments/teams and improve communication and coordination that allow them to "send in the marines?"

Note: As an aside, I think it's important to note that the Rangers are part of the Special Forces. The soldiers on these teams aren't in their first rodeo. They're seasoned and they know what needs to be done. I think that the smaller your team becomes the more this needs to hold true.

Wednesday, January 23, 2008

Some things can't be changed

Some things are what they are.

Geez, I reread that sentence and at first I wasn't sure it had anything useful to say at all. Nonetheless, it doesn't change it's correctness. Apparently it is what it is. Darn it, I did it again. Some things you can just count on, like the sun coming up in the morning, Brittney making the front page, and a cheesy line in my post. Here it is: You can change your friends and you can change your pants, but you can't change your friends' pants. (Ummm... yep, that's definitely how it goes.)

The reason this topic is on my mind, as philosophical as it is, is that I think recognizing this fact can be useful. The number one, for instance, can't be the number two. It isn't green or blue or happy or sad or anything else besides the number one. You can add five to the number one, but you'll end up with the number six - and one, surprisingly enough, will still always, eternally, infinitely be the number one.

Because it is unchangeable, the number one is said to be immutable. I don't think this makes the number one bad, in fact it's quite a useful number (after you embrace it's permanence). So I guess we can all accept this fact or decide to be very unhappy about it, but either way Brittney will still be on the front page, and the number one will still be itself. What it seems we can change then, based on the previous recognition, is what we decide to do about it being unchangeable. We can change ourselves, our attitude, and what we choose to do with the information we're presented with.... something to think about.

To tie this back to a little bit of programming - I've read several blogs lately that talk about immutable objects. Regardless of whether you're looking for the good or the bad in things, you will usually find it. That's true with immutable objects too. Immutable objects have several properties that make them useful to work with, but if you view them with a negative attitude and choose to ignore them, you've dismissed them before you understood them. If you're interested, read some of the sites out there to discover what kind of cool things can be done with unchangeable objects and what kinds of benefits they bring. I've even seen it labeled a few times as the "future of programming."

Friday, January 4, 2008

It can't be dead, it's still twitching

Nope not gone yet. Just took a really long break.

Hopefully I'll come back with a fresh perspective.