Egoless Programming
   HOME

TheInfoList



OR:

Egoless programming is a style of
computer programming Computer programming is the process of performing a particular computation (or more generally, accomplishing a specific computing result), usually by designing and building an executable computer program. Programming involves tasks such as ana ...
in which personal factors are minimized so that quality may be improved. The
cooperative A cooperative (also known as co-operative, co-op, or coop) is "an autonomous association of persons united voluntarily to meet their common economic, social and cultural needs and aspirations through a jointly owned and democratically-control ...
methods suggested are similar to those used by other
collective A collective is a group of entities that share or are motivated by at least one common issue or interest, or work together to achieve a common objective. Collectives can differ from cooperatives in that they are not necessarily focused upon an ...
ventures such as
Wikipedia Wikipedia is a multilingual free online encyclopedia written and maintained by a community of volunteers, known as Wikipedians, through open collaboration and using a wiki-based editing system. Wikipedia is the largest and most-read refer ...
.


History

The concept was first propounded by
Gerald M. Weinberg Gerald Marvin Weinberg (October 27, 1933 – August 7, 2018) was an American computer scientist, author and teacher of the psychology and anthropology of computer software development. His most well-known books are ''The Psychology of Computer ...
in his seminal book of 1971, ''The Psychology of Computer Programming''.


Peer reviews of code

To ensure quality, reviews of code by other programmers are made. The concept of ''egoless programming'' emphasises that such reviews should be made in a friendly, collegial way in which personal feelings are put aside. Structured walkthroughs are one way of making such a formal review.


Strengths

* Works best for complex tasks. * Open communication channels allow information to flow freely to team members * Greater conformity that helps in consistent documentation * Team members have greater job satisfaction.


Weaknesses

* Projects take a longer time to complete. * Projects experience a higher failure rate due to the decentralized nature of and volume of communication between members of the team. * Risky shift phenomenon Programmers attempt riskier solutions to solve a software problem. * Simple tasks are made more difficult by open communication channels.


Rival concepts

Egoless programming explicitly minimizes constraints of
hierarchy A hierarchy (from Greek: , from , 'president of sacred rites') is an arrangement of items (objects, names, values, categories, etc.) that are represented as being "above", "below", or "at the same level as" one another. Hierarchy is an important ...
and
status Status (Latin plural: ''statūs''), is a state, condition, or situation, and may refer to: * Status (law) ** City status ** Legal status, in law ** Political status, in international law ** Small entity status, in patent law ** Status conference ...
so as to enable the free exchange of ideas and improvements. It may be contrasted with the chief programmer team concept which emphasises specialisation and leadership in teams so that they work in a more disciplined way.


See also

*
List of software development philosophies This is a list of approaches, styles, methodologies, philosophies in software development and engineering. It also contains programming paradigms, software development methodologies, software development processes, and single practices, principl ...
*
Software review A software review is "a process or meeting during which a software product is examined by a project personnel, managers, users, customers, user representatives, or other interested parties for comment or approval".IEEE Std . 1028-1997, "IEEE Standa ...
*
Egolessness Ego death is a "complete loss of subjective self-identity". The term is used in various intertwined contexts, with related meanings. Jungian psychology uses the synonymous term psychic death, referring to a fundamental transformation of the psych ...


References


External links


The Ten Commandments of Egoless Programming
{{DEFAULTSORT:Egoless Programming Software development process