Egoless programming
Encyclopedia
Egoless programming is a style of computer programming
Computer programming
Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...

 in which personal factors are minimized so that quality may be improved. The cooperative
Cooperative
A cooperative is a business organization owned and operated by a group of individuals for their mutual benefit...

 methods suggested are similar to those used by other collective
Collective
A collective is a group of entities that share or are motivated by at least one common issue or interest, or work together on a specific project to achieve a common objective...

 ventures such as Wikipedia
Wikipedia
Wikipedia is a free, web-based, collaborative, multilingual encyclopedia project supported by the non-profit Wikimedia Foundation. Its 20 million articles have been written collaboratively by volunteers around the world. Almost all of its articles can be edited by anyone with access to the site,...

.

Origin

The concept was first propounded by Jerry Weinberg
Gerald Weinberg
Gerald Marvin Weinberg is an American computer scientist, author and teacher of the psychology and anthropology of computer software development.- Biography :Gerald Weinberg was born and raised in Chicago...

 in his seminal book, 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, collegiate way in which personal feelings are put aside. Structured walkthrough
Software walkthrough
In software engineering, a walkthrough or walk-through is a form of software peer review "in which a designer or programmer leads members of the development team and other interested parties through a software product, and the participants ask questions and make comments about possible errors,...

s 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
  • risky shift phenomenon - programmers attempt riskier solutions to solve a software problem
  • simple tasks made more difficult by open communication channels

Rival concepts

Egoless programming explicitly minimizes constraints of hierarchy
Hierarchy
A hierarchy is an arrangement of items in which the items are represented as being "above," "below," or "at the same level as" one another...

 and status
Social status
In sociology or anthropology, social status is the honor or prestige attached to one's position in society . It may also refer to a rank or position that one holds in a group, for example son or daughter, playmate, pupil, etc....

 so as to enable the free exchange of ideas and improvements. It may be contrasted with the chief programmer team
Chief programmer team
A chief programmer team is a programming team which is organised around a chief programmer who is an expert programmer. The other team members have other, specialised roles, such as librarian, which support the chief programmer in his primary task of designing and coding the software.The concept...

concept which emphasises specialisation and leadership in teams so that they work in a more disciplined way.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK