XP Life Cycle
XP teams perform nearly every software development activity  simultaneously.  Analysis, Design, Coding, Testing, and even Deployment occur with rapid frequency.
That's a lot to do simultaneously. 
XP does it by working in iterations: week-long  increments of work.
Every week, the team does a bit of release planning, a bit of  design, a bit of coding, a bit of testing, and so forth. 
They work on stories: very small features, or parts of features,  that have customer value. 
Every week, the team commits to delivering four to ten stories. Throughout the week,  they work on all phases of development for each story. 
At the end of the week, they deploy their software for internal  review.
(In some cases, they deploy it to actual customers.)
Planning - Planning Game
Every XP team includes several business experts—the on-site  customers—who are responsible for making business decisions.
On-Site Customers point the project in the right  direction by:
·          Clarifying Project Vision, 
·          Creating Stories, 
·          Constructing Release Plan, and 
·          Managing Risks. 
Programmers provide Estimates &  Suggestions, which are blended with customer priorities in a process called the  Planning Game.
Together, the team strives to create small, frequent releases that  maximize value. 
Analysis
Rather than using an upfront analysis phase to define  requirements, on-site customers sit with the team full-time. 
On-site customers are responsible for figuring out the  requirements for the software.
Customers are responsible for organizing their work so they are  ready when programmers ask for information. 
They figure out the general requirements for a story before the  programmers estimate it and the detailed requirements before the programmers  implement it.
Some requirements are tricky or difficult to understand. Customers  formalize these requirements, with the assistance of testers, by creating Customer Tests:  detailed, automatically checked examples. 
Customers and Testers  create the customer tests for a story around the same time that  programmers implement the story. 
For the UI, customers work with the team to create sketches of the  application screens. 
In some cases, customers work alongside programmers as they use a  UI builder to create a screen. 
Design and Coding
XP uses Incremental  Design And Architecture to continuously create and improve the design in  small steps. 
This work is driven by Test-Driven Development (TDD), an activity that  inextricably weaves together testing, coding, design, and architecture. 
To support this process, programmers work in pairs, and ensures that  one person in each pair always has time to think about larger design issues. 
Programmers are also responsible for managing their development  environment. They use a version  control system for configuration management and maintain their own automated build. 
Programmers do continuous  integration every few hours and ensure that every integration is  technically capable of deployment. 
To support this effort, programmers also maintain coding standards and  share ownership of the code. 
The team shares a joint aesthetic for the code, and everyone is  expected to fix problems in the code regardless of who wrote it.
Testing
XP includes a sophisticated suite of testing practices. 
Each member of the team—Programmers,  Customers, And Testers—makes his own  contribution to software quality. 
Well-functioning XP teams produce only a handful of bugs per month  in completed work. 
Programmers provide the first line of defence with TDD. TDD produces  automated Unit & Integration  Tests. 
In some cases, programmers may also create End-To-End Tests. These tests help ensure that the software does what the  programmers intended. 
Likewise, Customer Tests help ensure that the  programmers intent matches customers expectations.
TDD and Customer Testing leads to a sophisticated suite of Automated Regression Tests.
Finally, testers help the team understand whether their efforts  are in fact producing high-quality code.
They use Exploratory  Testing to look for surprises and gaps in the software. 
When the testers find a bug, the team conducts Root-Cause Analysis and  considers how to improve their process to prevent similar bugs from occurring  in the future. 
Testers also explore the software non-functional characteristics,  such as performance and stability. Customers then use this information to  decide whether to create additional stories.
The team doesn’t perform any Manual Regression Testing. When bugs are found,  programmers create automated tests to show that the bugs have been resolved.  This suite is sufficient to prevent regressions. Every time programmers  integrate (once every few hours), they run the entire suite of regression tests  to check if anything has broken.
Deployment
XP teams keep their software ready to deploy at the end of any  iteration. They deploy the software to internal stakeholders every week in preparation  for the weekly iteration demo. 
Deployment to real customers is scheduled according to business  needs.
As long as the team is active, it maintains the software it has  released. In cases, a separate support team may take over. 
Similarly, when the project ends, the team may hand off  maintenance duties to another team. In this case, the team creates  documentation and provides training as necessary during its last few weeks.
Hope this helps.
Regards,
Arun

No comments:
Post a Comment