9 common mistakes in Agile Development

Source: Internet
Author: User

Owners, developers, and users should be able to maintain a long-term and constant development speed. Compared with the previous software engineering, agility is the biggest innovation in improving the role of people to process first, as stated in the first article "individuals and interactions win over processes and tools" in the agile declaration.

1. agility is a "process"

Agility is not a process, but a general term of a kind of process. It has a common feature that conforms to agile values and follows agile principles.

Agile values are as follows:

◆ Individuals and interactions are better than processes and tools
◆ Software that can work is better than comprehensive documents
◆ Customer cooperation is better than contract negotiation
◆ Responding to changes is better than following the plan

12 agile principles derived from values:

◆ Our top priority is to deliver valuable software as soon as possible and continuously to satisfy our customers.
◆ Even after development, you are welcome to change your requirements. Agile processes use changes to create competitive advantages for customers.
◆ The software that can work can be delivered on a regular basis. The delivery interval can be from several weeks to several months. The shorter the delivery interval, the better.
◆ During project development, business personnel and developers must work together every day.
◆ Build projects around motivated individuals. Provide them with the required environment and support, and trust them to complete their work.
◆ In the team, the most effective and efficient way to transmit information is face-to-face conversations.
◆ The software at work is the primary progress measurement standard.
◆ The agile process advocates sustainable development speed. Owners, developers, and users should be able to maintain a long-term and constant development speed.
◆ Constantly paying attention to excellent skills and good design will enhance agility.
◆ Is the art that maximizes unfinished work ?? Is fundamental.
◆ The best architecture, requirements, and design come from self-organizing teams.
◆ At regular intervals, the team will reflect on how to work more effectively, and then adjust their behaviors accordingly.

The Agile Methods created by 17 masters who established the agile Alliance include extreme programming, scrum, feature-driven development, dynamic system development, adaptive software development, crystal method, and practical programming method. These methods are collectively referred to as agile methods.

In fact, everyone can start from agile declarations and principles, identify problems, find some solutions, and form their own processes. I think the software environment in China is so complicated and the autonomy of programmers is so strong. agile methods should be first proposed in China, only people in China have a standard-only, normative, and Supreme psychological mindset. Even if they find a good solution, they feel that they are not standardized. They have not formed a theory in depth and cannot improve their height. They have always followed the devil's ass, I think this is also one of the immature performances of the foreign software industry!

2. agility is just a Software Process

If you only understand agile implementation from the perspective of the software process, the effect will not be very good. Compared with the previous software engineering, agility is the biggest innovation in improving the role of people to process first, as stated in the first article "individuals and interactions win over processes and tools" in the agile declaration.

People-related problems are no longer covered by the process. They are now at the level of enterprise management, including corporate values and culture. This is also the biggest obstacle for agile implementation in China:

Consider the customer as a partner rather than a competitor, think about the problem from the customer's perspective, and fully communicate with the customer, rather than shirking responsibility for the problem. The goal is to let the software realize the value of the customer, rather than simply making money.

Mobilize people's initiative to give motivation rather than pressure.

It must be practical, not standardized. Let developers understand and implement, experience the benefits of agility, rather than blindly and mechanically implementing specifications.

There is no absolute authority, and everyone has merits.

3. iteration is agile, and up is agile.

Seeing that so many people put up into agility, I began to wonder if I was wrong. But in my impression:

Up is a heavy process. Although iteration is introduced, its principles and values are different from those of agile. Agile focuses on feedback, the iteration cycle is as short as possible, and the customer's participation is important. Through the customer's participation, continuous feedback is obtained and adjustments are made to keep the entire project in the correct direction. At the same time, it also gives the customer a chance to feel and think about it, because for most customers, the goal is clear (not to rule out that some customers are not clear), but how to do it, I didn't have any idea at the beginning. I only knew it when I saw specific things. "Oh, we could have done this. I want to adjust it here ".

4. agility is a complete revolution.

Agility, especially XP, makes people feel refreshed. I feel that all the previous software engineering theories and design methods can be abandoned, overturned, and started from scratch. With this kind of idea, it is wrong to implement agility. agility is not "a sun dasheng exists in the Stone", and the previous software process also has the shadows of agility, it just does not rise to the heights of values and principles like agility, such as rapid prototyping. Agility is the improvement of existing software process methods. It discards the inefficient appearance of traditional software engineering. In the past, many skills were very practical in the software process. Agile implementation should be based on existing software processes, starting from agile declarations and principles, and using agile methods to improve the process.

5. agility is anti-document.

The document is just a means to achieve the goal. If this means is inefficient, it is a different means. But I completely abandoned the document. How can I solve the communication problem? Isn't it even more inefficient to say that every communication is completely done by hand, and to say that you are repeating the same idea with different people.

It should be clear that the essence of the document is to make knowledge explicit. There is a lot of knowledge to be communicated in a project. There are two types of knowledge: explicit and implicit. The traditional concept is to make tacit knowledge explicit, that is, to document, as much as possible, the cost is ignored (especially the cost of updating synchronization documents ).

Therefore, when implementing agility, You need to specify the knowledge that must be explicit in the team, which can be communicated through documents. Which of the following knowledge can be implicitly used to achieve optimal communication efficiency.

The document is not the purpose, but effective communication is the purpose.

6. agile for agility

"Well, we can be agile if we are so agile." Many people may have this idea. I forgot where I used to see my master's interview records:

Q: "Our current process is very good. I don't know how to use agile improvement ?"

A: "Since it is good, don't use agility ".

You must have a clear goal in everything you do. Although agile is good, it depends on whether you need it or not. Can you solve your current headache? If not, don't bother yourself.

7. agility is the opposite of CMM.

During the discussion, many people regard CMM as the antonym of agility. I think this is not very suitable. CMM is only a standard for measuring software maturity, not a process, and agile is not a concept. If I want to find an antonym for agility, I think traditional waterfall development should be more appropriate.

In addition, I believe that if CMM continues to become popular, companies should be able to pass CMM certification through agile improvement processes.

8. agility is free and unrestricted.

Agility emphasizes self-organizing teams, giving full play to people's initiative and replacing stress with motivation. This gives people the illusion of absolute freedom. However, it should be clear that we should always pay attention to a balance in everything. People are both sides. The negative side and the positive side coexist at the same time. Absolute freedom will indulge the negative side of people. Agility is not absolutely free and unrestricted. As a manager, it has a responsibility to guide team members to suppress the negative side with their own positive side and not to allow free-riding in the team; otherwise, the overall morale of the team will be compromised. If it is ineffective, you can only exclude it from the team. Is this punishment binding?

9. Redo is refactoring.

Redo is not equal to refactoring. In many cases, these two concepts are mixed. However, in agility, a feature of refactoring must be controllable. When a large adjustment is made to the system structure, the controllability will be poor without the help of the test driver. This cannot be called refactoring.

 

Http://www.kuqin.com/software-engineer/20080120/3812.html

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.