Competitive Development

From a panel position statement for OOPSLA'96 ...

A competitive market places extreme demands on software development teams and the products they produce. Under time to market pressure a just acceptable product developed quickly will be preferred to an excellent product produced slowly. (cf. TheBestIsTheEnemyOfTheGood) Invisible attributes of a product, such as its software architecture, are often the most compromised in the name of acquired market share. However, market share brings its own set of problems. The once satisfactory architecture of a successful product will often crumble under the weight of continuous revision and enhancement. It would seem that the choice is between failing in the race to the market or failing under the pressure of success once in it.

It is my position that small teams using an evolutionary development method in a pure object-oriented environment have the best chance of walking this tightrope. Each one of these factors, team, method and environment, can be adjusted and studied in isolation. However, when we consider the whole of the software development system we find debatable decisions for one factor can create surprising efficiencies for another. Using the terminology of patterns we would say that competitive forces, when resolved, expose unique patterns of lesser forces, which have solutions which might not have occurred in isolation. I have assembled a network of forty patterns of competitive development and studied the interactions between them. Competitive developers will find the particular patterns useful while organizational theorists might benefit most from adopting the pattern form. -- WardCunningham

See also: EPISODES: A Pattern Language of Competitive Development. []


View edit of July 23, 2004 or FindPage with title or text search