extreme programming in agile development
DESCRIPTION
TRANSCRIPT
Extreme Programming in Agile Development
Presented by:Nidhi Singh
o Waterfall Model required a complete analysis of user requirements.
Months of intense interaction with users and customers
programmers implement and the complete system is tested and shipped.
Why a need for agile development?
oBut users change their minds.
After months, of collecting requirements users still not sure of what hey want.
Requirements tend to change mid-development and difficult to stop the momentum of the project to accommodate the change.
Copious amounts of documentation need to be kept up to date to accommodate even small changes
o CMM focuses on turning software development into repeatable, defined, and
predictable processes, but were found that many of them were, in fact,
largely unpredictable and unrepeatable because
Applicable first principles are not present. The process is only beginning to be understood.
The process is complex. The process is changing and unpredictable.
Agile is response to change.
Charecterized by quickness and ease of movements; Nimble
What is Agile
Individuals and interactions over processes and tools.
Working software over comprehensive documentation.
Customer collaboration over contract negotiation.
Responding to change over following a plan.
Agile Manifesto
Designed to focus on four things:◦Coding, Testing, Listening, Designing
Feedback is built into the development practices, not bolted on.
No phases: you do all four of those things all the time.
Extreme Programming
What does lack of communication do to projects?
XP emphasizes value of communication in many of its practices: • On-site customer, user stories, pair programming, collective ownership (popular with open source developers), daily standup meetings, etc.
•
Communication
''Do the simplest thing that could possibly work'' (DTSTTCPW) principle.(Elsewhere known as KISS)
A coach may say DTSTTCPW when he sees an XP developer doing something needlessly complicated
YAGNI principle (''You ain’t gonna need it'')
How do simplicity and communication support each other?
Simplicity
Feedback at different time scalesUnit tests tell programmers status of the system
When customers write new user stories, programmers estimate time required to deliver changes
Programmers produce new releases every 2-3 weeks for customers to review
How does valuing feedback turn the waterfall model upside down?
Feedback
The courage to communicate and accept feedback
The courage to throw code away (prototypes)
The courage to refactor the architecture of a system
Do you have what it takes?
Courage
XP Practices- a road map
XP emphasizes iteration
Test driven plan
Extreme programming includes practices such as systematic testing, continuous improvement and customer involvement.
Customers are involved in developing requirements which are expressed as simple scenarios.
The approach to testing in XP is a particular strength where executable tests are developed before the code is written.
Key problems with XP include difficulties of getting representative customers and problems of architectural design.
KeyPoints
Thank you