When people first hear of Software Teaming, it seems like such a simple concept. Instead of working individually, we work together. All we must do is move our chairs together and share a computer. It’s a trivial mechanical change that requires only a few moments of effort.
What could be easier?
It turns out to be more challenging than we might first imagine. The difficulty isn’t in the infrastructure changes. It’s relatively straightforward to set up a computer, large monitor, keyboard, and mouse for everyone to share. Perhaps we might be delayed while waiting for a large monitor to arrive, but this is a minor difficulty that’s quickly overcome.
Working as a team all day, every day, means we spend a lot more time interacting with each other than we usually would. This level of interaction is where the actual difficulty arises, which requires conscious effort to overcome.
Sometimes team members have problems working together after Software Teaming for a while. Minor annoyances, disagreements, and squabbling sometimes escalate and hinder the team’s collaboration.
What is happening here? I believe it stems from our work conditioning. The majority of programmers spend their day working in isolation from others. In this environment, there is little opportunity to develop the interpersonal skills needed to work well with others. When placed into an environment where they work alongside others all day, it should be no surprise that they haven’t developed the necessary interpersonal skills to do so.
The good news is that these skills can be learned.
All we must do is consider how we treat each other. A modified version of the Golden Rule applies here: Do unto others as they wish to have done unto them. In other words, treat others as they wish to be treated. (Or for those who are fans of Kant’s Categorical Imperative: Act in such a way that you would will your action to become universal law.)
In the original group where Software Teaming was first practiced, a team agreement was derived for putting this into practice. Each team member filled out stickies describing how they wanted to be treated. Grouping them on a whiteboard led to the following conclusion.
“I want to be treated with Kindness, Consideration, and Respect.”
The team made this statement their operating agreement, and things proceeded much more smoothly after that.
What does this look like in practice? I believe each team must create its own agreement that best suits it, but here are some things to consider.
- Before saying something, it helps first to ask yourself, “Is it kind, considerate, and respectful?” If you aren’t sure, then perhaps it’s best left unsaid. Not every thought has to be stated aloud.
- Allow others to finish speaking rather than interrupt them. For some, being interrupted means they will stop talking, and the team will lose what insight they were sharing.
- Listen for the quiet voices. Some people are hesitant to speak up and will allow others to direct the conversations. Gently allow them their turn to share their thoughts. Often, they will have keen insights that help the team solve difficult problems.
- We’re human and sometimes mistakenly step on someone’s toes. When this happens, it helps to apologize quickly. As tempting as it may be, try to resist defending behavior that has strayed.
This simple approach goes a long way toward making Software Teaming groups more effective. When we learn how to treat each other well, we create a path toward better solutions.