The best story of traditional and agile methods: Elephants and monkeys

Source: Internet
Author: User

For a long time, I have been frustrated with the connection and difference between traditional software engineering methods and popular agile methods, because every field is so large, as a non-professional, it is really not easy to grasp the relationship clearly until I see the following story (from balance agility and specifications balancing agility and discipline: A guide for the perplexed, translated by Deng Hui Sun Ming from Tsinghua University Press ). In the process of typing, I have commented on some terms against the common concepts in the two software development methods. If not, please correct them.

A long time ago, on a land filled with metaphor, an elephant (similar to the traditional development method) lived ). For many years, this loyal elephant has been the main food collector in the village where he lives, and is very clear about what the village needs (preplanned by the Project ). He built a path in the jungle (best practice) that always guides him through the best foods such as roots, vegetables, nuts, and fruits (functionality of the project ). He knows what kind of fruit he can get with his nose, and he knows which kind of fruit needs to shake his nose to pick. He is strong enough to bring back enough food for a few days at a time, so he always preestimates the Needs of the village (similar to the typical project needs) and provides the right supply. He did his duty, and the whole village was very grateful to him and thought that his work was very valuable.

Alas! As we often see in our lives and in our fables, the situation has changed (a change in demand ). Chefs in the village (the stakeholders of the project) Want some exotic and rare ingredients for cooking (The need for personalization ). These raw material elephants once heard of, but are not on his way every day (similar to the fields not suitable for traditional engineering methods ). He is still struggling to store food that is not needed (as the original demand is outdated), but has no time to build new roads to meet new demands. People in the village gradually lose patience with elephants who cannot meet their needs (which can be understood as traditional methods such as RUP are not suitable for website development) and are increasingly discouraged.

At the same time, a monkey (similar to the agile method) in a nearby village is doing the same work as the elephant. However, unlike this elephant, this agile monkey quickly shuttles through the jungle (similar to XP and other programming methods) to pick the fruits it sees. He only looks for the low-hanging fruits (which cannot satisfy enterprise-level applications) and quickly delivers them back to the chefs. Unlike an elephant, this monkey does not rely on a tested road. He depends on his memory and can find food, and only bring back the food required for the day (metaphorical iterative programming, daily building, etc ). Sometimes, he will run out to find the increasingly rare food (a novel function, such as Ajax), and occasionally get lost (too many new methods ). But it turns out that his speed and agility are perfect for the tasks assigned to him by the village. Like the elephant, he is also quite popular (in his own field, such as web development ).

Unfortunately, the monkey's life has changed. The village he lives in expands day by day (equivalent to enterprise-level Web applications ). This monkey needs to satisfy too many demands, so that he is always exhausted and tries to remember all the needs in every place. He had to go back and forth many times, because he didn't have enough power to return all the things people needed at a time (too many functions ). Similarly, the village gradually lost patience with the monkey, and the monkey began to doubt whether he could do the job.

One day, the tired monkey met the discouraged elephant. The monkey, which was trying to carry heavy loads, quickly found that the baskets on the back of the elephant could hold so much food. And the elephant was shocked by the speed of the monkey.(The two sides begin to face up to the advantages of the other party ),He can run so far that he can easily get the food that elephants do their best and cannot get. Although both of these animals are proud of their own skills (as mentioned in the previous debate), they still admit that they are superior in some aspects.

The elephants and monkeys realized the benefits of working together (a big process of control, a process of software development details) and decided to join. Monkeys use his agility to meet new demands for long-distance fruits and bring elephants back to his village. The elephant delivers enough food to the monkey's village to meet the increasing demand. Although it took them some time to find a collaboration method (equivalent to the break-in between two different methods), they soon were able to meet the needs of the two villages, they live a happy life and trust each other. Since then, the villagers who are full of clothes and food have begun to value them again (Yu practical is the first place :))!

 

From: http://blog.csdn.net/futurelight/archive/2006/09/21/1262383.aspx

 

See the following statement:

* The agile method is to pull standardized and large-scale software development back to the initial "small software Workshop", which is a new kind of backend.

* A small workshop is characterized by a small team, meeting every day, and getting familiar with it. It mainly relies on verbal communication and uses primitive tools (such as whiteboards and pasters), which are similar to agile methods.

* Many applications on the Internet are subject to Uncertain Demands and rapid changes. Many applications on the Internet are free of charge and do not require high quality. All these are suitable for fast iteration, and call for a more flexible development method, that is, the agile method.

* A small team is dominated by governance and supplemented by the rule of law. A large team is dominated by the rule of law, supplemented by governance by people. The agile method is suitable for small teams and mainly stays in the stage of governance, but it is "people-oriented ".

* The agile method is still a kind of regression. The definition of roles is increasingly unclear, and the boundaries between testers and developers are increasingly vague. mature industries, role subdivisions, and responsibilities are clearly defined.

* Agile methods violate the traditional quality viewpoint of "doing things right for the first time". Instead, they hold the banner of embracing change, do what they want, and then constantly modify and reconstruct them.

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.