eXtreme Programming (XP) is an iterative agile methodology based on highly disciplined software engineering practices such as pair programming.
The idea developed by Kent Beck was to use best programming practices but take them to the extreme – hence the name. As such, none of the individual concepts of XP are really new, but their application and combination is what makes XP different, or at least did in the 2000s, which is when it initially became popular.
XP advocates adaptability; recognizing that each project faces different problems, applying those methods that will work and discarding those that will not. Partial XP therefore becomes a true possibility, often combined with Scrum, which has gaps in its definition particularly suited to adoption of XP practices.
XP embraces standard agile principles such as short iterations; requirements being loosely defined with user stories until they are needed; almost immediate and regular testing; close, on-site stakeholder involvement with a rapid feedback loop; and team responsibility for success or failure.
As is necessary for Agile projects, the XP team expects and accepts changes in requirements based on feedback from stakeholders and the obligatory high level of communication within the team.
Intense communication is necessary because everyone is required to understand the system as a whole so that anyone can work on and change any of the code. Quickly written code is often used as a means to explain ideas and try out designs. With short iterations comes regular layering of new functionality, thus refactoring is encouraged in order to consolidate separately written parts into a more efficient whole.
Testing taken to the extreme means using as many testing techniques as necessary, as often as possible. Methods include unit testing, acceptance testing, integration testing and test-first programming. Some of these approaches also include test driven development (TDD) and behavior driven development (BDD).
Pair programming is part of XP, the idea being that two heads are better than one. Using only one workstation, one person writes code while the other observes, injecting ideas, pointing out potential problems and thinking about the ‘big picture’ as the code is written. Roles are reversed frequently and the pair work as if joined at the hip. If a pair get too comfortable with one another they may begin to think alike and two heads thinking as one is no better than one head, defeating the purpose. Pairs should be split up and reassigned when this happens. While pair programming does increase staffing needs, it is an excellent technique for building in quality which is an Agile ideal.
The simplest solutions are encouraged, addressing the immediate problems, not problems that might arise tomorrow. This helps everyone to remain focused and meet deadlines but can result in considerable redesign and refactoring over time. To avoid architectural dead-ends, spike solutions are recommended, whereby the team creates user stories to prove out areas of most technical or conceptual risk. This, together with refactoring build into every iteration, prevents the system becoming atrophied and unable to support future needs.
One of the reasons XP is so popular is its flexible nature. It is easy to combine features of XP with other ideas; indeed, XP is more about technique than process and so dovetails well with process-centric approaches such as that of Scrum.
When your company requires a system to manage your eXtreme Programming projects, there are a lot of choices in the marketplace. However, if you want the most complete solution that can handle your user stories, epics and acceptance tests there is only one solution.
The list of user stories, requirements, defects and features is called the Product Backlog. SpiraTeam lets you organize the backlog by component, package or priority. You can order and categorize them by simple drag and drop editing. This is called backlog grooming or refinement.
The requirements, user stories, tasks, test cases and outstanding bugs and issues can be scheduled against the different iterations in the release. The system will calculate the available effort as items are added.
SpiraTeam is a complete XP project management system in one package, that manages your project's requirements, releases, sprints, tasks and bugs/issues. Designed specifically to support agile methodologies such as Scrum, it allows teams to manage all their information in one environment.
|Requirement||User Story||Backlog Item|
|Test Case||Acceptance Test||Acceptance Test|
In addition to a powerful planning board for managing user stories, epics and backlog items, SpiraTeam includes an easy to use set of boards for managing tasks within the Iterations.
SpiraTeam lets you view the tasks associated with each of the user stories within the Iteration and see the completion status at a glance.
SpiraTeam provides reporting dashboards of key project quality and progress indicators - requirements test coverage, task progress, project velocity, as well as top risk and issues – in one consolidated view that is tailor-made for Scrum and Extreme Programming projects as well as supporting any legacy/hybrid waterfall projects.
In addition, we provide superb technical support that ensures that enquiries and questions are dealt with in a timely and professional manner.
To learn more about SpiraTeam and how it can improve your XP project management methodology, please:
One of the key tenets of XP is that fully integrated, tested and releasable code is available at all times. When you couple this requirement with the accelerated timeframes possible with XP, clearly manual testing is not going to cut it. You need a test automation solution that can be integrated fully into your development process and that be adapted to your changing needs:
Rapise is the most powerful and flexible automated testing tool on the market. With support for testing desktop, web and mobile applications, Rapise can be used by testers, developers and business users to rapidly and easily create automated acceptance tests that integrate with your user stories, test cases, defects, and other artifacts in SpiraTeam.
One of the obstacles to implementing test automation on an XP project is that the application’s user interface may be changing frequently, with new pushes to production daily. Therefore, it is critical that tests created one day, continue to work seamlessly the next.
Rapise comes with a built-in machine learning engine that records multiple different ways to locate each UI object and measures that against user feedback to determine the probabilistic likelihood of a match. This means that even when you change the UI, Rapise can still execute the test and determine if there is a failure or not.
To learn more about Rapise and how it can improve your XP software testing please:
And if you have any questions, please email or call us at +1 (202) 558-6885