Agile
methodology has become extremely popular in the arena of software development
due to its non-conventional and innovation based approach. Extreme programming
is a method of the agile development model with focus on engineering mechanisms
for software programming. This article explores the concept of extreme
programming (XP) which lays emphasis on flexibility and return to investment.
More developers
have realized that greater value can be delivered to the business as well as
the concerned stakeholders. However, this is only when flexibility and change
is incorporated in the software development process. The process termed as
agile methodology focuses on a high degree of team collaboration,
communication, and incremental release. This process is flexible to accommodate
variation in requirements along the development and initiative within the team
to innovate and remain self-motivated (1)
Introducing
XP
A form of agile
development methodology, extreme programming (XP), was developed by Kent Beck
in the 1990s, and lays special focus on the engineering procedures. Kent has
described extreme programming as a progression of idea which moves from broad
and abstract values through a series of principles to a specific engineering
practice. It differs from other agile processes which influence project
management, continuous integration, paired programming, test driven
development, and refactoring, all of which together aim to enhance
code quality and reduce errors and defects in code.(2)
Paired
programming focuses on collaboration for improving code quality through peer
review. It also helps in knowledge sharing among new team members and enhances
team accountability. Test driven development (TDD) aims to cover the codes in
entirety for test automation and its scope is wider than the developer's unit
test. TDD is a continuous design mechanism as only the required feature as per
changing requirement is added through incremental delivery. It prevents any
loss of time and effort over unnecessary functionality development. Test driven
development encourages good design. Refactoring aims to improve code structure
without affecting the code nature. XP employs continuous integration and
evaluates all codes centrally with test automation. This is employed for the
entire system to ensure a high quality system in which the latest changes have
been incorporated.(3)
Framework of
Roles in Extreme Programming:(4)
Tracker reviews the issues of the
programmers, listens to them, and takes the necessary steps to check things
going awry. After that meetings are arranged between the various stakeholders
(developer, customer, and coach).
Customers should either be part of the development
team or remain available for constant communication. The customer emphasizes
business requirements, provides user stories, directs over functional tests,
and prioritizes the features for release. The customer provides the acceptance
tests that ensure the stories have been integrated into the system.
Extreme
programmers make
an estimation of the user stories in terms of time taken for task completion.
They also define the engineering practices and implement the tasks and unit
tests.
Testers carry test automation of features
and functions and prepare the test result for feedback.
Coaches arrange and hold meetings related
to the iteration plan, schedules, records, meeting minutes for future
reference, and feedback. The coach collaborates with the tracker and act as a
mentor for the team.
Core Values
of Extreme Programming (5)
- High level of communication and
collaboration between the team enables speedy responses to changing
requirements, ensuring a high quality project.
- Continuous customer feedback to
deliver as per customer requirements for high customer satisfaction.
- Focus on software development as an
evolving process.
- Maintaining simplicity while
meeting project requirements.
- Ability to remain flexible and
bring changes to the project and deliver high quality.
- Maintain a sustainable pace and do
not work over time to prevent team exhaustion. (The focus should be on
moderation and not a hectic crowded schedule).
- Collective ownership of the code
allows any team member to change the code. This should be effectively
communicated to the rest of the team.
Issues and
Advocacy Surrounding XP
Paired
programming is deemed as a costly deployment of the programming staff that can
otherwise be deployed for working individually in separate areas. The flexible
and iterative nature of development, without thorough documentation and changes
being applied by any developer makes it vulnerable. The code can be hacked and
if changes are made to the code without the same being properly communicated to
the team, issues might arise.
XP advocates
stress that the various facets of engineering practices make it a highly
disciplined approach. XP is focussed on delivering the maximum business value
as per customer requirements. It also focuses on maintaining thorough code
quality, which justifies the cost of the engineering practices.. Over the years
extreme programming is being adopted and becoming popular. For greater
adoption, success cases need to be highlighted along with proper coaching and
mentoring of programming and business professionals who constitute the
development teams.
Article Source: http://EzineArticles.com/8966540