The goal of agile development is not to deliver fast!

Source: Internet
Author: User

It is a software development method used to cope with rapid changes in demand.
–wiki

"Many it executives or engineers mistakenly think of agile development as a quick way to deliver because it's faster than traditional development methods, and of course, it's called" agile. " So we often hear executives complaining at the meeting: "Not already in the run Agile development Law, why is the development speed still so slow?"
.

The word "agile" is misleading

The purpose of this article is not to answer the above long story, must use the stethoscope carefully to answer questions, but just want to amend the "agile" The two words of misunderstanding. Agile is actually a rapid response to changes in demand rather than the so-called RAD Rapid Application Development Act of the Past (note 1). The following explanation explains why agile development is faster than traditional development methods.
.

Through the game to explain

Agile development is not a fast way to develop, and in order to explain it, the instructor of agile courses often explains it in the course of the game (this is one of the best ways to get the most out of it, and you know the waste of time before you play it), but when time is not enough, it will change to the form of the film. Please enjoy the section of the coin game (Coin Flip game:https://www.youtube.com/watch?v=hw2dezlrahw) that we often put in the class.

The purpose of this film is to guide everyone's misunderstanding of agility. Especially to high-ranking executives know – Agile development is not a method for rapid delivery, it is faster because it avoids a lot of wasted processing. The following picture is intended to be easier to illustrate and to solve the problem.
.

Illustrated by means of illustration

The above, a traditional vs agile development flowchart, highlights four areas where agile development is faster than traditional development processes:
.

※ Front-facing time

The traditional development method follows the steps of planning, analysis, design, program development, testing, and then making changes after the integration, which is a sequential development pattern, that is, before the current step is not completed, the following steps will be placed in the waiting column, the more time the current step is used, the longer the lead time of the subsequent steps will be. , and the more wasted it takes to form. That is to say, traditional development wastes too much time, meaning in pre-work. Lead time creates a phenomenon where resources are not fully utilized, and when the steps are made to analyze or design, the programmer is still in a state of waiting, thus creating a waste of time.
In contrast, agile development is a pragmatic approach, for example: in the process of collecting requirements, when gathering enough requirements for an iterative development, proceed to the next step, minimizing the waste of lead time, and then forming a development step for "analysis, design, development and testing", Reducing the time between steps and steps, this development form a so-called "derivative design", that is, in the face of the actual problem of the design method to overcome it, rather than pre-design the way. So let the start appear lightweight, coupled with only a few norms, so agile has a light weight development method of the appellation.

(In the copper game, we usually use a A4 paper as the limit of the lead time, require students to put 10 or 20 copper coins, the game is only in all the copper plate on the paper has been completely flipped before passing to the next one, forming the back of the students empty waiting time, that is, the waste of the lead time. In the copper game, we usually divided into three times to play the game, the first use of A4 paper, representing the largest lead time, and then the A4 paper torn into four equal, that is, the use of One-fourth of the front-size of the paper, the last time completely took off the paper, that is, the minimum time limit of the front, Aim to make it easier for learners to realize the difference in speed)
.

※ Time of first release

Agile Development uses an iterative approach to development, and each cycle has a potential to publish small increments to showcase the results of the development, which gives us the opportunity to ask the customer to give back to improve after reading. This practice of enabling customers to develop results also gives the customer absolute sovereignty over the direction of development (the customer can see how the demand is achieved, and then evaluates the product's suitability, and whether it has reached the pre-launch level, i.e., is the product sufficient to deliver early?).
Typically, this display time is set to within 1-4 weeks, so the customer can expect to see the expected development results almost after this time. This is in contrast to the traditional development of the product only after the completion of the release of the way, customers only at this time to see the results, in the development process there is no opportunity to improve. This form of iterative presentation gives the customer an opportunity for early acceptance, and also gives the development team the chance to finish it in advance.
.

※ Data Requirement

Agile development does not make a complete demand analysis (because the plan always fails to keep up with the changes), when the requirements of the collection and quality, enough for a development cycle of work can be started. This is the agile development of the famous "demand enough for two weeks of work, can open up the!", a kind of start as soon as possible do not waste time to wait for demand to fully collect the complete development model. " (The quality of demand is the so-called Definition of Ready:dor, which is the decisive factor in determining the speed of development)
.

※ Test method

The biggest impact of agile development on software is testing. The traditional alpha (internal test, note 2), Beta (delivery customer test), gamma test (optimized processing) approach is almost nonexistent after agile development, because agile development is constantly being tested during the development cycle, so there is no need to stop development operations when delivering alpha, beta, gamma testing The time to freeze program development has been wasted.
After nearly 20 years of agile development, there are two obvious trends that have become the focus of continuous research for agile teams, one of which is testing, that is, testing from beginning to end. The other is the radical change in the organization's head, which is more difficult, because the idea changes. Come and have a chat when you are free.
.

Summary

This is a question of ideas, and when you know that agile development is a quick response to changes in demand, it's easy to understand why it takes so much effort to cope with changes in demand. Such as scrum's current popular refinement meeting, why does it have to be held once a week, is it necessary? Is it a waste of time? In fact, its purpose is to cope with the change in time and good changes in demand.

If you want to speed up the development of time, then the premise is to fix the needs, have a good quality of demand, when the need to be more abstract problem solving (attention is not clear problem solving, once too clear to lose the ability to change), abstract problem-solving provides the big picture on the giant view, so that we can see the panorama, Then the development of the correct direction, the direction of rework (rework) The number of natural less, reduce the time wasted in the rework, reduce the waste of time to develop the work will naturally become faster up.

Why should it be abstracted? Because abstractions are more tolerant of factors that are uncertain, that is, things that are not going to happen in the future, he can reduce the directional bias in making decisions ahead of time. The greatest contribution of agile development to abstraction is probably the use of user stories to describe requirements, which enables us to use abstraction to solve problems quickly. If you are not yet or are ready to enter the field of agile development, remember to start with the requirements, and the need to write the user should not forget to use the story.
.
If agile development is to be said to be a rapid development method, it should be "a fast way to deal with changes in demand". Yes, it's going to be a very fast way to deal with changing demands. The reason is that it uses the user story as a requirement description method in the iteration, so it is more flexible than the traditional file specification to cope with the change of requirements, so it is especially adaptable. And you use the user story to describe the quality of the demand, but also determine the speed and ability to cope with changes in demand.
.

Note 1.

Rapid Application Development Method RAD

Speed application Development (RAPID application Development:rad) refers to a minimum amplitude of ... Technical design of the report ". The rapid application development approach requires a balance between function and performance to accelerate application development time and reduce the maintenance costs that are required later. He is the development of non-agile processes that correspond to the 1970-80 generation, such as structured system analysis and design methodologies, and other developed methods such as waterfall models. (wiki)

Note 2.

α, β, gamma are commonly used to represent the three phases of the software testing process: Alpha is the first stage, generally only for internal testing, Beta (Beta) is the second phase, which has eliminated most of the imperfections in the software; Gamma is the third phase at which the product is quite mature, You only need to do further optimization in individual places.

This article goes from Ruddy Lee's blog: https://ruddyblog.wordpress.com/2016/07/21/%E6%95%8F%E6%8D%B7%E9%96%8B%E7%99%BC%E7%82%BA%E4% bd%95%e6%9c%83%e6%af%94%e8%bc%83%e5%bf%ab/

Related reading:

    • The power of Seeing – (I) Thinking of solving problems
    • Power of Seeing – (II) Impact map
    • User story-driven agile development –2. Create a backlog
    • User story-driven agile development –1. Planning Chapter
    • Analyzing the five core practices of lean product development – Kanban approach
    • Impact Mapping Influence Map reading and exercise experience
    • 8 Steps to create a user story Mapping
    • The first experience of user story Mapping

Please follow the public number "Devopshub" For more information on DevOps integration

?

The goal of agile development is not to deliver fast!

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.