Friday, September 12, 2014

XP - The Whole Team

XP Team (The Whole Team)

 

 

XP believe in cross-functional teams composed of diverse people who can fulfill all the team's roles.

XP teams sit together in an open workspace. The team also meets for daily stand-up meetings, an iteration demo, a retrospective, and iteration planning

 

XP Team consists of many roles:

 

 

Note: You do not have to be one person for each role - Some people can fill multiple roles.

 

1). On-Site Customers - Typically Product Manager, Domain Experts, Interaction Designers or BA

 

1.     Release Planning

2.     User Story Creation - Identify Features & Stories

3.     Define Project Vision

4.     Business Decision

5.     Clarify Business Rules

6.     Customer Test

7.     Creating Mock Up.

8.     Managing Risk

9.     Playing Planning Game

10.  Weekly Iteration Demo

 

Typically, product managers, domain experts, interaction designers, and business analysts play the role of the on-site customer.

 

2). Product Manager (aka Product Owner)

 

1.     Maintain and Promote Product Vision

2.     Generating Features And Stories,

3.     Setting Priorities For Release Planning,

4.     Providing Direction For The Team's On-Site Customers,

5.     Reviewing Work In Progress,

6.     Leading Iteration Demos,

7.     Involving Real Customers, and

8.     Dealing With Organizational Politics

 

In addition to vision, PM must have the authority to make difficult trade-off decisions about what goes into the product and what stays out.

She must have the political savvy to align diverse stakeholder interests, consolidate them into the product vision, and effectively say “No” to wishes that can't be accommodated.

 

3). Domain experts (aka SME)

 

Domain experts spend most of their time with the team, figuring out the details of upcoming stories and standing ready to answer questions when programmers ask.

For complex rules, they create customer tests (often with the help of testers) to help convey nuances.

 

4). Interaction designers

 

Help define the Product UI & create Mock-Ups of UI elements. Their job focuses on understanding users, their needs, and how they will interact with the product.

 

They perform such tasks as

·         Interviewing Users,

·         Creating User Personas,

·         Reviewing Paper Prototypes with users, and

·         Observing Usage Of Actual Software.

 

5). Business Analysts

 

On an XP team, BA augment a team that already contains a product manager and domain experts.

 

The analyst continues to clarify and refine customer needs, but the analyst does so in support of the other on-site customers, not as a replacement for them.

Analysts helps in clarifying & refining customer needs into 'Functional Requirement Specification'.

 

 

6). Programmers

 

The bulk of the XP team consists of software developers in a variety of specialties. Each of these developers contributes directly to creating working code.

To emphasize this, XP calls all developers programmers.

 

XP Include between 4 and 10 programmers. In addition to the usual range of expertise, be sure to include at least one senior programmer, designer, or architect who has significant design experience and is comfortable working in a hands-on coding environment. This will help the team succeed at XP’s incremental design and architecture.

 

Programmers spend most of their time :

 

·         Pair Programming.

·         Write Tests using TDD,

·         Implement Code,

·         Code Refactoring

·         Incrementally Design and Architect the application.

·         Keenly aware of technical debt.

·         Effort Estimates, Suggest Alternatives

·         Playing The Planning Game

·         Maintain A Ten-Minute Build

·         Use Version Control and

·         Practice Continuous Integration

·         Ensure Long-Term maintainability, by providing documentation.

 

 

 

7). Designers and Architects

 

They contribute by guiding the team’s incremental design and architecture efforts and by helping team members see ways of simplifying complex designs.

They act as peers—that is, as programmers—rather than teachers, guiding rather than dictating.

 

8). Technical Specialists

 

XP programmers are generalizing specialists - Database Designer, Security Expert, Or Network Architect.

Although each person has his own area of expertise, everybody is expected to work on any part of the system that needs attention.

 

 

9). Testers

 

Testers help XP teams produce quality results from the beginning.

They help customers identify holes in the requirements and assist in customer testing.

 

Testers also act as technical investigators for the team.

They use Exploratory Testing to help the team identify whether it is successfully preventing bugs from reaching finished code.

Testers also provide information about the software's nonfunctional characteristics, such as performance, scalability, and stability, by using both exploratory testing and long-running Automated Tests.

 

XP Automates Regression Testing rather than performing manual regression testing.

 

Note:

 

Some XP teams don't include dedicated testers. If you don't have testers on your team, programmers and customers should share this role.

XP believes rather than relying on testers to find bugs for programmers to fix, the team should produce nearly bug-free code on their own.

 

 

10). Coaches

 

XP leaders lead by example, helping the team reach its potential rather than creating jobs and assigning tasks.

To emphasize this difference, XP leaders are called coaches.

 

Coaches help the team start their process by arranging for a shared workspace and making sure that the team includes the right people.

They help set up conditions for energized work, and they assist the team in creating an informative workspace.

One of the most important things the coaches can do is to help the team interact with the rest of the organization.

 

 

11). The Programmer-Coach

 

·         Senior Developers / Technical Lead / Architect

·         They can even be Functional Managers

·         also act as normal programmers and participate fully in software development

 

12). The Project Manager

 

Lack Technical Expertise. Help the team work with the rest of the organization.

They are usually good at coaching non-programming practices.

 

 

Hope this helps.

 

Regards,

Arun

Friday, September 5, 2014

XP - The Whole Team

XP Team (The Whole Team)

 

 

XP believe in cross-functional teams composed of diverse people who can fulfill all the team's roles.

XP teams sit together in an open workspace. The team also meets for daily stand-up meetings, an iteration demo, a retrospective, and iteration planning

 

XP Team consists of many roles:

 

 

Note: You do not have to be one person for each role - Some people can fill multiple roles.

 

1). On-Site Customers

 

1.     Release Planning

2.     User Story Creation

3.     Customer Test

4.     Business Decision

5.     Managing Risk

6.     Playing Planning Game

 

Typically, product managers, domain experts, interaction designers, and business analysts play the role of the on-site customer.

 

2). Product Manager (aka Product Owner)

 

1.     Maintain and Promote Product Vision

2.     Generating Features And Stories,

3.     Setting Priorities For Release Planning,

4.     Providing Direction For The Team's On-Site Customers,

5.     Reviewing Work In Progress,

6.     Leading Iteration Demos,

7.     Involving Real Customers, and

8.     Dealing With Organizational Politics

 

In addition to vision, PM must have the authority to make difficult trade-off decisions about what goes into the product and what stays out.

She must have the political savvy to align diverse stakeholder interests, consolidate them into the product vision, and effectively say “No” to wishes that can't be accommodated.

 

3). Domain experts (aka SME)

 

Domain experts spend most of their time with the team, figuring out the details of upcoming stories and standing ready to answer questions when programmers ask.

For complex rules, they create customer tests (often with the help of testers) to help convey nuances.

 

4). Interaction designers

 

Help define the Product UI & create Mock-Ups of UI elements. Their job focuses on understanding users, their needs, and how they will interact with the product.

 

They perform such tasks as

·         Interviewing Users,

·         Creating User Personas,

·         Reviewing Paper Prototypes with users, and

·         Observing Usage Of Actual Software.

 

5). Business Analysts

 

On an XP team, BA augment a team that already contains a product manager and domain experts.

 

The analyst continues to clarify and refine customer needs, but the analyst does so in support of the other on-site customers, not as a replacement for them.

Analysts help customers think of details they might otherwise forget and help programmers express technical trade-offs in business terms.

 

 

6). Programmers

 

The bulk of the XP team consists of software developers in a variety of specialties. Each of these developers contributes directly to creating working code.

To emphasize this, XP calls all developers programmers.

 

XP Include between 4 and 10 programmers. In addition to the usual range of expertise, be sure to include at least one senior programmer, designer, or architect who has significant design experience and is comfortable working in a hands-on coding environment. This will help the team succeed at XP’s incremental design and architecture.

 

Programmers spend most of their time :

 

·         Pair Programming.

·         Write Tests using TDD,

·         Implement Code,

·         Code Refactoring

·         Incrementally Design and Architect the application.

·         Keenly aware of technical debt.

·         Effort Estimates, Suggest Alternatives

·         Playing The Planning Game

·         Maintain A Ten-Minute Build

·         Use Version Control and

·         Practice Continuous Integration

 

 

7). Designers and Architects

 

They contribute by guiding the team’s incremental design and architecture efforts and by helping team members see ways of simplifying complex designs.

They act as peers—that is, as programmers—rather than teachers, guiding rather than dictating.

 

8). Technical Specialists

 

XP programmers are generalizing specialists - Database Designer, Security Expert, Or Network Architect.

Although each person has his own area of expertise, everybody is expected to work on any part of the system that needs attention.

 

 

9). Testers

 

Testers help XP teams produce quality results from the beginning.

They help customers identify holes in the requirements and assist in customer testing.

 

Testers also act as technical investigators for the team. They use Exploratory Testing to help the team identify whether it is successfully preventing bugs from reaching finished code.

Testers also provide information about the software's nonfunctional characteristics, such as performance, scalability, and stability, by using both exploratory testing and long-running Automated Tests.

 

XP Automates Regression Testing rather than performing manual regression testing.

 

Note:

 

Some XP teams don't include dedicated testers. If you don't have testers on your team, programmers and customers should share this role.

XP believes rather than relying on testers to find bugs for programmers to fix, the team should produce nearly bug-free code on their own.

 

 

10). Coaches

 

XP leaders lead by example, helping the team reach its potential rather than creating jobs and assigning tasks.

To emphasize this difference, XP leaders are called coaches.

 

Coaches help the team start their process by arranging for a shared workspace and making sure that the team includes the right people.

They help set up conditions for energized work, and they assist the team in creating an informative workspace.

One of the most important things the coaches can do is to help the team interact with the rest of the organization.

 

 

11). The Programmer-Coach

 

·         Senior Developers / Technical Lead / Architect

·         They can even be Functional Managers

·         also act as normal programmers and participate fully in software development

 

12). The project manager

 

Help the team work with the rest of the organization.

They are usually good at coaching non-programming practices.

 

 

Hope this helps.

 

Regards,

Arun

XP - Life Cycle

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