extreme programming: collaboration for maximum impact in minimum time copyright 2002 by dale mills...

29
Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property of the authors. Permission is granted for this material to be shared for non-commercial, educational purposes, provided that this copyright statement appears on the reproduced materials and notice is given that the copying is by permission of the authors. To disseminate otherwise or to republish requires written permission by the authors.

Upload: junior-houston

Post on 24-Dec-2015

219 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Extreme Programming: Collaboration for Maximum Impact in Minimum Time

Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property of the authors. Permission is granted for this material to be shared for non-commercial, educational purposes, provided that this copyright statement appears on the reproduced materials and notice is given that the copying is by permission of the authors. To disseminate otherwise or to republish requires written permission by the authors.

Page 2: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Extreme Programming:

Collaboration for Maximum Impact in Minimum Time

Page 3: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Known Collaborators!

• CollegeNET, Inc.

• Cal Poly San Luis Obispo

• College of Lake County

• University of Richmond

• Dartmouth College

• Emory University

Page 4: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Our Primary Reference

Kent Beck, Extreme Programming Explained: Embrace Change,

Addison-Wesley, 2000; ISBN 201-61641-6

We highly recommend this book as a thought-provoking and fun read.

At present, www.amazon.com lists 18 other books on this subject, and a search of the web returns well over a half-million hits!

Page 5: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

“Extreme”??? Well, OK, maybe.

• Positive (and true) connotations• “edginess”/youthful vigor• nontraditional• speed• “traveling light”/mobility• requiring courage

• Negative (and false) connotations• elements of high risk/danger• excessiveness• special or advanced skills required

Page 6: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

So, what is Extreme Programming (“XP”)?

• “XP is a lightweight, efficient, low-risk, flexible, predictable, scientific and fun way to develop software” – Beck, p. xvii.

It is extremely dissimilar to other, more cumbersome, time-consuming, structured and safe methodologies, and it leaves behind the practices that waste time, energy and paper (i.e., money) in huge, detailed specification documents, timelines, and hopes of getting it “right” the first time.

Page 7: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

What is XP? (continued)

• A coherent set of time-tested, proven techniques which complement and support each other to the greatest possible degree.

• A streamlined method for delivering the right solution quickly and cost-effectively.

Page 8: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Where is XP best used?

• By small teams (2-10 developers)• Within a culture which doesn’t require “big specs”• Within a 40-hr/week programming work environment• When you don’t have to integrate what you’re doing

into existing non-XP applications• Where reasonably fast feedback is available, and

reasonably fast testing is possible• Where the physical layout of workspace permits

close collaboration between programmers (and visiting customers)

• Where you aren’t already in deep trouble on a project and searching for a miracle cure

Page 9: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

The Four Control Variables

Cost

ScopeQuality

Time

Page 10: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Who Calls the Shots?

• Business people• Priority of requested functionality• Scope and composition of releases• Dates of releases

• Technical people• Estimates• Advice regarding consequences of options• Definition and control of development process• Detailed scheduling

Page 11: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Traditional “Big Bang” Project

• Extensive requirements analysis• Business specification/requirements doc• Design document and coding specification• “Lather, rinse, repeat” (consecutively)

• Program coding• Unit testing• System testing• Beta/customer acceptance testing

• Eventual production release

Page 12: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Why Traditional Methods Avoid Change

The Exponential Cost Curve

Time

Cos

t of C

hang

e

Page 13: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

How would you act if the curve were (relatively) flat?

• You’d make big decisions as late as possible in the process, to defer costs and to wait until more is known so that you’re likelier to be “right”.

• At any given point, you’d only implement what you have to.

• You’d introduce new elements into the design only if they simplified the current code or made future development simpler.

(paraphrased from Beck, p. 24)

Page 14: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Keeping Your “Options” Open

• Option to abandon (salvaging whatever you can)

• Option to switch (changing courses mid-stream)

• Option to defer (postponing critical decisions until the facts are in)

• Option to grow (gracefully scaling up quickly)

Page 15: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

The Central Values of XP

• Communication

• Simplicity

• Feedback

• Courage

• Responsibility

• R-E-S-P-E-C-T

Page 16: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

XP Development Practices, Part 1• The Planning Game – quickly determine the scope of

a given release by combining business priorities and task estimates

• Small releases – put a simple system into production quickly; release new and improved versions on a short cycle

• Metaphor – create a simple, shared story which describes how the whole system works, so that all involved share “the vision thing”

• Simple (but not stupid!) design. (Probably has a modular structure to limit scope of changes).

Page 17: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

XP Development Practices, Part 2

• Testing – including heavy involvement by the customer during each cycle iteration. Automate the suite of tests so that they can be repeated frequently.

• Refactoring – embrace any opportunity to make changes to the system which leave its behavior unchanged but which enhance some non-functional quality (ease of use, flexibility, speed, simplicity of coding)

• On-site customer – keep the customer(s) actively involved in the process at all times

Page 18: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

XP Development Practices, Part 3

• Pair programming – Two programmers sit together at one desk, discuss the problem while coding, approaching the task from two very different perspectives

• Collective ownership – anyone can change any of the code at any time, and MUST do so if they see a way to improve it

• Coding standards – voluntarily-adopted rules and conventions emphasize communication through the code and help to minimize conflict/stress/confusion.

Page 19: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

XP Development Practices, Part 4

• Continuous integration – roll new code into the release-in-progress many times per day, as soon as a task is complete, running a full suite of tests each so that new bugs or integration problems are detected ASAP.

• 40-hour week – no more than 40 hours of work expected per week, as a rule. No O.T. required a second week in a row.

Page 20: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Management of an XP Project

• Metrics – “Big Visible Chart” as progress indicator, motivator

• Coaching – responsibility for the process as a whole; overseeing its technical execution and evolution while fostering communication, mentoring

• Tracking – gathering and publishing metrics; being the “conscience of the team”

• Intervention – hauling the process back on track where necessary, dealing with turnover, personnel conflicts, etc.

• Light touch – small adjustments here, too

Page 21: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

XP in Real Life

• The Players• Track Coach – keeps the system on track• Programmers• Customers – people who actually use the

system• Testers – Combo of Programmers,

Customers & Quality Control• Big “Little” Boss – Pushing the economics

of the process

Page 22: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Our Planning Game• October 2000

• Customer Group Developed• First meeting On-site• XP introduced• Wish list items from all users introduced• General functionality changes introduced• First projected release date July 1, 2001

• October – January 2001• Email Communication• Customer Group Web Site

• Updates of Internal Releases• Screen Shots

Page 23: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Game Plan Continued

• January through April 2001• Internal releases every 2 weeks• On-Site meetings for feedback & testing• April meeting release date pushed back by

customers to October, 2001

• July 2001• More on-site testing with actual databases

• July through October 2001• WebEx Sessions to discuss releases• BlackBoard Courses setup to facilitate discussion

Page 24: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

• October 2001• Begin Beta Testing • Testing to end by Thanksgiving

• Release Dates• Revised Release Based on Beta Testing -

End of Year 2001• First Production Release March 29, 2002• Future Point Releases will expand

functionality beyond original scope

Page 25: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Technical Tools Used

• Story Cards• Submitted throughout process

• Email Communication• Conference Calls• WebEx Sessions• BlackBoard Sites• Testing Databases• Feedback Forms

Page 26: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Human Factors – The Bonding

• Food• Play time• Socialization Off-Hours• Relationships Formed• Family Atmosphere• On-site Brainstorming Sessions

• Lots of whiteboards and erasers

• Customers being away from home!!

Page 27: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Benefits

• Customer Group• Broader understanding of

scheduling processes through interaction with different institutions

• Deeper appreciation of CollegeNet’s dedication to customers

• Understanding of the software development process

• CollegeNet• Better understanding of

campus politics and policies

• Better understanding of scheduling practices

• A more user friendly, flexible, and simple yet more complete product

• Regional advocates and auxiliary support resources

Page 28: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Next Time Around

• Even More On-Site Sessions• Longer On-Site Sessions earlier• Longer Beta Testing Period• Customer Observe actual programming• Even More Playing Time • Different Configuration of Room for Customer

Group Meetings• Address Documentation & Training

Page 29: Extreme Programming: Collaboration for Maximum Impact in Minimum Time Copyright 2002 by Dale Mills and Michele Eicher. This work is the intellectual property

Final Analysis

• Process was rewarding both personally and professionally for customers and programmers

• A product that we, as customers were eager to use and recommend

• Proud to have our names associated with