20
eXtreme Programming A Practitioner's Approach

eXtreme Programming: A Practitioner's Approach

Embed Size (px)

DESCRIPTION

The slides for our presentation at BarCamp Saigon on 15th Nov 2008. For more information, please visit http://eastagile.com.

Citation preview

Page 1: eXtreme Programming: A Practitioner's Approach

eXtreme Programming

A Practitioner's Approach

Page 2: eXtreme Programming: A Practitioner's Approach

OutlineXP Overview

XP Values

XP Practices

XP FAQs

Demo

Q & A

Page 3: eXtreme Programming: A Practitioner's Approach

XP OverviewWhat is XP?

Nothing to do with Windows XP A software engineering methodology (a form of agile software development) prescribing a set of practices (aka XP best practices).A discipline of software development based on values of simplicity, communication, feedback, courage, and respect (Jeffries, 2001).A development process that is more responsive to customer needs ("agile") than traditional methods, while creating software of better quality (Wikipedia, 2008).

How to apply XP?

5 values12 best practices

Page 4: eXtreme Programming: A Practitioner's Approach

XP ValuesCommunication

Customer - DeveloperDeveloper - Developer

SimplicityStart with the simplest solution.Extra functionality can then be added later.

FeedbackFrom the systemFrom the customerFrom the team

CourageRefactoringPersistence

RespectRespect other team members' work

Page 5: eXtreme Programming: A Practitioner's Approach

XP PracticesThe Planning Game:

Release PlanningIteration Planning

Pivotal Tracker as XP Management Tool

Page 6: eXtreme Programming: A Practitioner's Approach

XP Practices

Stand-up meeting

Page 7: eXtreme Programming: A Practitioner's Approach

XP PracticesContinuous Testing

Unit / Functional tests applying Test Driven Development

Page 8: eXtreme Programming: A Practitioner's Approach

XP PracticesContinuous Testing

GUI test with Selenium

Page 9: eXtreme Programming: A Practitioner's Approach

XP PracticesContinuous Testing

Acceptance Test by customer

Page 10: eXtreme Programming: A Practitioner's Approach

XP PracticesPair Programming

Working environment

Page 11: eXtreme Programming: A Practitioner's Approach

XP PracticesPair Programming

Working in pair ...

Page 12: eXtreme Programming: A Practitioner's Approach

XP PracticesPair Programming

... and active participation

Page 13: eXtreme Programming: A Practitioner's Approach

XP PracticesOnsite Customer

Communicate via phone ...

Page 14: eXtreme Programming: A Practitioner's Approach

XP PracticesOnsite Customer

... via standard messenger software

Page 15: eXtreme Programming: A Practitioner's Approach

XP PracticesOnsite Customer

... and web-based real-time group chat tool

Page 16: eXtreme Programming: A Practitioner's Approach

XP PracticesSmall Release

System Metaphor

Simple Design

Refactoring

Collective Code Ownership

Continuous Integration

40-Hours Work Week

Coding Standards

Page 17: eXtreme Programming: A Practitioner's Approach

XP FAQs

How big a project will XP work with?

Won't pair programming cut productivity in half?

Isn't it annoying having someone looking over your shoulder while you program?

Why just pair programming? Why not 3 or 4 or 100 programmers?

Page 18: eXtreme Programming: A Practitioner's Approach

Demo

Pivotal Tracker: project management tool

Test Driven Development

Refactoring

Pair Programming

Ruby on Rails

Facebook

Page 19: eXtreme Programming: A Practitioner's Approach

ReferencesJeffries R., 2001, "XProgramming" . Available at: http://www.xprogramming.com/xpmag/whatisxp.htm [Accessed November 13th 2008]

Wikipedia, 2008, "Extreme Programming" . Available at: http://en.wikipedia.org/wiki/Extreme_Programming [Accessed November 13th 2008]

Brewer J., Design J., 2001, "Extreme Programming FAQ". Available at: http://www.jera.com/techinfo/xpfaq.html [Accessed November 13th 2008]

Wells D., 2006, "Extreme Rules" . Available at: http://www.extremeprogramming.org/rules.html [Accessed November 13th 2008]

Page 20: eXtreme Programming: A Practitioner's Approach

Q & A

(Source: http://forpd.ucf.edu/strategies/QUESTION.jpg)