1. Our top priority is to make our customers happy by delivering valuable software early and continuously. There is a strong correlation between the delivery of partially functional systems and system quality as early as possible. The less functionality that is included in the system that is initially delivered, the higher the quality of the final delivery system. There is a strong correlation between delivering the system and the final quality on a regular basis in a way that incrementally increases functionality. The more frequently delivered, the higher the quality of the final product. Agile practices are delivered as early and as often as possible. We strive to deliver a system with basic functionality within the first few weeks of the project. Then, we strive to deliver an increasingly functional system every two weeks. If the customer believes that the current functionality is sufficient, customers can choose to add these systems to the product. Alternatively, they can simply choose to check the existing functionality again and point out the changes they want to make.
2. Even in the late stages of development, it is welcome to change demand. Agile processes leverage change to create competitive advantage for customers. This is a statement about the attitude. Participants in the agile process are not afraid of change. They think that changing demand is a good thing because the changes mean that the team has learned a lot about how to meet the needs of the market. Agile teams will work very hard to keep the software structure flexible so that the impact on the system is minimal when demand changes. In the later part of this book, we will learn some object-oriented design principles and patterns that will help us maintain this flexibility.
3. Regular delivery of the software can work, the delivery interval can be from a few months, the delivery time between the shorter the better. We deliver the software that works working software), and deliver it as early as possible (after a few weeks at the beginning of the project), regularly (thereafter every few weeks). We are not in favor of delivering a large number of documents or plans. We think those are not the things that are really going to be delivered. Our focus is on delivering software that meets the needs of our customers.
4. During the entire project development, business people and developers must work together every day. to be able to develop projects in an agile manner, there is a need for meaningful, frequent interaction between customers, developers, and stakeholders. Software projects do not have the ability to automatically navigate the weapon as it is launched, and the software project must be continuously guided. ---www.bianceng.cn
5. Build projects around motivated individuals. give them the environment and support they need, and trust them to get the job done. In agile projects, people are considered to be the most important factor in the success of a project. All the other factors?? process, environment, management, etc.?? are considered to be secondary, and when they have a negative impact on people, they must be changed. For example, if your office environment is a hindrance to your team's work, you must change your office environment. If some process steps hinder the work of the team, you must change those process steps.
6. The most effective and efficient way to convey information within a team is face-to-face conversation. in agile projects, people talk to each other. The first way to communicate is to talk. You may be writing a document, but you will not attempt to include all project information in your document. Agile teams do not require written specifications, written plans, or written designs.
Team members can write documents, and if the requirements for these documents are compelling and significant, the document is not the default way to communicate. The default mode of communication is conversation.
7. The working software is the first progress metric. Agile Projects measure development progress by measuring the number of current software to meet customer needs. They do not measure development progress according to the development phase, the number of documents that have been written, or the amount of infrastructure (infrastructure) code that has been created. It is only possible to determine that progress is completed by 30% when 30% of the required features are working.
8. The agile process advocates sustainable development speed. responsible people, developers and users should be able to maintain a long-term, constant development speed. The agile project is not a 50-meter dash; it's a marathon. Instead of starting at full speed and trying to maintain that speed during project development, the team travels at a fast but sustainable pace. Running too fast can lead to a team burnout, short-term behavior and collapse. The agile team will measure their own speed. They don't allow themselves to be too tired. They will not borrow tomorrow's energy to finish a little work today. They work in a speed that allows the highest quality standards to be maintained throughout the project development period.
9. Constant attention to good skills and good design can enhance agility. High product quality is the key to obtaining high development speed. Keeping the software as concise and robust as possible is a way to quickly develop software. As a result, all Agile team members are committed to writing only the highest quality code they can write. They don't create chaos and tell themselves to clean up when they have more time. If they create chaos today, they will clean up the mess today.
10. Simplicity--The art of maximizing unfinished work--is fundamental. Agile teams do not attempt to build flashy systems, and they are always more willing to adopt the simplest approach that is consistent with their goals. They don't value predictions about tomorrow's problems, nor do they defend those issues today. Instead, they do the simplest work today with the highest quality, convinced that if there is a problem tomorrow, it will be easy to deal with.
11. The best architecture, requirements, and design comes from self-organizing teams. The Agile team is a self-organizing team. Instead of being assigned externally to a single team member, the task is assigned to the entire team and then the team determines the best way to accomplish the task. Members of the Agile team work together to solve all aspects of the project. Each member has the right to participate in all aspects of the project. There is no single team member responsible for system architecture, requirements, or testing. The whole team shared those responsibilities, and each team member was able to influence them.
12. Every once in a while, the team will be able to reflect on how to work more effectively, and then adjust their behavior accordingly. The Agile team continually adjusts the organization, rules, norms, and relationships of the team. Agile teams know that the environment in which the team is constantly changing and that in order to keep the team agile, it has to change with the environment.