+ All Categories
Home > Documents > Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - [email protected]...

Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - [email protected]...

Date post: 16-Jan-2016
Category:
Upload: melina-woods
View: 218 times
Download: 0 times
Share this document with a friend
Popular Tags:
29
Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - [email protected] Presented to CS 611 at GVSU, 4/6/2005
Transcript
Page 1: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Extreme Programming:Introduced

Matthew HeusserExcelon Development – xndev.com - [email protected] to CS 611 at GVSU, 4/6/2005

Page 2: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Surfin’ the waterfall

• The Caste System

• The factory mentality

• Scientific Management

• ‘Managing Scope Creep’ and other bad ideas

• Can we have predictability without demeaning people?

Page 3: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Enter XP

• If our software development groups could just provide visibility and consistency, maybe customers, management, and coders could share the uncertainty.

• “Extreme Programming is a discipline of business and software development that focuses both parties on common, reachable goals. XP teams produce quality software at a sustainable pace. The practices that make up “book” XP are chosen for their dependence on human creativity and acceptance of human frailty.”

– Kent Beck, Extreme Programming Installed

Page 4: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Implications

• XP is a from-scratch development model that expects change and tries to share risk, instead of forcing it onto one group or another.

• The Truth is always a good thing. Even when it’s bad news.

• Self-Determination (Content, Collaboration, and Choice)

• The central person in the story of development is the CODER.

Page 5: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

‘Book’ XP

• Whole Team • Small Releases• Simple Design• Test-First Development Design Improvement • Coding Standard Metaphor• Sustainable Pace Continuous Integration• Pair Programming Planning Game• Collective Code Ownership Customer Tests

Page 6: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Agile requirements …

• Customer and Developers write stories• Developers estimate stories in “Points”;

– 1-3 points per story

• Customers Prioritize Stories• Developers break Stories into tasks• Developers sign up for work • 1st iteration: Roughly 3 weeks

Page 7: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Iterations

• Iterative

• Feature-Based

• Time boxed

• Incremental– Jim Highsmith, Agile Project Management, 40

• Inch-Pebble Concept

Page 8: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Releases

• However often you need to realease

• 3 months sounds about right (or does it?)

Page 9: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

‘Whole’ Team Concept

• Customers are members of the team

• Co-Location

• Who needs a ‘spec’?

Page 10: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

“When will you be done?”

• 3 weeks

• Implications

Page 11: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Velocity

• V = D/T

• Velocity = Points Accomplished/Weeks

• Velocity normalizes over time

• Points for a story – “About the same size as” heuristics get better over time

Page 12: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

On estimating

• Simple Working System

• Feature at a time

• Spikes as risk management

Page 13: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Design Sessions

• Two guys at a Whiteboard

• Emergent design (3 weeks ain’t that long)

• Very few, high-value artifacts

• Focus on design, documentation, etc in working code (you ain’t gonna update it)

Page 14: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Coding sessions

• Pair Programming

• One Task at a time / Continuous Integration

• Integration Machine

• Test Everything that could possibly break

• AUTOMATED, Test Driven Development – Unit, Integration, System

Page 15: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

More coding

• Collective Code Ownership

• Coding Standard

• Simple Design

• Refactoring

Page 16: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Code Standards

Indentation

Capitalization

Hungarian Notation

(Variable Names)

Curly-Brace Placement

Function Names

Page 17: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Problems with frequent release

• Regression Testing

Page 18: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Test Driven Development

• Objects and Functions have unwritten, contracted behavior

• Mis-understanding about expected behavior causes integration defects

• Automated tests establish and evaluate expected behavior

Page 19: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

More TDD

• Test-First Development (see handout)

• Maintenance programming: Find a defect, write a test for it, fix it, make sure it passes the test

• After the fix, automatically regression test the entire system

Page 20: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

The XP Life-Style

• Sustainable PaceRarely work 1 week of mild overtime

• Minimal CodingSimplest solution

• Least number of interfaces, modules, classes, functions

Do not "design for extensibility"

• RefactoringGet Rid of Duplicate Code

Page 21: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

“Steering”

• Requirements & Priorities Change

• Estimates change – Truth is good

• Steer the iteration/steer the release by managing velocity, stories, and bugs

Page 22: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

When do you release?

• Customer-derived acceptance test

• No QA Department! No V&V!

• Iterate until the customer is happy or the money runs out. (Shippable at any time; always deliver business value.)

Page 23: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

No Testers?

• 3. Cease dependence on mass inspection

Eliminate the need for mass inspection as the way of life to achieve quality by building quality into the product in the first place. Require statistical evidence of built in quality in both manufacturing and purchasing functions.

- Dr. Deming’s 3rd Point of TQM

• Note that this requires massive, constant peer review.

(Pair Design, Pair Programming, Pair Test Script Writing …)

Page 24: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

XP Values

• Simplicity, Communication, Courage, Feedback

• You ain’t gonna need it

• Simplest thing that could possibly work

Page 25: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Tailoring XP

• Few people do ‘book’ XP

• Use what works for you

• Apply context-driven principles

• No Testers?

Page 26: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Cons

Probably best for small-to-medium projects

Involves change and investment (time) in learning new methods of testing

Culture Problems (“We don’t need no silly pair programming”)

May have problems with shrink-wrapped development

Page 27: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Conclusions

• XP is a collection of mutually supportive practices that optimize the shared mental model and keeps developers working on code.

Page 28: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

Discussion

Page 29: Extreme Programming: Introduced Matthew Heusser Excelon Development – xndev.com - matt@xndev.com Presented to CS 611 at GVSU, 4/6/2005.

References

• http://www.xprogramming.com

• Extreme Programming Installed

• Extreme Programming Explained

• Planning Extreme Programming

• Agile Project Management


Recommended