Software Teaming

Software teaming is a very simple idea: Let’s improve our ability to work well together.

Almost all work done developing software requires that we collaborate. There are many possible ways to approach this, and Software Teaming is one way.

I use this simple high level description to share the basic concept of Software Teaming:

All the brilliant minds working together on the same thing, at the same time, in the same “space”, and at the same computer.

With the focus on remote work over the past few years the “same space” can be virtual if needed, and the “same computer” can be accomplished using screen sharing and other techniques – but the main ideas stay the same.

Collaboration is easy in some ways, and difficult in others. To be able to do this, we need to learn how to collaborate well.

This pair-programming guideline is fundamental to my approach of Software Teaming:

For an idea to go from someone’s head into the computer, it must go through someone else’s hands

This provides a powerful mechanism for the team to be aware of what is going on. When someone shares an idea out-loud everyone on the team can follow along. Another technique is to use visual communication on a white board to capture the idea in diagrams, sticky notes, and written words. This combination of talking and “living documentation” is amazing.