No, the solution to this problem lies not in a direct attack – for attack can only lead to defense, and defense is what we are trying to eliminate.

Instead, the problem of ego must be overcome by a restructuring of the social environment and, through this means, a restructuring of the value system of the programmers in that environment.

Before we discuss how this might be done, let us look at some examples of what has happened when it has been done – how it affects the programmers and their programs.

The problem of ego must be overcome by a restructuring of the social environment. – Gerald M Weinberg

What is a value system?

A person’s standards and self-discipline set, based on the common sense and wisdom of knowing what the proper moral rules and discipline are, and the amount of willingness to see themselves and others abide by them.

First of all, let no one imagine that such restructuring is the ivory tower dream of social theorists. Programming groups who have conquered the ego problem do exist and have existed from the earliest days of computing.

John von Neumann himself was perhaps the first programmer to recognise his inadequacies with respect to examination of his own work. Those who knew him have said that he was constantly asserting what a lousy programmer he was, and that he incessantly pushed his programs on other people to read for errors and clumsiness.

Yet the common image today of von Neumann is of the unparalleled computing genius – flawless in his every action. And indeed, there can be no doubt of von Neumann’s genius. His very ability to realise his human limitations put him head and shoulders above the average programmer today.

Your ability to realise your human limitations will put you head and shoulders above the average programmer today.

– John von Neumann

Average people can be trained to accept their humanity – their inability to function like a machine – and to value it and work with others so as to keep it under the kind of control needed if programming is to be successful.