Breaking Up The Team

What would hap­pen if mid­way through the the NFL sea­son last year, the Pitts­burgh Steel­ers, stand­ing at 6 and 2 and lead­ing the AFC North, had decided that their foot­ball sea­son was over and dis­banded the team? Or what if they decided to move Big Ben to the train­ing squad because he was a prime per­former and the train­ing squad wasn’t really per­form­ing very well? What, you say? This would never happen?

No of course this would never hap­pen for a vari­ety of rea­sons not the least of which is that a team doesn’t just dis­band. A team doesn’t take their best per­form­ers and move them onto another project because that project is suck­ing wind. A team may lose a player here and there due to injury or trade or retire­ment but there is a sense of con­ti­nu­ity to a team that exists above and beyond the sum of the team’s parts. A team has com­mon, long-term goals like “win­ning tonight’s game”, “win­ning the divi­sion” and “keep­ing our super­stars with the team”. Suc­cess­ful teams of all types typ­i­cally have a com­mon cul­ture and no divas. Or at least the divas are under some­thing resem­bling con­trol. Even on NBA teams, where there are often divas of extra­or­di­nary diva­hood, win­ning rarely comes con­sis­tently unless the rest of the team buys into both the sys­tem and the super­star. Con­versely, on bad teams, you may have one of the great­est play­ers ever (see: Kevin Gar­nett pre-Boston Celtics) and still lose all the time.

This is true of all kinds of teams. With­out some sem­blance of sta­bil­ity, cul­ture, direc­tion and goal, teams fail. In fact, they often implode. And yet, we in the soft­ware indus­try con­tinue to call groups of peo­ple “teams” when they are at best, loosely grouped col­lec­tions of indi­vid­u­als with sim­i­lar skillsets work­ing tem­porar­ily on a com­mon project and at worst, highly dys­func­tional trapeze artists who would like noth­ing bet­ter than to cut down the safety net and install 2 ounces of extra weight in the left side of their fel­low coders bal­ance bar. Project teams are not teams.

This is one of the goril­las in the room of cur­rent soft­ware method­ol­ogy. We talk about soft­ware teams as if they want noth­ing more than to suc­ceed when in fact, often­times, they could care less and may even have motives to fos­ter fail­ure. Of course, you could argue that we come up with method­olo­gies to stan­dard­ize these poor teams. But then some­one might call you a cynic.

Granted, there are teams like this in the sports world but they don’t typ­i­cally stay teams very long. They are bro­ken up, sent away and rebuilt with the goal of hav­ing a real team. But in soft­ware, dys­func­tional teams may stay together for office polit­i­cal rea­sons and com­pletely suc­cess­ful teams may be dis­banded in an effort to spread the suc­cess around, ignor­ing the fact that the team may have been suc­cess­ful because they were a team. We con­tinue to treat soft­ware teams as if they are com­pletely dif­fer­ent from any other type of team we have ever encoun­tered in reality.

As long as we keep try­ing to treat the symp­toms of the dis­ease instead of the actual dis­ease, we’ll con­tinue to have an indus­try that lan­guishes. Sta­bil­ity is the crit­i­cal com­po­nent of the long term suc­cess of a soft­ware devel­op­ment team. Doing any­thing that under­mines that sta­bil­ity con­tributes to the con­tin­ued fail­ures in soft­ware devel­op­ment that we keep try­ing to cure with a new method­ol­ogy. A solid, sta­ble, pro­fes­sional team can write soft­ware using any method­ol­ogy. It’s only because we refuse that sta­bil­ity that we have to have sil­ver bul­let method­olo­gies to try to cure so many of the symp­toms of the disease.

3 Comments

  • Excel­lent read Brett! Great stuff indeed!

  • I do not think teams or groups of peo­ple con­sciously want to fail. I mean who wants to be a loser. They may not have the skills, cohe­sion, or social abil­i­ties to suc­ceed but most peo­ple want to have suc­cess. Per­haps I am just putting my moral stan­dards on other peo­ple in assum­ing peo­ple would want to suc­ceed but that is how I feel.

    I also think in some ways Soft­ware Tech­nol­ogy is a tough field to build long term teams in. Not all of it can be blamed on offices break­ing up teams, and things like that. We work in a fast paced field and peo­ple tend to stay in jobs far shorter peri­ods of time than they used to. In some ways this con­tributes to the dif­fi­culty of keep­ing good peo­ple together. The days of huge incen­tives for peo­ple to stay are long gone.

    Nice arti­cle. I agree with the con­cept even if I do not totally agree with all the points.

  • Scotch Drinker wrote:

    I agree that peo­ple don’t typ­i­cally WANT to fail. How­ever, I have worked with peo­ple who seri­ously wanted other peo­ple to fail, even peo­ple that were on their sup­posed team. Also, for a vari­ety of rea­sons, I’ve been around peo­ple who do want the project to fail and will do small things to fos­ter that fail­ure. Luck­ily I don’t have to deal with that any­more but it’s cer­tainly out there.

    I don’t think the over­all struc­ture of soft­ware devel­op­ment could ever be geared towards long term teams. There are too many Pointy Haired Bosses for that to hap­pen. But even at enlight­ened shops, it almost always seems like teams are put together for projects ver­sus given projects to exist­ing teams. I think that’s a mis­take for the rea­sons out­lined in my post.

    If we look at the NBA as an extreme exam­ple, I can’t imag­ine there are many teams that don’t lose a player or two over the course of the year to a trade, injury or retire­ment. Yet, they are suc­cess­ful as teams (not includ­ing the Clip­pers or the Kings, they are awful). I think if you have the struc­ture in place to fos­ter teams, teams can suc­ceed even when team mem­bers are dis­ap­pear­ing on you.

Leave a Reply

Your email is never shared.Required fields are marked *