In addition to the uniqueness of the agile approach, he and other methods also have a lot in common, such as iterative development, focusing on interactive communication and reducing the unnecessary resource consumption of the intermediary process. The applicability of agile methodologies can often be measured in terms of the product perspective, where the agile approach is suitable for situations where demand is sprouting and rapidly changing, such as a system with a high degree of criticality, reliability, and security requirements, which may not be entirely appropriate; From an organizational structure perspective, the organizational structure of culture, personnel, Communication determines whether the agile approach is applicable. The key success factors associated with these are:
organizational culture must support the negotiators to trust each other, less but lean, the decision of the developer is recognized, environmental facilities to meet the needs of rapid communication between members. Perhaps the most important factor is the size of the project. As the scale grows, face-to-face communication becomes more difficult, so agile methods are more suitable for smaller teams, 20, 40 or less. Large-scale agile development is still in the stage of active research.
Another problem is that a large number of ideas at the beginning of the project or rapid demand collection can lead to pitfalls in the project, especially when the customer has no concept of their own needs. Similarly, a person's nature can easily lead to a situation in which a person becomes dominant and introduces the project goals and design into the wrong direction. Developers often grant inappropriate solutions to customers, and until the end of the problem they can get customer approval. Although the theory of fast interaction can limit the occurrence of these errors, the premise is effective negative feedback, otherwise the error expands rapidly.
Agile Software Development principles and core viewpoints
As the project continues to be large, maintenance of the project will inevitably introduce new content into the project. So that the software projects continue to be huge. On the other hand, changes in demand will also cause a rapid increase in software size. An example of the first Rufus Company project in Appendix C of Agile Software development is the pursuit of a one-time, large-scale completion of input and design that leads to project failure. To this end, agile software development, as mentioned in the article cited in the 4 Declaration, it embodies 4 core viewpoints, these 4 core points out the Agile software development of 12 principles.
definition of the core point of the software
The importance of human being is emphasized in the process of agile software development. Agile software development, good processes and tools must also be used by software development teams. If there is only a good management process and there is a lack of communication among team members, then the development of the project will be a high failure rate. At the same time, if there are only good development tools, and team members do not have the necessary development techniques to rely on tools to complete, then the software will become very loose. On the other hand, agile software development also emphasizes that a good team is not necessarily a skilled team. A team with good communication skills and a general skill level is much higher than a skilled member, but a team with a lack of communication.
Agile Software Development emphasizes documentation to be few but good. Lightweight software development is committed to reducing all aspects of not spending. The reduction in documentation will also bring great convenience to the development effort. On the contrary, complex documents will inevitably bring a high degree of complexity to software development and software architecture. Thus violating the Agile software development lightweight intent.
Agile Software Development emphasizes timely communication with customers. Timely communication with customers, to show customers the function of new products, let customers make suggestions or comments. This can meet the needs of customers, but also control the direction of software development. The kind of contract with customers, and then behind closed doors, the software is basically completed to deliver to the customer's practice often leads to the product is not the customer's real intention, or can not meet the customer's new needs, resulting in customer dissatisfaction, resulting in a project failure.
Agile Software Development emphasizes timely response to change. Due to its lightweight development, it delivers a new feature every two or three weeks, with a short development cycle that responds to changes in technology and customer needs and reduces risk in the software development process.
12 Practical principles of agile Software Development
The 4 core values of agile software lead to 12 principles of software development: "Simple design, test driven, code refactoring, continuous integration, pair programming, on-site customer, release version minimization, system metaphor, code ownership, planning strategy, code, and 40-hour mechanism." ”
A survey of Agile development methods