Traditional Culture Encyclopedia - Traditional stories - What is the difference between Agile and Waterfall development models

What is the difference between Agile and Waterfall development models

Waterfall Development Model

Definition

Originally proposed by W.W. Royce in 1970 as a software development model, waterfall development is an older approach to computer software development.

Phases

Requirements Analysis: Detailed analysis and evaluation of the requirements to form a requirements analysis document;

Design: Technical evaluation, planning time nodes, the formation of technical documents as well as time planning;

Development: According to the time plan, development, each phase to complete a certain content;

Testing: After the completion of development, testing, modification if there are problems. Testing: After development is complete, testing is performed, and if there are problems, modifications are made until it is ready to use;

Features

The most typical anticipatory approach, which strictly follows a pre-planned sequence of steps for requirements analysis, design, coding, integration, testing, and maintenance.

Agile development

Definition

A new approach to software development that has been gaining widespread attention since the 1990s, and is a software development capability that responds to rapidly changing requirements.

Features

Emphasis is placed on close collaboration between a team of programmers and business experts, face-to-face communication (which is considered more effective than written documentation), frequent delivery of new software releases, compact and self-organizing teams, methods of writing code and organizing teams that are well adapted to changes in requirements, and a greater focus on the role of people in software development.

Working style

Working as a whole;

Working on short iteration cycles;

Delivering something per iteration; ?

Focusing on business priorities;

Checking and adjusting;

Waterfall development model

Advantages:

1. Steps are clear and unambiguous;

2. Documentation is complete, and it can be used as a reference during the development process;

Disadvantages:

1. Waterfall development is developed from industry, and is not suitable for the computer software development;

2, the development cycle is long, spend a lot of time to write documents, time and labor;

3, the customer can only see the results of the completion of the entire project, which can lead to trust issues;

4, risky, in the process of development does not understand the final result, while not being able to adapt to change;

Agile development mode

Advantages:

1, fast iteration, short development cycle;

2, no longer spend a lot of time to write documents, but people face-to-face communication, and only write some of the necessary documents;

3, the division of labor in detail, the output of the results of the output every day, the customer can be seen, will trust the project team;

4, communication, easy to find the problem, and can stimulate the team to work. Problems, at the same time can stimulate the team's collaboration, struggle;

Disadvantages:

1, trust between people is a very important part, but this is more difficult to complete, members of the technical team may be a big difference in technical skills, but also compete with each other, or members of the project team have some reservations, unwilling to communicate in this way;

2, the team in development

2. During the development period, the team has many tasks, high pressure, and needs to be "excited" all the time, which is generally difficult to do.