The main topics of this article are as follows:
What is the XP method? What are the main application cases of thought projects?
What is the XP method? Extreme Programming XP is a method created to develop software that meets the changing customer needs. Its success benefits from its special emphasis on customer satisfaction, XP enables developers to respond more effectively to customer needs, even after the software lifecycle. It is a software development method that has undergone many practical tests. successfully applied to many large companies, such as bayeris che Landesbank, credit SWIS s life, DaimlerChrysler, First Union National Bank, Ford Motor Company and UBS.
Development 1990 s, Kent Beck and Ward cunnhan together had experienced an approach to software development that made every thing seem simple and more efficient. march, 1996, Kent started a project at DaimlerChrysler using new concepts in software development. the result was the extreme programming (XP) methodology.
What Kent came to realize is that there are four dimensions along which one can improve any software project, which are communication, simplicity, feedback, and courage. these are the four values sought out by XP programmers.
The rules and practices Planning designing coding Testing
Planning User stories are written. release planning creates the schedule. make frequent small releases. the project velocity is measured. the project is divided into iterations. iteration Planning starts each iteration. move people around. A stand-up meeting starts each day. fix XP when it breaks.
User stories Similar to use cases, but not the same, it is used to estimate the release planning meeting time to replace the detailed user requirement specification, which is written by the user, similar to the user "scenario ", however, it is not limited to interface descriptions. No technical terms can be used as the basis for acceptance testing.
Release Planning Convene Release planning meeting is used to prepare a release plan. The release plan details the version requirements required by users, which lays the foundation for subsequent iteration plans.
Small releases The iterative version of the system is often released to the customer in Release planning meeting determines which feature units have important impact on user business and can be added to the system at an early stage to introduce important features of the system to users, the shorter the time required for the development team to "handle" the system.
Project Velocity The project turnaround time is a measure of the project's working progress speed. Load factor has recently been introduced for project cycle Measurement
Iterations
Iterative development increases the agility of the development process by dividing the overall progress into a series of small iteration processes with a length of 1-3 weeks. The iteration cycle is fixed and consistent and becomes the "Heartbeat" of the project ".
Iteration Planning
Call an iteration plan meeting at the beginning of each iteration to clarify that the cycle of each iteration task is The user stories determines the most valuable features as the target of this iteration. features that did not pass the acceptance test during the last iteration should be included in this iteration.
Move people around
Allow everyone to master more skills and avoid cross-training on isolated knowledge islands and development bottlenecks. "Pair programming" is not a one-person master of all Code Instead, everyone needs to master most of the code, and the people they need can be assigned to the most desired place at any time to achieve "Load Balancing" for each iteration. Everyone tries to make a new part of the system, pair programming can ensure this form
Stand-up meeting Objective: To communicate with the entire development team (rather than individual developers) at a standing meeting every morning. The main problems and solutions are communicated, by focusing on the group, you can avoid daily stand up meeting, which is different from a general waste of time.
Fix XP
Once the XP process is broken, correct it immediately! XP rules can be formulated based on specific projects. Once formulated, rules must be executed until rules change is clearly known to all personnel.
Designing Simplicity. Choose a system metaphor. Use CRC cards for design sessions. Create spike solutions to reduce risk. No functionality is added early. refactor whenever and wherever possible.
Simplicity is the key. It is not easy to simply add a feature that is not included in the progress.
System metaphor Select a metaphor for the system so that the development team can name classes and methods in a uniform manner. The naming method is easy to understand.
CRC cards Class, responsibilities, and collaboration (CRC) CRC cards has the greatest value in guiding developers to get rid of the process model, precisely understanding the OO Technology CRC cards allows everyone to participate in the design, the more people involved, there will be more good ideas to introduce
Spike Solution
S Key Problem solutions are created to solve key technical and design problems. Most spikes may be unable to be maintained and may be discarded. however, the goal of creating spike reduces technical risks. Once technical difficulties pose a threat to system development, a developer is immediately assigned to the problem for one to two weeks to reduce potential risks.
No functionality is
Added early Remember not to implement the additional features that you think may be useful in the future. only 10% of the additional features will be useful. only pay attention to the content required in the current progress.
Refactor
Whenever and wherever possible You can rethink the design and coding of what you have done anytime, anywhere, simple enough easy to understand, modify, and extend all the things. A system that only expresses one modification is too good, and it will not be able to keep up with the Progress requirements in the future.
Coding The customer is always available. code must be written to agreed standards. code the unit test first. all production code is pair programmed. only one pair integrates code at a time. integrate often. use collective code ownership. leave optimization till last. no Overtime.
The customer is
Always available Contacting customers at any time is one of the basic requirements of the XP method. All stages of XP Require strong customer participation. It is best to have a customer dispatched to participate in the development team to "hold the customer ", new users are trained as experts, and developers need experts.
Code must be written to agreed
Standards All code must adopt unified standards to understand Smalltalk projects: Smalltalk Best Practice Patterns
Code
Unit test first Creating a unit test can help developers clearly understand what is really needed by the test activity.
All production code is
Pair programmed All released code is composed of two Program Developers can work together on a single machine. The best way to Pair programming is to move the keyboard and mouse between the two sitting in front of the monitor. One considers the method created ), another person also considers how the method can be better reflected in the class. It takes time to adapt to Pair programming, and you have to get through the embarrassing situation that begins to face.
Sequential Integration Every time you add a module for Integration
Integrate often Developers should constantly integrate code into the code base, several hours at a time, no more than one day, everyone needs to work on the final version. Continuous integration can avoid or detect some compatibility problems in the early stage. "Do you pay now or pay more later ?"
Use
Collective code ownership "Collective ownership of code" encourages everyone to propose new ideas for all parts of the project. Any developer can change any code to add features and modify errors. No one will become the bottleneck of change.
Leave
Optimization
Till last Do not optimize the project before it ends. Never try to guess where the bottleneck of the system is. measure it, let the system go up, correct the system, and make the system faster!
For more information, see [xa]-Go to: Software Development Method-XP (eXtreme Programming) programming handout 2
Original article: http://www.sawin.cn/doc/SoftMethod/XP/xp-ppt.htm