+ All Categories
Home > Software > eXtreme programming (XP) - An Overview

eXtreme programming (XP) - An Overview

Date post: 31-Oct-2014
Category:
Upload: gurtej-singh
View: 339 times
Download: 6 times
Share this document with a friend
Description:
eXtreme programming (XP) - An Overview
Popular Tags:
31
<eXtreme Programming (XP)> An Overview 08 April 2014
Transcript
Page 1: eXtreme programming (XP) - An Overview

<eXtreme Programming (XP)>

An Overview

08 April 2014

Page 2: eXtreme programming (XP) - An Overview

01 What is XP?02 Why XP?03 How and Who? : Roles and Practices in XP04 Q & A

Page 3: eXtreme programming (XP) - An Overview

− Extreme Programming was created by Kent Beck, Ward Cunningham & Ron Jeffries in 1996.

What is Extreme Programming (XP) ?

Kent Ward Ron

Page 4: eXtreme programming (XP) - An Overview

“XP is a style of software development focusing on excellent application ofprogramming techniques, clear communication, and teamwork which allows us toaccomplish things we previously could not even imagine.”

-Extreme Programming Explained: Embrace Change, Second Edition

− "Extreme" means the practices get "turned up" to a much higher "volume"than on traditional projects.

What is Extreme Programming (XP) ?

Page 5: eXtreme programming (XP) - An Overview

− Problems:− Freeze all the requirements before starting design & development

− Resist changes: It will lengthen schedule

− Build a change control process to ensure that proposed changes are looked at carefullyand no change is made without intense scrutiny

− Increase the delay in Delivery and the Delivered product is obsolete on release

Why Extreme Programming (XP) ?

Page 6: eXtreme programming (XP) - An Overview

− XP recognizes that:

− All requirements will not be known at the beginning

− Requirements will change

− Use tools to accommodate change as a natural process

− Do the simplest thing that could possibly work and refactor.

− Emphasize values and principles rather than process

Why Extreme Programming (XP) ?

Page 7: eXtreme programming (XP) - An Overview

− Some other Benefits:− As a Programmer:

− Get clear requirements & priorities− Do a better job & make technical decisions− Don’t work overtime− Get accurate & timely feedback

− Customers:− Get highest valued business item first− Make informed business decisions− If there is any need of change that can be communicated and implemented

Why Extreme Programming (XP) ?

Page 8: eXtreme programming (XP) - An Overview

− Simplicity:

The Values of Extreme Programming

Page 9: eXtreme programming (XP) - An Overview

− Communication

The Values of Extreme Programming

Page 10: eXtreme programming (XP) - An Overview

− Feedback

The Values of Extreme Programming

Page 11: eXtreme programming (XP) - An Overview

− Respect

The Values of Extreme Programming

Page 12: eXtreme programming (XP) - An Overview

− CourageThe Values of Extreme Programming

Page 13: eXtreme programming (XP) - An Overview

− The Whole Team:− Cross-functional team which can fulfill all the team’s roles.− XP teams sit together in an open workspace.− At the beginning of each iteration, the team meets for a series of activities: an

iteration demo, a retrospective, and iteration planning.− This self-organization is a hallmark of agile teams.

Roles in XP

Page 14: eXtreme programming (XP) - An Overview

− On-Site Customer:− On-site customer — often just called customer — is responsible for defining the software

the team builds.− Typically, product managers, domain experts and business analysts play the role of the

on-site customer.− Customers:

− Evangelize the project’s vision− Identify features and stories− Coordinating with Team and playing the planning game

− Customers themselves act as living requirements documents and providing it as needed− Customers help communicate requirements by creating mock-ups, reviewing work in

progress, and creating detailed customer tests that clarify complex business rules.

Roles in XP

Page 15: eXtreme programming (XP) - An Overview

− Coach:− A coach’s enables the team to succeed.− Coaches help the team by arranging for a shared workspace and making sure that the

team includes the right people.− Coach help in setting up conditions for energized work, and assist the team in creating

an informative workspace.− Coaches help the team to interact with the rest of the organization. Coaches take

responsibility for any reporting needed.− Coaches also help the team members maintain their self-discipline

Roles in XP

Page 16: eXtreme programming (XP) - An Overview

Fine scale feedback:• Planning game• Pair programming• Test driven development• Whole team

Shared understanding:• Coding standard• Collective code ownership• Simple design• System metaphor

Continuous process:• Continuous integration• Design improvement• Small releases

Programmer welfare:• Sustainable pace

Practices in XP

Page 17: eXtreme programming (XP) - An Overview

− The Planning Process : The main planning process within extreme programming iscalled the Planning Game.− It is a meeting that occurs once per iteration, typically once a week.− The desired features of the software, which are communicated by the customer, are

combined with estimates provided by the programmers to determine what the mostimportant factors of the software are.− Business writes a story describing desired functionality− Stories are written on index cards− Development estimates stories− Velocity determines number of stories per iteration− Business splits and prioritizes stories and determines the composition of releases− Velocity is measured and adjusted every iteration− Customer steers development

Practices in XP

Page 18: eXtreme programming (XP) - An Overview

− Pair Programming :Practices in XP

Page 19: eXtreme programming (XP) - An Overview

− Pair Programming - All code is written by two programmers working at the same machine.− Two roles: implementation(Driver) and strategy(Navigator)− Driver has control over the workstation and is thinking mostly about the coding in detail.− Navigator is more focused on the big picture, and is continually reviewing the code that

is being produced by Driver.− Benefits:

− Continuous code review: better design, fewer defects− Collective code ownership− Discipline to always test and refactor− Learn from partner’s knowledge and experience (enhances technical skills)

"Don't be afraid of Pair-Programming. You are not as good as you think , but your not as bad as you fear” - RonJeffries

Practices in XP

Page 20: eXtreme programming (XP) - An Overview

− Test Driven Development – Testing is done consistently throughout the process.− Unit Testing− Test Driven Development (TDD)− Acceptance Test Driven Development (ATDD)

− Programmers design the tests first and then write the software to fulfill the requirementsof the test.

− XP says that the programmer is finished with a certain piece of code when he or shecannot come up with any further condition on which the code may fail.

− The customer also provides acceptance tests at each stage to ensure the desired resultsare achieved.

Practices in XP

Page 21: eXtreme programming (XP) - An Overview

− Whole Team (On-Site Customer) - The XP project is directed by the customer who isavailable all the time to answer questions, set priorities and determine requirements of theproject.

− And also defines the tests for “Acceptance Test driven development” (ATDD).

− Within XP, the "customer" is not the one who pays the bill, but the one who really usesthe system.

Practices in XP

Page 22: eXtreme programming (XP) - An Overview

− Continuous Integration (CI) - The XP team integrates and builds the software systemmultiple times per day to keep all the programmers at the same stage of the developmentprocess at once.− It ensures that team is always working on the latest version of the software.− Continuous integration will avoid delays later on in the project cycle, caused by

integration problems.− There are various tools, some of these are:

− Hudson− Jenkins− Cruise Control− Bamboo

Practices in XP

Page 23: eXtreme programming (XP) - An Overview

− Design Improvement (Refactoring) - XP programmers improve the design of thesoftware through every stage of development instead of waiting until the end of thedevelopment and going back to correct flaws.− XP advocates to refactor your code by changing the architecture, making it simpler and

more generic without changing the functionality.− Continuously improve quality of the code− Improves Performance & Readability− Inbuilt practices of Unit Testing/TDD and Pair Programming give courage

Practices in XP

Page 24: eXtreme programming (XP) - An Overview

− Small Releases (Continuous Delivery) – The software is developed in small stagesthat are updated frequently.− It helps the customer to gain confidence in the progress of the project.− It helps maintain the concept of the whole team as the customer can now come up with his

suggestions on the project based on real experience.

Practices in XP

Page 25: eXtreme programming (XP) - An Overview

− Coding Standard - The programmers all write code in the same way. This allows them towork in pairs and to share ownership of the code.− Coding standard is an agreed upon set of rules that the entire development team agree to adhere to

throughout the project.− The standard specifies a consistent style and format for source code, within the chosen programming

language, as well as various programming constructs and patterns that should be avoided in order toreduce the probability of defects.

Practices in XP

Page 26: eXtreme programming (XP) - An Overview

− Collective Code Ownership - Every line of code belongs to every programmer working onthe project, so there are no issues of proprietary authorship to slow the project down, in turn,means that everybody is allowed to change any part of the code.− Pair programming contributes to this practice.− Collective ownership speeds up the development process, because if an error occurs in the code any

programmer may fix it.

Practices in XP

Page 27: eXtreme programming (XP) - An Overview

− Simple Design :− Do the simplest thing that could possibly work− Programmers should take a "simple is the best" approach to software design.− Refactoring should also be used, to make complex code simpler.− The software should include only the code that is necessary to achieve the desired results

communicated by the customer at each stage in the process.− The emphasis is not on building for future versions of the product− No duplicate code.− Fewest possible classes and methods

Practices in XP

Page 28: eXtreme programming (XP) - An Overview

− System Metaphor - All members of an XP team use common names and descriptions toguide development and communicate on common terms.− It's a naming concept for classes/methods that should make it easy for a team member to guess the

functionality of a particular class/method, from its name only.− It is a story that everyone - customers, programmers, and managers - can tell about how the system

works.

Practices in XP

Page 29: eXtreme programming (XP) - An Overview

− Sustainable Pace (40-Hour Week) - The XP team does not work excessive overtime toensure that the team remains well-rested, alert and effective.− Key enabler to achieve sustainable pace is frequent code-merge, continuously integrated and always

executable & test covered high quality code.− The intense collaborative way of working within the team drives a need to recharge over weekends.

Practices in XP

Page 30: eXtreme programming (XP) - An Overview

References:http://xprogramming.com/book/whatisxp/http://en.wikipedia.org/wiki/Extreme_programminghttp://www.extremeprogramming.org/values.htmlhttp://en.wikipedia.org/wiki/Extreme_programming_practicesResources:http://www.junit.orghttp://www.xprogramming.comhttp://www.extremeprogramming.orghttp://www.refactoring.comhttp://www.pairprogramming.comBook: Scrum & XP from Trenches

References & Resources

Page 31: eXtreme programming (XP) - An Overview

Gurtej Pal [email protected] # +91-99991-79795Extn. # 2778

</eXtreme Programming (XP)>


Recommended