Jerry Weinberg coined the term, "egoless programming" in his 1971 book "Psychology of Computer Programming". Jerry describes the practice and mindset, and in 1977 co-wrote with Friedman, the definitive manual for practitioners: "Handbook of Walkthroughs, Inspections, and Technical Reviews: Evaluating Programs, Projects, and Products".
Is there a precise definition of "egoless programming" that could be expanded to a generic Professional Behaviour of "egoless practice"?
Johana Rothman is quoted by Jeff Atwood, presumably from a book, as saying:
Egoless programming occurs when a technical peer group uses frequent and often peer reviews to find defects in software under development. The objective is for everyone to find defects, including the author, not to prove the work product has no defects. [my italics]When asked for a modern definition, Jerry pointed at Jeff's Ten Commandments of Egoless Programming.
The field of Reliability Engineering is aimed at creating near-Perfect (i.e. highly reliable) operation from imperfect parts and sub-systems. This approach can work very well, even when maintenance and fixes can't be done: the NASA Mars Rovers, Spirit and Opportunity, exceeded their 90-day design life by around 15 times, working from 2004-2010.
A working definition (unfortunately, of many parts).
- a Professional Behaviour
- designed to
- routinely and reliably achieve
- as Perfect as Possible outcomes
- for the Client or Service Recipient
- by knowledgable and skilful
- supported by systems, processes and procedures
- that actively monitor, examine and report performances,
- for both failures and successes,
- to systematically and without-backsliding improve
- Quality, Performance and Process
- of Individuals, Teams and Organisations.
To Err is Human isn't a syllogism, it is an Iron-Clad Law.
It's the basis of the unending, relentless Professional Challenge:
- we're not machines,
- we cannot ever exactly repeat a process, not even twice, let alone the many times every day needed in Professional Practice, and
- our Minds and Bodies are always letting us down or tricking us in some way.
Simply stated: We are constantly making mistakes, inadvertently or not.