Prerequisites for a X-Functional Team

nfl_u_bironas_300

I have a confession to make: I’m a huge football fan.

Every Sunday you can find me glued to the TV watching the high drama we call the NFL play out like gladiators in a Roman coliseum. It’s a gorgeous spectacle. The other day I was watching a game where the team was punting to the Hawks. The kicker, a specialist if there ever was one, dispatched the kick and then all hell broke loose.

The receiver, some professional 800 pound wrecking machine of a human being, caught the ball and proceeded to mow his way down the field. This guy was in Beast Mode. He was flinging 300 pound linemen left and right like rag dolls. In short order it was apparent that there was only one thing left between him and the goal line: our hero, the kicker.

The kicker, wearing only one shoe. The tiny little kicker, with shoulder pads that are probably best described as vestigial. This one scrawny guy was the only thing in between a rip-snorting, fire-breathing, brahma bull and the goal.

Right before he tried to tackle the coming human freight train I remember thinking, “You poor bastard.” As you would expect, he was cast aside by the rampaging helmeted monster like a toy.

After the play, the kicker got up, bleeding and concussed and headed for the sideline. You couldn’t blame the guy for thinking, this ain’t my job. I don’t get paid enough for this crap.

But he did it anyway. Let’s face it, anyone can tackle somebody. All you have to do is spread your arms wide and kiss your ass goodbye. We all have the tools required to do that.

And that’s what makes cross functional teams work. On a cross functional team we all have a minimum set of skills that we can all use. Like our kicker, we aren’t all equally skilled at using them, but we can do it in a pinch. If we have too.

The more I thought about that, the more I realized that this is just as applicable to software teams as for football. In order for a truly cross functional team to work, there must be a common underlying set of skills that is shared by every single member of the team. No exceptions. None.

Any member of a truly cross functional software development team must be able to do the following on demand:

  1. Pull the latest version of the code from the code repository
  2. Build the code from scratch
  3. Deploy and configure the application
  4. Build the tests
  5. Configure the tests
  6. Run the tests and be able to understand the results

Every single member of the team needs to be able to do all of the above. Everyone. That means:

  1. The project manager
  2. The developers
  3. The QA
  4. The Release Engineer
  5. The UI guy
  6. The Documentation specialist
  7. The Business analyst
  8. The Product Manager
  9. Did I mention everyone?

You don’t have to know how the code works. You don’t even have to know how to program (although that helps). Each of the tasks I listed is entirely mechanical. You could train a rat to do any of those tasks (with enough food pellets). They are the bare minimum necessary to contribute to helping a cross functional software development team get their work done.

You may even use tools to help make each of these steps nearly automatic (if you are on an especially bright team). That way you minimize the training required for someone to join the team and help you out. You automate the overhead so that any idiot can build the product and run the tests. This makes it possible for others to help you. It lowers the barriers to entry and creates the opportunity for others in your team to help you out.

If you can’t do these things, then you have barriers to helping each other out. If you don’t even know how to build the code, then there isn’t even an opportunity for you to contribute. These things are basic. No, they’re even more important than that, they are primitive. Learning these fundamentals should be part of joining the team for everyone.

So, is your team cross functional according to this definition?

2 Responses to Prerequisites for a X-Functional Team

  1. Robyn says:

    You have made some good points, but maintaining cross functional teams has been a big problem for us. We have tried TFS, JIRA, SmartBear and are currently running Countersoft Gemini. It really is tough improving cross team functionality.

    • Tom Perry says:

      Robyn,

      Ooh, there is some good stuff there. I’ll take a stab at some ideas, please forgive me if I miss the mark (I have to read between the lines a bit). A few thoughts come to mind:

      1) Are you switching tools frequently? Switching tools would have a cost in terms of the team having to take time to learn them and become proficient. Be careful there…the more tools you use, the harder it will be to achieve x-functional behavior. Personally I might focus on a minimum set of tools that everyone must be proficient in (a set that hopefully doesn’t change much).

      2) Do you expect the tool to enable cross functional behavior for teams? I ask, because I believe they won’t. No tool creates or enables cross functional behavior. People create that behavior, not tools. I know the vendors advertise that their tools enable x-functional behavior with social media style features, but I think that is marketing BS. We are seeking x-functional *behavior*, not x-functional tools.

      3) Are these the really important tools to know? TFS, JIRA, etc. are all tracking and management tools. Tracking tools have a place in the world, but it’s not where the real action is. The real value is in doing work: coding and testing. The rest is project management tracking, which while necessary, should not be mistaken for the most important work.

      Hope that helps,
      Tom

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 545 other followers

%d bloggers like this: