Total Programming

There is sometimes debate about the use of the word 'extreme' in ExtremeProgramming. Many outside (and, indeed, within) the field of SoftwareDevelopment are more than a little bemused by the association of software development with extreme sports such as rock climbing and sky diving. The mental imagery is, on first hearing it, quite bewildering.

In turning all the dials up to ten one can find the rationale for the name, but the imagery lingers and fails to evoke the values and practices that are said to be at its heart.

However, in thinking about software development with respect to sports, I believe that there is another analogy that could serve quite well: TotalFootball. The XP name is now well established as a brand name and this is definitely not an attempt to rebrand, just a line of thought (reflection, musing or rambling) that may offer a different perspective on the practice of SoftwareDevelopment.

As with football, development is about achieving goals, and successful play often comes from maximising the chance of scoring, reducing the risk of not scoring, and reducing the risk of being scored against. This is through luck, tactics, strategy or just plain heroics. The risk reduction element is key to this, and has much in common with the way that XP is described from values through to practices, and likewise for the OpenSource model of SoftwareDevelopment as described in TheCathedralAndTheBazaar. I guess it's about trying to find determinism in chaos, and also enjoying oneself. However, although it is described as confronting fear, the use of the word 'extreme' conjures up the idea of risk reduction in very few minds :-)

I think this point of view perhaps is perhaps either more general or more specific than ExtremeProgramming: more general in the sense that this stance could be said to underpin XP and other lightweight methods, such as the ScrumProcess (another sporting reference!), that detail more specifics; more specific in the sense that perhaps TotalProgramming could be used to describe beliefs and practices that go all the way from environment of the programmer to the specific detail of the program, such as practised by a PragmaticProgrammer, or perhaps the approach embraced by the breadth and depth of the ProgrammersStone.

Anyway, the idea got me thinking and there may or may not be mileage in it.

-- KevlinHenney


As CthreeProjectTerminated learns us, another analogy is that TotalProgramming, just like TotalFootball, might sometimes fail to win the first prize. Neither TotalProgramming nor TotalFootball makes you infallible. -- StephanHouben


CategoryExtremeProgrammingDiscussion


EditText of this page (last edited January 20, 2004) or FindPage with title or text search