Extreme
Programming XP
Agile Software Development
Definition
Extreme Programming (XP) is an agile software development framework
that aims to produce higher quality software, and higher quality of life for
the development team. XP is the most specific of the agile frameworks
regarding appropriate engineering practices for software development.
Introduction
• Extreme Programming (XP) is one of the numerous Agile frameworks
applied by IT companies. But its key feature — emphasis on technical
aspects of software development — distinguishes XP from the other
approaches.
• Software engineer Ken Beck introduced XP in the 90s with the goal of
finding ways to write high-qualitative software quickly and being able to
adapt to customers’ changing requirements. In 1999, he refined XP
approaches in the book
Extreme Programming Explained: Embrace Change.
Process and roles of XP
• The XP framework normally involves 5 phases or stages of the
development process that iterate continuously:
Phase 1: Planning
Planning, the first stage, is when the customer meets the development team
and presents the requirements in the form of user stories to describe the
desired result. The team then estimates the stories and creates a release plan
broken down into iterations needed to cover the required functionality part
after part. If one or more of the stories can’t be estimated, so-
called spikes can be introduced which means that further research is needed.
1. Release plan
2. Iteration plan
Phase 2: Designing
Designing is actually a part of the planning process, but
can be set apart to emphasize its importance. It’s related
to one of the main XP values that we’ll discuss below —
simplicity. A good design brings logic and structure to the
system and allows to avoid unnecessary complexities and
redundancies.
Phase 3: Coding
Coding is the phase during which the actual code is
created by implementing specific XP practices such as
coding standards, pair programming, continuous
integration, and collective code ownership (the entire list
is described below).
Phase 4: Testing
Testing is the core of extreme programming. It is the regular
activity that involves both unit tests (automated testing to
determine if the developed feature works properly) and
acceptance tests (customer testing to verify that the overall
system is created according to the initial requirements
Phase 5: Release
is all about constant communication and feedback. The
customers and project managers are involved to describe
the business logic and value that is expected.
XP Roles
Extreme programming puts people in the center of the system,
emphasizing the value and importance of such social skills as
communication, cooperation, responsiveness, and feedback. So, these
roles are commonly associated with XP:
1. Customers are expected to be heavily engaged in the development
process by creating user stories, providing continuous feedback, and
making all the necessary business decisions related to the project.
XP Roles
2. Programmers or developers are the team members
that actually create the product. They are responsible for
implementing user stories and conducting user tests
(sometimes a separate Tester role is set apart). Since XP
is usually associated with cross-functional teams, the
skill set of such members can be different.
XP Roles
3. Trackers or managers link customers and developers. It’s not
a required role and can be performed by one of the developers.
These people organize the meetups, regulate discussions, and
keep track of important progress KPIs.
4. Coaches can be included in the teams as mentors to help with
understanding the XP practices. It’s usually an outside assistant or
external consultant who is not involved in the development
process, but has used XP before and so can help avoid mistakes.