Core Idea of Agile Methods
- the agile method is adaptive, not predictable. . Unlike traditional methods, Agile Methods embrace changes, use changes to develop, or even change themselves, and finally improve themselves. That is, to use refactoring
- the agile method is people-oriented, rather than process-oriented. . The traditional method regards developers as a production factor (analyst, tester, Program member) and has a large number of intermediate products (requirement specification, design Model, etc.), while ignoring the particularity of people as the deciding factor. agile development only writes necessary documents, or writes as few documents as possible. Agile development focuses on face-to-face communication between people, so it emphasizes people-centered.
- iterative incremental development process . Agile methods are based on the idea of prototype development. iteration refers to the process of decomposing a complex development task with a long development cycle into many tasks that can be completed in a small cycle. Such a cycle is an iteration; at the same time, each iteration can produce or develop a software product that can be delivered.
About scrum and XP (eXtreme Programming)
Agility is a guiding ideology or development method, but it does not clearly tell us what kind of process is used for development. Scrum and XP are the specific methods of agile development, you can use scrum or XP. The difference between scrum and XP is,Scrum focuses on processes, while XP focuses on practice. But in practice, the two are applied together.
12 XP practice rules
XP focuses on practice. Some of these practices have been widely used in modern software development. Whether your development process is scrum, cmme, or cmme? Yes, these excellent software engineering practices are not exclusive to agility, even if your development process is cmme, it will not affect your use of these practices. For example, TDD, CI (continues integration), agile, and cmme can be integrated to some extent, rather than the confrontation between them.
XP's core value is
Communication, simplicity, feedback, and courage.
12 practice rules:
Fine scale feedback)
- 1. Pair Programming (Pair Programming ),That is, anyCodeBoth of them work together, one coding, one review code, and then provide feedback. In reality, this practice is generally not used. One alternative is to regularly open code
Review Meeting.
-
- 2. Planning game)A planning meeting will be held for each iteration cycle to review and summarize the work cycle, and to plan the development and release of the next iteration (usually 2 weeks.
- 3. test driver development)The programmer should write the unit test code before implementing the function. Because the function code has not yet been implemented, the result of running the test can be imagined and will certainly fail, the programmer's job is to make proper code pass the test case. The implementation process of this function is also gradual and iterative. Each time a small part of the function is implemented, and then the test is run. In this way, when a problem occurs, we can quickly locate the problem, and quickly solved the problem. Because if you and I are not smart enough, our brain can only remember what just happened. This concept applies to the regression of each checkin in CI.
Test, because if your checkin causes damage to existing functions, you can easily locate the problem and fix it because you just modified the code.
-
- 4. Complete Team (whole Team)Sometimes it is also called the customer site, that is, after the customer does not analyze the demand, everything is fine, should be stationed at the development site, so that the development team can obtain the latest, most accurate customer service feedback, ensure that development does not deviate from customer needs.
Sustainable development (CONTINUES process)
-
- 5. Continuous Integration)The project should have a set of tools for automatic compilation, automated testing, and automatic deployment (Hudson). programmers should work on the latest code version for parallel development by multiple people, you should promptly checkin your code and ensure that the Code is compiled and tested. If any problems occur, they can be exposed and repaired as soon as possible. It plays a positive role in reducing bugs and software risks.
-
- 6. refactoring ),Software is constantly evolving with changes in demand and technological innovation, and prone to code stacking, code redundancy, and other "Bad taste" in code ", use Code refactoring technology to promptly clean up, adjust, and reorganize the code. This helps improve software quality and maintainability.
- 7. Small version release (small release)How to eat elephants? Splitting a large problem domain into small and operable problems is a natural way to solve complicated problems. Break down software requirements into small functional modules, complete pre-defined modules in each iteration cycle, and form a release version. When you demo this version, you can get feedback from stakeholders quickly without delaying the risk to the end of the project.
-
- 8. sustainable pace ),Continuous Development. Do not work overtime. You should play basketball.
Shared understanding)
- 9. coding standard), Unified code style and format
-
- 10. Collective Ownership (colleve ve code ownership)Everyone is responsible for all the code
-
- 11. Simple Design), Simple is king, do not over-design
- 12. System metaphor)System metaphor means that everyone (customers, programmers, and managers) can understand how the system works and how to name the class/method, so that team members can only think of functions from the name. For example, if a product expires, makeoverdue method is available on catalog (class.
Reference: http://en.wikipedia.org/wiki/Extreme_programming_practices
How to Use scrum as a development process: Http://www.cnblogs.com/taven/archive/2010/10/17/1853386.html