Agile Development - XP
by Ronni Kahalani, Copenhagen School of Design & Technology.
With inspiration from the book Software Engineering - A Practitioner's Approach.
eXtreme Programming (XP) is properly, the simplest and most widely used approach to agile software development.
Who am I?
Thank you for stopping by.
I’m Ronni. I hope you’re well and wish you a safe and worthy journey.
This presentation is part of the Software Engineering Series, from my lectures at Copenhagen School of Design & Technology.
You can view the Introducing Myself, if you want to know a little more about who I am.
All my presentations and materials are free and available at my blog post: Software Engineering.
Don’t let me uphold you,
continue your journey, go to next slide.
2
Agenda
eXtreme Programming
“The most widely used approach to agile software development”
EXtreme Programming
Ideas and methods associated with XP occurred during the late 1980s, the seminal work on the subject has been written by Kent Beck
A variant of XP, called “Industrial XP” (IXP), refines XP and targets the agile process specifically for use within large organizations
The XP Process
“The most widely used approach to agile software development”
The XP Process
The XP Process
Uses an object-oriented approach as its preferred development paradigm.
A set of rules and practices in the context of 4 framework activities.
XP Planning
Also called “Planning game” begins with listening…
Planning - Requirement gathering
Understand the business context leads to “User Stories” - Describes required output, features and functionality.
Planning
Customers and developers work together to decide how to group stories into the next “increment” to be developed.
Once a basic commitment (agreement on stories to be included, delivery date and other project matters) is made for a release.
The XP team orders the stories that will be developed in 1 of 3 ways:
Planning
After the first project release (increment) has been delivered, the XP team computes its project velocity, the number of customer stories implemented during the first release and it can be used to:
Planning
Customers can always:
The XP team then reconsiders all remaining releases and modifies its plans accordingly.
XP Design
Follows the KIS (keep it simple) principle.
Design
A simple design is always preferred over a more complex representation
Design provides implementation guidance for a story as it is written…�– nothing less, nothing more.
XP encourages the use of CRC cards is an effective mechanism for thinking in object-oriented context.
Design
CRC (class-responsibility-collaborator) cards:
Use operational prototype if a difficult design problem is encountered as part of the design of a story:
Design
XP encourages refactoring:
A central notion in XP is that design occurs both before and after coding commences - Construction activity itself will provide guidance on how to improve the design.
XP Coding
After stories are developed and preliminary design work is done� …the team does not move to code…
Coding -Test First Approach
Starts by creating accept criteria tests, using the TDD / Test-Driven-Development paradigm.
Once the code is complete, it can…
Coding – Pair Programming
A key concept during the coding activity is Pair Programming.
Provides a mechanism for real-time…
Each person takes on a slightly different role – Example:
Coding – Frequent Integration / Delivery
The code they develop is integrated with the work of others.
Continuous Integration (CI) strategy helps to…
XP Testing
Unit tests should be implemented, automated and executed easily and repeatedly.
Testing - Types
This encourages a regression testing strategy - Integration and validation testing of the system can occur on a daily basis
Wells states:
"Fixing small problems every few hours takes less time
than fixing huge problems just before the deadline.“
Acceptance tests / customer tests by the customer focus on overall system features and functionality that are visible and reviewable.
Acceptance tests are derived from user stories.
Industrial XP
Industrial Extreme Programming (IXP)
Differs most from the original XP by:
Industrial XP
Unit tests should be implemented, automated and executed easily and repeatedly.
Industrial XP
IXP incorporates 6 new practices to ensure that an XP project works successfully within a large organization:
In addition, IXP modifies a number of existing XP practices and redefines certain roles and responsibilities.
Questions?
Anything? What’s on your mind? Come on ask me anything…
Feedback?
Thank you for your precious time.
I hope it was worth it and would love to get your feedback.