An approach to software development based on consensus within a small team. The aim is to produce software that is the product of the team rather than of one or a few individuals. The motivation is to avoid personal identification with output, promote group identification, and thus to make it easier for the team to conduct an objective evaluation of the programs produced.