In Extreme programming, which steps we need in the development process and what are documents for each steps?
Answer: eXtreme Programming (XP) is one method of the Agile approach. It shares the same principles of Agile which focuses on continuous development and release software in small piece at a time. Instead of delivering everything according to a fixed schedule date, XP process focuses on deliver the software to customers in pieces as they need it.
Like most Agile methods, XP requires customer involvement in the process. (If your customer cannot participate, you should not use XP). In XP, the team organizes their works based on User stories or the problem to be solved based on customer’s inputs. The team constantly communicates with customers to get inputs and feedback by testing their software as early as possible.
The first step in XP is planning where the team discusses the requirements with customers and begins to write the User stories. (In XP method, both the team and customer are working together to write things that the software must do based on the customers’ view). From the user stories, the team begins to develop the Acceptance tests to verify that the Users story is done correctly. The team also starts to plan for the release schedule by making several small incremental releases. The XP project is divided into several small iterations. (Similar to each Sprint in SCRUM). The team and customer work together to plan each iteration.
For each iteration, the team begins each day with a daily standup meeting. The reason of the word “Standup” is it must be short where people often stand up to talk about what they did on previous day, what they are planning to do today and what problem that they have. Most standup meeting lasts five to ten minutes so everybody on the team knows about the progress of the project.
One major rule of XP is “Test first, code later”. Before coding, programmer must write the unit test first. The logic is if they develop the unit tests first, they will be more conscious of the way they code, therefore they will not make many mistakes and overall the project will have better quality. According to Ken Beck the author of XP, the combined time it takes to create a unit test and to code is about the same as code first then write unit test later. By develop a unit test first, helps programmer to understand what must be done for that day.
The unique feature of XP is pair programming. All works in XP is done by two programmers working side by side. One person code, the other follows the coding logic and make sure that there is no mistake or error is made. After a while, they switch roles. According to Ken Beck, the author of XP, Pair programming increases software quality and having two people working together will add as much functionality as two working separately except that it will be much higher in quality. However, I found that this is a difficult skill to master. It requires both people to work together in a cooperative way on an equal basis. This also facilitates more communication among programmers as they can discuss several ideas and try on to see which is better. Please note that for pair programming to be successful, both people should have equal skills and experience. This is NOT a mentoring or teaching where an experienced person teaching a less experienced person. Both must work together to ensure that the work is done in a most efficient and productive way. I have tried this technique many times but did not do well. Many programmers also told me that it takes a long time to do it well.
Since most XP projects are small (2 to 8 persons), the time to complete the project is short (Few weeks to few months). The value of XP is it can meet customers’ needs quickly. Even if requirements are not well defined, it can still deliver something to customers in small pieces. If the customer may not know what they need, it is still possible to do an XP project due to the nature of fast changing and iterative process. The XP code is mostly of high quality because all code must pass unit tests before it can be released. If a bug is found, a test must be created and the team must work on it immediately to ensure that the software is released with high quality. As with all Agile approach, XP requires very experienced programmers to work together. This is not a project for beginners because teamwork, experience, skills, communication, and commitment are required.
Reference
Following are websites that you can check for more information: