Ego

Clarification: Ego is Identity; Self-Orientation is the Poison

One common misunderstanding about Egoless Programming is that it means that the programmer participates without opinion or in some disinterested fashion. While reasonable, this is a misunderstanding. Ego is identity. It's when the programmer merges her identity with the program, and clings to it, that causes the problems we are aiming to avoid when we say "do egoless programming." It's ego-less, not ego-free programming.

Ego itself is a useful tool. It gives human beings a point of reference separate from the flow of existence and allows us to gather our experience and synthesize mental models. Our mental models allow us to conceive of manipulations of the world before we enact them. It's this ability to play with creations first in our minds (which is relatively cheap) before we construct them in the world (sometimes to great expense) that makes us so potent. To the degree that our mental models are accurate, our planned manipulations will actually work when we enact them. When these manipulations harmonize with the essence of what's going on, they tend to work well with few unintended side effects. When manipulations are ill-conceived (mostly because key facts are missed or ignored), they can be quite destructive. Ego, the seat of this capability, is a potent tool.

Also, ego can accumulate gumption (i.e. we develop affinity for a certain outcome) and thus motivate us to take on endeavors.

The real trouble is not pride of a job well done, but self-orientation. As David H. Maister makes plain in his book "The Trusted Advisor", trust is thwarted in heavy fashion by self-orientation. When the self becomes the focus (when one becomes defensive, it is the self being defended) this tears away at the possibility of collaboration. You need to be able to trust each other to collaborate effectively. It's this dampening effect on collaboration in a group venture that makes Ego-filled programming a problem.

In general, to the extent that a teammate has not taken responsibility for their ego, he subtracts from the team's ability to gel and function fully. If instead, he bridles his ego and aims to participate in something greater than himself (note that this includes himself), he is melding well and makes it more likely for the group to realize the gestalt effect.
Teams that work well together are far more productive. They get more done in less time and at a lower cost. There is significant business value, then, in cultivating the conditions for collaboration. This is the business driver for championing true Egoless Programming.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License