Why Agile Development?

Source: Internet
Author: User
Tags require

Why agile Development. -Improve development efficiency.

A friend of a well-known internet company wanted to talk to me about agility because they wanted to be agile, to know how to turn, because they heard that many agile transitions failed. The reasons for failure are of course different, but there are some rules to follow in order to succeed, the first rule is to choose Agile development correctly.
The so-called "correct" choice is to choose the "purpose" of agile development is right, that is, agile development can solve the problem of the expectation that agile development can be solved. If the motivation of agile transformation is not correct, it will certainly "fail", but why do you want to add quotation marks to failure? Because even if the transformation is successful, it will not solve the problem originally expected to solve, of course, it is a failure. Many companies want to transform agile development because "developers are inefficient, so many people are not finished with the features and speed that the boss wants to develop." The friend said that they were also transitioning for this purpose, to improve the efficiency of developers and to develop more quickly.
I poured cold water on this friend, because Agile development is not to solve the so-called "development efficiency" problem, if the development efficiency can be from the human skill development, process optimization, tool improvement and other aspects to improve, and agile development itself is not very much, agile will reduce the so-called efficiency. Because the "efficiency" here is understood to be the same person, it is possible to develop a given function in less time, or to develop more functions in the same time. Because objectively speaking, agile development itself will reduce efficiency, mainly due to:
1) More emphasis on communication in agile development, the frequency of communication may be higher than before, the communication time may be longer than before, taking up more personal work time, but may therefore lead to actual development time has been developed a function of the time;
2) The agile development is from the user view, the segmentation task is the longitudinal knife, and the original layered design, layered development of the functional division of different ways, may require engineers to become so-called "full stack Engineer", and the traditional way of development, the general will color cross-cutting task segmentation model, personnel assignment method of different, Inevitably requires the adjustment of personnel skills structure, will increase the amount of learning costs, so that developers feel the workload increased, a short period of time will show a decrease in development efficiency, and require all developers to understand the requirements of the requirements of higher, so many people will feel that the agile development of personnel requirements are higher, In fact, because of the change in personnel requirements, the existing developer capacity of the barrel effect phenomenon occurs.
3) Rapid iterations increase the amount of refactoring work, and the sense that functionality is constantly being modified leads to a lot of waste. This feeling, if not correctly understood, will not only be mistaken for work efficiency, but will also cause the programmer to be hurt because they think they are continually reworking.
4) The transparency of information requires more data collection, the higher the agility maturity, the more information collected, collect the data will occupy a certain amount of energy, if not able to correctly understand the value of these data, it will make the programmer feel wasted a lot of time to do work, but reduce the development efficiency.
So what is the problem with agile development? When it solves the problem of maximizing the enterprise benefit (ROI, return on investment), the evaluation of the success of agile development should be evaluated from the overall improvement of the benefit of the post-transformation enterprise, but not only from the subjective judgment, the function quantity and speed of the developer are evaluated, the agile development mainly helps the enterprise to improve the overall benefit from the following aspects:
1) Embrace change. Because the long-term plan is difficult to work out, "People's Month myth" is only a myth, in the plan implementation process, the change of the world will lead to the change of demand, the change of demand must lead to the development work not according to plan, and "person" as the most important factor in the development process is constantly changing, the staff will change, people People will have private affairs, all kinds of factors will affect the implementation of the plan, so the plan is short, timely adjustment in order to respond to all changes caused by the feasibility of the plan, avoid detours.
2) Quick response. Market environment changes, more and more demand for products, services response timely. For example, in the traditional way, the planning of a half-yearly version, once the need to adjust requirements, all the subsequent plans have to change, will bring great challenges to project management, the cost of change is extremely high, most of the situation will be due to the majority of objections to the end.
3) Quickly bring functionality to market. "Being the first, better than doing the best" is effective in many business environments, especially in the Internet industry, and it is particularly important to quickly occupy the market, which is to be effective in time. To give a simple example, such as an application to do a user system, in fact, very simple and mature technology, according to the programmer's idea, it is best to be able to register the user login, change password, forget password, remember password, login verification code, logout and other functions of the design, assuming that the method of development according to layered design spend 12 business days Each function takes 2 days, and if the feature-by-version development rather than a development completed, but placed in different versions, it may take 18 business days, each function requires 3 days, because there will be refactoring, modify the interface, etc., but the application can be on the 3rd day on-line, and then gradually complete other functions. There is a system because no verification code on the 3rd day after the launch of malicious registration. Several users will forget their password after 6 days. Several people will change their passwords after 9 days. There are several people who are not used because they are logged in frequently because they do not remember the password feature. Several people will click the "Logout" button when exiting the app. The web app simply shuts down the browser and the app exits the app directly. If a one-time completion of the 18th day to go online, if you have a registered login on the line can be on the 3rd day on the line, to win the 15-day time to market, and calculate after 15 days of a company's impact, and then compared to the increase of that point of workload, quickly to the market seems more worthwhile. In this case, the friend remembered that one of their features in the previous version, if this feature is developed in an agile way, can be brought to market 3 months early, tens of millions of monthly (on-line effect statistics), this is the real value of agile.
4) under limited resources, do what is most worth doing. Because each item in the backlog has a single priority order, are already ranked, agile requirements to complete the user story, rather than full bloom, because its evaluation results are two value, finished is 1, do not finish is 0, no 75% said, because the finished can be delivered, finished to the market to become cash. What is best worth doing, what is the highest priority, that is, the highest ROI, and ROI is the only indicator of the priority of the evaluation needs. In fact, the ROI is a comprehensive index, very complex comprehensive indicators, and its development workload, market demand urgency, technical relevance, market value and other factors, need a comprehensive assessment.
In fact, agile transformation, or a tool for enterprise transformation. The development of the company to a certain stage, personnel structure, organizational structure will restrict the development of enterprises, and small, local adjustment can not solve the fundamental problems of enterprises, reform has always been a lot of pressure, the new system is always carried out. The transition from traditional to agile can be systematically optimized for the organization.
Therefore, agile development is not used to manage developers, not to improve the productivity of developers, but the overall improvement of the team performance of the method, to agile transformation is not to say that the light developers involved in the line, the need for the overall change of the organization, the need for change, the next discussion.

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.