I agree that it can be a problem, but some friendly competition isn't always bad. Some people find it motivating, some find it scary, and everywhere in-between.
When it hurts your team dynamic you need to reign it in, this is where Good management comes in. Or better yet, seeks to keep it good natured from the beginning.
The team and military analogies are great. You want to be the best you can be and you want your team mates to be the best they can be. Sometimes that involves competition, but at the end of the day, you are on the same team. You compete against one another to test each other and spur on growth.
I do agree there is a bad form that seems prevalent in software but I don't want to "throw the baby out with the bath water" (idiom: throw out competition because some people do it wrong).
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.