A few weeks ago I said that there’s more to creating software than just having a lone programmer. Much of creating a great software product is getting the right team together. In fact, O’Reilly just released a book on Beautiful Teams.
Beautiful teams can truly do amazing things. There’s only one truly awesome team from the 80s stands out to me — The A-Team!
What can we learn from them?
Just like the A-Team, your software team should be varied with each person having a specific skillset that balances out the others. Here’s a cheat-sheet for the key players you need when building your team:
- The Madman (aka Murdock): Of course, you need the brilliant coder who can design the system and crank out the code. These are the folks who will rewrite half the code over a caffeine-infused weekend to have it just right. This person ideally works in emacs and thinks LISP and C (or some other obscure language) is still the best. Think Stahlman or Carmack.
- The Suit (aka Face): Next, you need the biz guy who can sell this crazy software to someone. Because as we all know it’s not the best software that wins. It’s the software that is best sold and marketed. It’s the software that gets traction with the masses, and you need your biz guy for that. Think Jobs or Ellison.
- The Leader (aka Hannibal): This is the guy who plans your software project. He may be the person funding it or the project manager. He sets the vision and makes sure the plan stays on track. He may even have a penchant for phrases like “I love it when a plan comes together”. Think Fred Brooks or Joel Spolsky.
- The Enforcer (aka BA Baracus): Not all projects have these people but they help to make everything stay on track and “pity the fools” who take it off-track. Think David Cutler or Steve Ballmer.
The best software comes from the best people. So when you assemble your A-team not only should you be looking to fulfill roles, but you should keep the bar as high as possible. Find craftsmen and people that really love what they do.
Because at the end of the day, software is simply all of the combined ideas of the team turned into code. So the better ideas you have going in, the better software you’ll get at the other end.