Agility in my heart (3) -- two world views

Source: Internet
Author: User

Author: sodimethyl
Source: http://blog.csdn.net/sodme
Disclaimer: This article may be reproduced or reproduced without the consent of the author. However, please keep the author, source and declaration information of the first three lines of the article for any reference to this article. Thank you.

Introduction:

"Practice, summary, practice, and summary", many of my R & D concepts are constantly formed and improved in this process. The reason why I can continue to do so is, it is because I want to constantly improve one thing and keep approaching the extreme I want. In fact, because each developer may be in different fields, tools, and customers, it is natural to adopt different development methods. In fact, some of my articles in this series are about R & D, and more importantly, they are about the ideas and attitudes we should adopt, and what methods to do things, regardless of whether it is R & D, sales, products, or companies, I think, a lot of things are also applicable. After the previous two articles, one by one, and one by one, the following articles are still biased towards "virtual" and are still biased towards methodology, it depends on the depth of thinking and the intensity of exploration.

Body:

The word "agility" in "Agile development" is essentially a rapid response to user needs. the premise for its emergence, development, and growth is that with the continuous advancement of the information process, enterprises and users with information needs are constantly improving their IT needs capabilities, their demands are not only more professional, but also faster, often changing and updating. as a system implementer, as a service provider in the Business Ecosystem, you cannot reject users' demands. What you can do, in many cases, it is also recommended that you give more time to complete, so that users can pay more money. you should do it. in other words, in this case, anyone who can respond quickly and better to the changing needs of users can win the user.

In essence, agile development is a very pragmatic development method, which can be shown in the following aspects:

1. it emphasizes that users must respond quickly to ever-changing needs. Although frequent changes to user requirements are the most annoying for developers, there is no way to act as a business behavior, no matter what modification requirements your users have put forward, you must satisfy them as much as possible. Only in this way can you win the users and bring profits to the project.

The user is concerned with "whether or not he can use this system to bring benefits to himself", and the user is not concerned with "how much the developer will pay for this change ". although not close to human feelings, business is like this.

2. the rise of agile development is because the creators found that many users' needs cannot be fully anticipated in many cases and are constantly improved during the development process. the traditional waterfall development model emphasizes that a complete and complete development plan and content should be established before development, and "planning first and then start work" should be emphasized, then, you can perform operations in steps. agile development, more confident that the world does not have a thorough plan to plan everything beforehand, it believes that "demand change itself is a form of demand existence ".

Therefore, compared with the agile development model, the traditional waterfall development model may be in the form of a comprehensive plan before implementation, and the other is to plan part of the plan and then start work immediately, these two development models represent two completely different development world views, or even the reaction of the developers' world views:

The former assumes that the world is too beautiful, and they assume that they are too powerful. If the team is too good, everything can be done. Therefore, they imagine that everything can be done as planned as long as it is listed;

The latter assumes that they are not strong, and the team is not omnipotent. Assuming that user requirements will change, we assume that users still need to learn and improve, assume that the user may not know what kind of system he or she wants. If he or she wants to make a system that he or she wants, he must communicate with the user continuously and confirm the system, it is assumed that such communication is not a one-time task, but a long-term task. After the software is delivered for a long time, it is still necessary to keep track of the latest changes to user requirements.

Waterfall development assumes that the world is infinitely beautiful and everything is under control. Agile development assumes that the world has its own shortcomings, there are many things that we can only influence but cannot control. in comparison, agile development is more pragmatic and Frank.

In the waterfall model, once the demand changes, the risks to the project are huge. if it remains the same, it is very likely that the things made are not what the user wants. What is the significance of this things for the user? Therefore, in the waterfall development model, whether the development team is willing to accept demand changes, the objective fact of such changes has brought too many risks to the project itself.

What about agile development? Isn't there any development steps for the waterfall model: Demand proposal-> demand freeze-> demand implementation-> implementation evaluation? The answer is no. Agile development also has these processes. However, the biggest improvement of agile development for waterfall models is: Cut the major version of the waterfall model into small versions in Agile development, this greatly shortens the release cycle of small software versions and keeps submitting the latest feature version to users as quickly as possible, so that users can continuously improve the experience with the development team.

As with the waterfall development model, after a user raises a demand, the development team has been busy for a year or two, releasing a very large and comprehensive system that may not be intended by the user. the release cycle of agile development is usually two weeks to two months. It does not require a lot of content to be released each time, but it is recommended that you frequently publish your latest version to your end users.

Therefore, from this point of view, the biggest difference between agile development and traditional development lies in the word "agile", and its specific performance to users is: the cycle for users to get the new version is greatly shortened from one year to two months to two weeks.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.