Automation World Article: Improve competitive quality with extreme programming (Features): "The eXtreme Programming methodology advocates a 12-step program to minimize software bugs.The organization’s Web site, www.extremeprogramming.org, discusses these in detail.
1. Develop user stories. These create time estimates for the release planning meeting and are used instead of a large requirements document. They are written by the customers as things that the system needs to do for them.
2. Hold a release planning meeting. A release plan, which lays out the overall project, is created at this meeting. The release plan is then used to create iteration plans for each software version.
3. Create the release plan. This specifies exactly which user stories are going to be implemented for each system release and specifies dates for those releases.
4. Release small pieces of the system to the customers often. This is critical to getting valuable feedback in time to have an impact on the system’s development.
5. Use iterative development. Have a planning meeting at the beginning of each iteration to plan what will be done.
6. Move people around to avoid serious knowledge loss and coding bottlenecks. If only one person on the team can work in a given area and that person leaves, or more things need to be done in that section, the project’s progress can be reduced to a crawl.
7. Code unit test first. Creating a unit test helps a developer to really consider what needs to be done. Requirements are nailed down firmly by tests.
8. Pair up programmers. All code to be included in a production release is created by two people working together at a single computer. Pair programming increases software quality without impacting time to deliver. It is counterintuitive, but two people working at a single computer will add as much functionality as two working separately, except that it will be much higher in quality.
9. Hold a daily stand-up meeting. Communica"