24
1 Copyright © 2000-2001 RoleModel Software, Inc. eXtreme Programming Ken Auer [email protected] Roy Miller [email protected] RoleModel Software Holly Springs, NC 919-557-6352 http://www.rolemodelsoft.com

eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

1Copyright © 2000-2001

RoleModel Software, Inc.

eXtreme Programming

Ken Auer [email protected]

Roy [email protected]

RoleModel SoftwareHolly Springs, NC919-557-6352http://www.rolemodelsoft.com

Page 2: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

2 Copyright 2001-2002 RoleModel Software, Inc.

The Joy of Software

To change HardwareSoldering IronScrewdriversChange PCB

To change SoftwareJust change some symbols

Page 3: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

3 Copyright 2001-2002 RoleModel Software, Inc.

The Reality of Software

Cost of Making Changes

Time

Lots of assumptions/dependenciesThe steep part of the curve stinks!How do we avoid life there?

Page 4: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

4 Copyright 2001-2002 RoleModel Software, Inc.

BDUF? (Big Design Up Front)

Cost of Making Changes

TimeAnalysis Design Coding Testing

Theory:Find errors faster

Design is critical, but why do it all up front?Have a picture of the horizon, but haven’t gotten any closer to it

If you lived here, you’d be home by now!

Page 5: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

5 Copyright 2001-2002 RoleModel Software, Inc.

* Some content supplied by Jim Highsmith, “Adaptive Software Development”

Basic Misunderstanding

Documentation is not understandingOne study of typical requirements documents: 15% complete, 7% correct, not cost effective to increase (Source: Elemer Magaziner)

Formality is not disciplineWhat happens when you apply good rules at the wrong timeConsistently signing a document is not the same as consistently reflecting on whether you are doing the best thing What if people “cheat”?

Process is not skill, especially when innovating!You can’t “code by number”

Page 6: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

6 Copyright 2001-2002 RoleModel Software, Inc.

The Wrong Model

“Do It Right the First Time” sends wrong message and causes bad behaviorWe can’t

be uncertainexperimentlearn from mistakesdeviate from plan

“Don’t worry about getting it right the first time, get it right the last time.”

Envision-Explore, not Plan-Do

* Some content supplied by Jim Highsmith, “Adaptive Software Development”

Page 7: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

7 Copyright 2001-2002 RoleModel Software, Inc.

C - Adaptation

Relying on a plan can produce the product you intended, just not the product you need.

It assumes you were smarter when you started and didn’t learn anything along the way

Speculate-Collaborate-Learn

* Some slide content supplied by Jim Highsmith, “Adaptive Software Development”

B - Planned ResultA - Start

Page 8: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

8Copyright © 2000-2001

RoleModel Software, Inc.

Words of Wisdom

Paul MacCready on Innovation and Competitive Advantage

Page 9: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

9 Copyright 2001-2002 RoleModel Software, Inc.

A Better Approach

Demands and depends on collective understanding, discipline, and skillLeverages learningLets you go fastLets business drive (really)Lets design/systems evolve over time, at relatively low costPreserves option to changeReduces the total cost of ownership of systems

Page 10: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

10 Copyright 2001-2002 RoleModel Software, Inc.

Dee Hock--former CEO Visa

“Simple, clear purpose and principles give rise to complex, intelligent

behavior.”

“Complex rules and regulations give rise to simple, stupid behavior.”

Page 11: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

11 Copyright 2001-2002 RoleModel Software, Inc.

What XP Is*

“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by bringing the whole team together in the presence of simple

practices, with enough feedback to enable the team to see where they are and to tune

the practices to their unique situation.”* http://xprogramming.com/xpmag/whatisXP.htm

Page 12: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

12 Copyright 2001-2002 RoleModel Software, Inc.

Extreme Programming

One Team that shares core values andworks toward a sound business assetknows where it isleverages its learningembraces three fundamental roles⌧“Developers” estimate cost⌧“Customers” decide priorities⌧“Management” facilitates relationship in a context

Turns “best practice” knobs up to 10

Page 13: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

13 Copyright 2001-2002 RoleModel Software, Inc.

The Four Values

SimplicityOAOO: Once And Only OnceTSTTCPW: The Simplest Thing That Could Possibly Work

Communication: developers and business peopleFeedback: the earlier the betterCourage: don’t be afraid to write code, change code, or throw away code

Page 14: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

14 Copyright 2001-2002 RoleModel Software, Inc.

What the Values Mean

Customer Value… results vs. plausible deniability

Collaboration… innovation through group interaction vs. individual heroics

Adaptation… embracing change vs. “change control”

Minimalism…simplicity vs. “all things to all people”

Page 15: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

15 Copyright 2001-2002 RoleModel Software, Inc.

Twelve Original Practices

The Planning Game(Split Business & Technical)Small ReleasesMetaphorSimple DesignTestingRefactoring

Pair ProgrammingCollective OwnershipContinuous Integration40 Hour WeekOn Site CustomerCoding Standard

Page 16: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

16 Copyright 2001-2002 RoleModel Software, Inc.

Revised(?) Practices

JointShort IterationsCommon VocabularyOpen WorkspaceReflection

DevelopmentTest-first ProgrammingPair ProgrammingRefactoringCollective OwnershipContinuous IntegrationJust-in-time Design

ManagementAppropriate ResponsibilityDiplomacy(Quarterly) ReviewReality CheckingSustainable Pace

CustomerStory TellingRelease PlanningAcceptance TestsFrequent Releases

Page 17: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

17 Copyright 2001-2002 RoleModel Software, Inc.

XP Software Studio™

Page 18: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

18 Copyright 2001-2002 RoleModel Software, Inc.

The Customer Drives

Page 19: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

19 Copyright 2001-2002 RoleModel Software, Inc.

What’s up?

Page 20: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

20 Copyright 2001-2002 RoleModel Software, Inc.

Will The Tests Pass?

Page 21: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

21 Copyright 2001-2002 RoleModel Software, Inc.

Design is Crucial… Do it Daily

Page 22: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

22 Copyright 2001-2002 RoleModel Software, Inc.

I Heard It Through The Pairvine

Page 23: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

23 Copyright 2001-2002 RoleModel Software, Inc.

Can You Take XP Seriously?

“I predict that Kent Beck and his XP movement will be as much a symbol of our times as Watts Humphry and the CMM were a symbol of the eighties and early nineties.”

Tom DeMarcoCutter Report on Light Methodologies

“XP is not an option… it’s a requirement.”Kevin TysonCTO, Netfolio

Page 24: eXtreme Programming - NCSU COE People“Extreme Programming is a discipline of software development based on values of simplicity, communication, feedback, and courage. It works by

24 Copyright 2001-2002 RoleModel Software, Inc.

XP - The Big Picture

Poor responsiveness to learning and poor practices both lead to steep curve BDUF doesn’t flatten the curve

Attempts to reduce how often you are bittenAdds costly artifacts at expense of real progress

XP helps push the curve downLeverages learning Move more confidently Move faster for longer