"Agile Process" in the software industry
Wu Hao (reprinted self-created software) September 15, 2003
In the autumn of 1991, a study of the Akova College, Lehai University, "Strategic in the 21st Century, US Manufacturing Industry: A Industrial Leading View", the concept of agile competition is first proposed. What is agility? For enterprises, agile means that companies can make profitable operations in the competitive environment that customers have chance to change, difficult to predict; for individuals, agile refers to reacting in business opportunities for difficulties, and continuously recombine their humanity and technology. During the process of resources, individuals can contribute to the profit bottom line and improve the net income of the company. Therefore, agility can be regarded as a comprehensive reaction to changes and uncertain. Changes and uncertain, for the software industry, what is familiar and annoying noun. Since the birth of the software engineering, it has been trying to reduce the uncertainty of software projects through techniques and management means. Under this beautiful vision guidance, the experts invented structured, invented object-oriented, invented CMM, which invented the "software crisis" solution, promoted the development of software industry; however, Super branch, timeout, low quality old problems have not been fundamentally resolved. In order to confront the uncertain, the software development is increasing, more and more large, the side effects of the traditional heavyweight method are also more obvious - organizational bloated, inefficient work, bureaucracy ... relative to weight Level method, software industry has always had another sound, which is a lightweight method, its goal is to obtain heavyweight equivalent effect at a smaller cost. The most prestigious lightweight method is XP. XP is an abbretion of EXTreme Programming, which can be translated as extreme programming from the literal. However, XP is not just a programming method, nor is the unretentive "extreme" practice of understanding in Chinese. In fact, XP is a prudent (DISCIPLINED) software production method. XP (EXTreme Programming) is rooted in the SMALLTALK community in the late 1980s. In the 1990s, Kent Beck and Ward Cunningham used them using SmallTalk development software project experience summary and extension, and gradually formed an emphasis on adaptation and human-oriented software development methods. The core of XP is four major value, that is, improve communication (SIMPLICITY), feedback (feedback) and courage. On this basis, XP summarizes more than ten practices for software production, involving various links such as software design, testing, coding, publishing. Compared with other lightweight methods, XP is unique to highlight the importance of testing, and even the basis for the entire development, each developer is not only written in software products, but also must write the corresponding test code; These codes set a highly stable base platform by continuous construction and integration (Continuous Build & Integration). With this basic platform guarantee, XP can implement the re-creation of the software design. The design philosophy of XP is that the product feature required for this iteration is only designed at each iterative cycle, and the design in the last iterative cycle is formed by refactoring.
In February 2001, a ski resort in Utah, 17 lightweight software development methods, including Kent Beck (Extreme Programming), Alistair Cockburn (Crystal Methodology), Jim Highsmith (Adaptive Software Development) Whenely, the "The Manifesto for Agile Software Development" has been released together (Agile Software Development Declaration). This shows that after the soft industry has experienced numerous item failures, people began to reflect on the engineering characteristics, reflection of the plan and control, and reflect on the attitude and reaction of uncertainty. Agile is finally the industry, and some people in this industry, understand and respected. One of the participants Martine Fowler explains the heavyweight, lightweight and agility in its later article "The New Methodology": Lightweight and heavyweight differences come from the intuitive feelings of people's documents to the two methods, That is, a lightweight method is less generated and relying on a huge document, but this is just a surface phenomenon; there is a lot of communication between many lightweight methods, and agile is more appropriate to express these lightweight methods. The most fundamentally. First, agile emphasizes adaptation, not prediction. A large amount of manpower is spent, trying to formulate detailed plans to guide long-term work, and once the situation changes, the plan is no longer applicable. Therefore, the weight level method is to resist changes, and the agile method emphasizes adaptation. Second, agile methods are centered on people, rather than process centers (ie, doing things). Agile method emphasizes that software development should be in the heart, software development should bring fun. Agile process learns "essence" of many lightweight methods, which emphasizes the adaptation of changes and attention to humanity. In addition to the XP described above, other well-known agile processes include: 1. Crystal Cystal is in fact not a development method, but a series of methods. Because Crystal's inventors Alistair Cockburn believe that different types of projects need to use different methods. Alistair cockburn divides the project from two dimensions, one is the size of the project, calculated by the number of people; the second is the consequences of the product errors, calculated by seriousness. The Crystal Method is also formed in the 1990s. At that time, Cockburn accepted IBM's task to write some things about development methods. Relatively speaking, Crystal's personal color is light, because it is not only derived from Cockburn's personal experience, but also from a lot of different projects visiting Cockburn; Cockburn is also ideologically open, and it is happy to accept "distinct". Crystal and other agile methods differ in people-oriented. In cockburn, freedom is the nature of people, and others are always difficult to comply with discipline; therefore, there is a trade-off between work productivity and process discipline. The process should be easy to follow, and this is at the expense of productivity. Cockburn believes that XP process specification is still too complicated and difficult to perform, while Crystal is not as XP, but developers is more happy. Cystal also emphasizes the REVIEW of each iteration and uses it to improve its own improvements in the CYSTAL method.