文档介绍:软件工程新方法技术介绍(英)
From Nothing, to Monumental, to Agile
Most software development is a chaotic activity, often characterized by the phrase "code and fix". The software is written without much of an underlying plan, and the design of the system is cobbled together from many short term decisions. This actually works pretty well as the system is small, but as the system grows it es increasingly difficult to add new features to the system. Furthermore bugs e increasingly prevalent and increasingly difficult to fix. A typical sign of such a system is a long test phase after the system is "plete". Such a long test phase plays havoc with schedules as testing and debugging is impossible to schedule.
We've lived with this style of development for a long time, but we've also had an alternative for a long time: Methodology. Methodologies impose a disciplined process upon software development with the aim of making software development more predictable and more efficient. They do this by developing a detailed process with a strong emphasis on planning inspired by other engineering disciplines - which is why I tend to refer to them as engineering methodologies.
Engineering methodologies have been around for a long time. They've not been noticeable for being terribly essful. They are even less noted for being popular. The most frequent criticism of these methodologies is that they are bureaucratic. There's so much stuff to do to follow the methodology that the whole pace of development slows down.
As a reaction to these methodologies, a new group of methodologies have appeared in the last few years. For a while these were known a lightweight methodologies, but now the accepted term is agile methodologies. For many people the appeal of these agile methodologies is their reaction to the bureaucracy of the monumental methodologies. These new methods attempt a promise between no process and too much process, providing just enough process to gain a reasonable payoff.
The result