I think if teams were competitive like best friends rather than frenemies, we would see a lot of progress. Think about it, I know it's happened to me: Ever have a buddy of yours walking next to you when you get to the bottom of a big flight if stairs? You get to the first step, lock eyes, and without a word you both take off up the stairs. How does it usually end? You both breathless laugh as the loser remarks about the winner clearly making progress on the treadmill, then the winner posturing a bit before making any excuse for how they won: "No, its those shoes your wearing. If you had sneakers on like me you would've totally taken me for sure!" Then, somehow, drinking gets involved but your both silently motivated to do stairs more often for next time. I think that kind of competition is more comradery than anything else.
I've seen comments on the military and I've got an uncle who was USMC recon in Vietnam. From what he has said, when your up against it, you don't care if you hate they guts of the guy next to you because if he dies, then that is one less guy between the VC and you, so you fight to keep him alive just like everyone else.
We, as developers, need to realize that each of our roles in the team is equally important. Think that Jr dev is some idiot kid fresh out of school so you troll her mercilessly? That's fine, just be prepared to fix all your own bugs for 2-3 weeks when she quits and they look for a replacement.
We are all in this together. But management needs to realize that they are not in a position of power, but one of leadership. Meaning that you are responsible for ensuring success, but any failures fall directly on you and nobody else. That means keeping everybody involved, up to speed, and productive. Which means getting involved and getting your hands dirty. There is a reason the web and cloud are called "the wild". This world of tech is not so much an efficient republic as it is the Wild West. What counts is you and yours being alive at the end of the day, and that which seeks to destroy you has failed until tomorrow. That can't happen by being a hype man/woman or cheerleader. Leadership means knowing your team inside and out, caring about their personal lives and wanting them to succeed. Because if your project fails, it is your fault because you did not do enough to ensure everyone succeeded.
This, in my opinion and personal experience, is the largest failing in technology that leads to competitiveness. It's not a frat house. The guy who can do the longest keg stand is not the champion of your team. If you can understand that, then you are not qualified for leadership. Lead from the front.
Sorry for the rant! The end.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.