0% found this document useful (0 votes)
200 views

Extreme Programming

This document provides an overview of Extreme Programming (XP) and agile software development methods presented by Ken Bauer. It discusses the technical and human issues that make software development challenging. It outlines Bauer's educational and industry background before delving into a history of software problems and solutions proposed by thought leaders like Beck, Cockburn, and DeMarco. Bauer then introduces XP and agile methods as a solution focused on iterative development, close customer collaboration, and valuing individuals and interactions over processes.

Uploaded by

Ramiro Ceballos
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
200 views

Extreme Programming

This document provides an overview of Extreme Programming (XP) and agile software development methods presented by Ken Bauer. It discusses the technical and human issues that make software development challenging. It outlines Bauer's educational and industry background before delving into a history of software problems and solutions proposed by thought leaders like Beck, Cockburn, and DeMarco. Bauer then introduces XP and agile methods as a solution focused on iterative development, close customer collaboration, and valuing individuals and interactions over processes.

Uploaded by

Ramiro Ceballos
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 84

Extreme Programming

Ken Bauer 15 August 2012

Outline
The Software Problem History of the Software Problem Our Solution: XP & Agile Methods Implementation Issues Management Issues Review, Conclusions, Future
15 August 2012 XP, Ken Bauer 2

Education background
B.Sc. Computer Science (Honours), University of Victoria, 1993 M.Sc. Computer Science University of Washington, 1995 OOPSLA Committee member 1995-present (attendee since 1992)

15 August 2012

XP, Ken Bauer

Academic Background
Professor, Computer Science ITESM, Campus Guadalajara 1995-1997, 1999-present O-O, S.E., P.L., O.S. Introduced Java to ITESM in 1996 Director, ISC at Campus Guadalajara 2000 - present
15 August 2012 XP, Ken Bauer 4

Industry Background
Object Technology International (IBM) 1997, Software Engineer, worked on VAJava v1.0 Harley Street Software, 1998 Safeware Engineering Inc., 1998 Consulting in O-O, Java, XP, systems administration and security since 1999
15 August 2012 XP, Ken Bauer 5

The Software Problem

15 August 2012

XP, Ken Bauer

Why Is Software So Hard?


Is it technical Or is it human Are systems just bigger Or did we have problems with small systems Or is it really that hard?
XP, Ken Bauer 7

15 August 2012

Technical Issues
Compilers
Development Environments Wizards

15 August 2012

XP, Ken Bauer

Compilers
The human code-optimizers of the 1970s and 1980s are no longer needed Computers parse fast Humans parse slow Humans need abstraction

15 August 2012

XP, Ken Bauer

Development Environments
Syntax checkers/highlighters Debuggers (distributed) Source Code Control Team development support

15 August 2012

XP, Ken Bauer

10

Wizards
Wizards, code-generators, templates, frameworks are all buzzwords. Which ones work? Wizards are magical and mystical
But who was that code generated? And do you understand it? ALL of it?
15 August 2012 XP, Ken Bauer 11

Human Issues
Management Style Programmer as a profession Software is written by people for people People make mistakes People get bored People get defensive
etc, etc
15 August 2012 XP, Ken Bauer 12

Management Style
What is the managers role?
(fill in our work here)

15 August 2012

XP, Ken Bauer

13

Programmer As a Profession
What kind of people are we getting? Who is responsible for the development of the developer?
University/College The company The developer herself Government
15 August 2012 XP, Ken Bauer 14

Software is Peopleware
Software almost always involves people at the end, and definitely in the beginning and middle

15 August 2012

XP, Ken Bauer

15

Software is Peopleware
Software almost always involves people at the end, and definitely in the beginning and middle People have needs

15 August 2012

XP, Ken Bauer

16

Software is Peopleware
Software almost always involves people at the end, and definitely in the beginning and middle People have needs People have desires

15 August 2012

XP, Ken Bauer

17

Software is Peopleware
Software almost always involves people at the end, and definitely in the beginning and middle People have needs People have desires People have lives!!!!

15 August 2012

XP, Ken Bauer

18

To Err Is Human
Can we finally accept this? If so, what are we going to do about it? Testing, code reviews, system builds, code walkthroughs Can we live with buggy systems?

15 August 2012

XP, Ken Bauer

19

Everyone Needs Stimulation


Grunt programmers produce grunt code In general, people like people and even working with them Two heads (together) think better than one two (apart) People learn best from people, not books, videos, code, banging their head against the monitor
15 August 2012 XP, Ken Bauer 20

People Have Their Pride


There is no such thing as the egoless programmer Who do we deal with this ego? Smash it with a hammer? Or should we harness it, culture it?

15 August 2012

XP, Ken Bauer

21

Environment Issues
Today and tomorrow are different Time does not stand still, neither do needs (requirements) Systems need to be ready to adapt to needs (adaptable systems) People should not be required to adapt to systems
15 August 2012 XP, Ken Bauer 22

Tomorrow, Tomorrow
What happens between today and tomorrow gives us more information Good experience is experience So is bad experience! We need to use what we learn everyday to the best advantage

15 August 2012

XP, Ken Bauer

23

Change, Death and Taxes


These all have something to do with software Changing requirements are a reality Death (or at least other disasters) will affect your project Regulations (government and otherwise) will be part of the process
15 August 2012 XP, Ken Bauer 24

Systems Change
Whenever a system is installed, somebody gains and somebody loses power. Tom DeMarco, OOPSLA 2001 Systems need to be able to change and built for that in mind

15 August 2012

XP, Ken Bauer

25

People Dont Like to Change


Again, that quote by Tom Every system creates losers and winners (in the change department) Our users should get the changes they want, not the ones that are thrust upon them

15 August 2012

XP, Ken Bauer

26

History of the Software Problem

15 August 2012

XP, Ken Bauer

27

Fred Brooks
No Silver Bullet 1975 (kwb) Silver Bullet Refired, 1995 (kwb) His comments on Eric Raymond

15 August 2012

XP, Ken Bauer

28

David Parnas
Modular Programming Star Wars project and his abandonment of the project Shouldnt be building projects so incredibly huge.

15 August 2012

XP, Ken Bauer

29

Tom DeMarco
Peopleware, Lidster and DeMarco, 1987 The first to insist that software is a people problem, not a technical one Most software development projects fail because of failures within the team running them Keynote at OOPSLA 2001
15 August 2012 XP, Ken Bauer 30

Watts Humphrey
PSP, Personal Software Process TSP, Team Software Process CMM, Capability Maturity Model Focused on a disciplined approach to Software Engineering

15 August 2012

XP, Ken Bauer

31

Levels of CMM
1 No order 2 Repeatable 3 Defined (processes) 4 Managed (quantifiable quality goals) 5 Optimizing (continuous improvement)
XP, Ken Bauer 32

15 August 2012

Larry Constantine
Larry wrote continued to write about Peopleware in the 90s The Peopleware Papers, 2001 Brings a psychological background and business school education to the industry

15 August 2012

XP, Ken Bauer

33

Ed Yourdon
The Decline and Fall of the American Programmer, 1992 Rise And Resurrection of the American Programmer, 1996 Death March, 1999

15 August 2012

XP, Ken Bauer

34

Steve McConnell
Code Complete, Rapid Development, Software Project Survival Guide and After the Gold Rush Software Engineering as a profession Editor in Chief, IEEE Software www.construx.com Reading list is excellent
15 August 2012 XP, Ken Bauer 35

Kent Beck
Smalltalk/OOPSLA community Early Patterns work eXtreme Programming Manifesto XP Series (7 now) Keynote at CongresoISC 2000 at ITESM, Campus Guadalajara
XP, Ken Bauer 36

15 August 2012

Alistair Cockburn
The Agile Software Development Series Agile Software Development Writing Effective Use Cases Surviving Object-Oriented Projects

15 August 2012

XP, Ken Bauer

37

The Pragmatic Programmers


Dave Pragmatic Thomas Andy Hunt Programming as a craft Metaphors such as gardening

15 August 2012

XP, Ken Bauer

38

Linus Torvalds, Eric Raymond


Open Source Movement Cathedral and the Bazaar

15 August 2012

XP, Ken Bauer

39

Our Solution: XP &Agile Methods

15 August 2012

XP, Ken Bauer

40

XP (white-book) Forward by Erich Gamma (OTI)


XP nominates programming as the key activity throughout a software project.
This cant possibly work!

15 August 2012

XP, Ken Bauer

41

XP (white-book) Forward by Erich Gamma (OTI)


Work in a just-in-tie software culture with compressed release cycles and high technical risk Change becomes your friend Communication in and across geographically separate teams (done with code)
15 August 2012 XP, Ken Bauer 42

XP (white-book) Forward by Erich Gamma (OTI)


Read code to understand new or evolving system APIs Life cycle and behavior is defined in test cases (done with code) Problem reports come in with test cases demonstrating the problem (again, with code)
15 August 2012 XP, Ken Bauer 43

XP (white-book) Forward by Erich Gamma (OTI)


Continuously improving code with refactoring OTI has a code-centric development process (pre XP) and it worked. And worked well with products shipped on time

15 August 2012

XP, Ken Bauer

44

XP (white-book) Forward by Erich Gamma (OTI)


This is not just daredevil, cowboycoder based Delivering software is hard, and delivering quality software in time is even harder To make it work requires the disciplined use of additional best practices
15 August 2012 XP, Ken Bauer 45

XP (white-book) Forward by Erich Gamma (OTI)


Kent Beck wrote the book on bestpractice patterns in Smalltalk (literally) Dave Thomas (big Dave of OTI, not the pragmatic Dave or the Wendys Dave) co-wrote the Smalltalk with Style book

15 August 2012

XP, Ken Bauer

46

XP (white-book) Forward by Erich Gamma (OTI)


Kent Beck and Ward Cunningham inspired much of the Pattern movement and best practices They also refined what they were seeing into a lightweight methodology That is what XP is. The writing down of what they were experiences
15 August 2012 XP, Ken Bauer 47

XP Manifesto
Clear separation of roles of customer and programmer Bill of Rights Courage Customers: scope, priority, composition and dates of releases Programmers: estimates, technical consequences, process, detailed schedule
15 August 2012 XP, Ken Bauer 48

XP Is an Onion
Processes
Team Practices

Programming

15 August 2012

XP, Ken Bauer

49

Risk
Schedule slips Project canceled System goes sour Defect rate Business misunderstood Business changes False feature rich Staff turnover
15 August 2012 XP, Ken Bauer 50

Schedule Slips
Short release cycles 3 months AT MOST Within release are iterations 1 4 weeks per iteration Highest priority features first

15 August 2012

XP, Ken Bauer

51

Project Cancelled
Customer chooses smallest release that works best for them Keeps value of software at its greatest

15 August 2012

XP, Ken Bauer

52

System goes sour


Create and maintain comprehensive suite of tests Run and re-run after every change Several times a day! Keep system in prime condition Cruft cannot accumulate
XP, Ken Bauer 53

15 August 2012

Defect Rate
Tests from the perspective of programmers function-by-function Tests from the perspective of the customers feature-by-feature

15 August 2012

XP, Ken Bauer

54

Business misunderstood
Customer is integral part of team Specification is continually refined Learning by customer and team can be reflected in the software

15 August 2012

XP, Ken Bauer

55

Business Changes
XP shortens release cycle Less change during a release Customer welcome to substitute new functionality for functionality not yet completed

15 August 2012

XP, Ken Bauer

56

False feature rich


XP insists that only the highest priority tasks are addressed Customer makes the priority decisions NOT the programmer

15 August 2012

XP, Ken Bauer

57

Staff turnover
Programmers accept responsibilty for estimating and completing their own work XP gives them feedback about the actual time taken so they can improve estimates XP encourage human contact among the team
15 August 2012 XP, Ken Bauer 58

Economics of Software
Cash flows in and out Interest rates Project mortality

15 August 2012

XP, Ken Bauer

59

Maximizing Economic Value


Spending less, difficult Earning more, superior marketing and sales organization Spending later and earning sooner to pay less interest and earn more interest Increasing the probability that the project will stay alive
15 August 2012 XP, Ken Bauer 60

Options in Economics
Option to abandon cancel is sometimes good Option to switch change direction Option to defer wait to spend money Option to grow - capitalize

15 August 2012

XP, Ken Bauer

61

Four Variables in S.E.


Cost Time Quality Scope Focus on Scope
15 August 2012 XP, Ken Bauer 62

Cost of Change
Graph on board Requirements Analysis Design Implementation Testing Production
15 August 2012 XP, Ken Bauer 63

Four Values
Communication Simplicity Feedback Courage

15 August 2012

XP, Ken Bauer

64

Basic Principles
Rapid feedback Assume simplicity Incremental change Embracing change Quality work

15 August 2012

XP, Ken Bauer

65

Other Principles
Teach learning Small initial investment Play to win Concrete experiments Open, honest communication
15 August 2012

Work with peoples instincts, not against Accepted responsibility Local adaption Travel light Honest measurement
XP, Ken Bauer 66

Test First
JUnit (or other testing framework) If tests always ran correctly, then we wouldnt have to write them. Tests are interesting when they fail, especially if we didnt expect them to fail.
JUnit: A Cooks Tour Kent Beck & Ward Cunningham

15 August 2012

XP, Ken Bauer

67

Basics of Programming
Coding Testing Listening Designing

15 August 2012

XP, Ken Bauer

68

The 12 XP Practices
The Planning Game Small Releases Metaphor Simple design Testing Refactoring Pair Programming Collective ownership Continuous integration 40-hour week On-site customer Coding standards
XP, Ken Bauer 69

15 August 2012

Planning Game
Business people:
Scope Priority Composition of releases Dates of releases

Technical people:
Estimates Consequences Process Detailed scheduling

15 August 2012

XP, Ken Bauer

70

Small Releases
Small as possible Containing the most valuable business requirements Has to make sense as a whole No half-implemented features

15 August 2012

XP, Ken Bauer

71

Metaphor
Replaces much of what others call architecture Give everyone a coherent story within which they can work A story that can easily be shared by business and technical people

15 August 2012

XP, Ken Bauer

72

Simple Design
The right design:
Runs all the tests Has no duplicated logic States every intention important to the programmers Has the fewest possible classes and methods

15 August 2012

XP, Ken Bauer

73

Testing
Any program feature without an automated test simply does not exist Unit tests build confidence in the operation of the program for the programmers Functional tests give customers confidence in the operation of the program
15 August 2012 XP, Ken Bauer 74

Refactoring
Changing the existing program to make adding a new feature simpler Making the program simpler but still passing the tests

15 August 2012

XP, Ken Bauer

75

Pair Programming
One keyboard, mouse and monitor Inactive partner IS active:
Is this whole approach going to work? What are some other test cases that might not work yet? Is there some way to simplify the whole system so the current problem just disappears?
15 August 2012 XP, Ken Bauer 76

Pair Programming (cont)


All I Need to Know about PairProgramming I Learned in Kindergarten Laurie Williams?? http://collaboration.csc.ncsu.edu/lauri e/Papers/Kindergarten.PDF Or ACM Digital Library

15 August 2012

XP, Ken Bauer

77

Collective Ownership
Anyone adds value when needed and they can Better than individual ownership Better than NO ownership

15 August 2012

XP, Ken Bauer

78

Continuous Integration
Daily builds are for wimps Big builds are hard Fixing broken builds is harder

15 August 2012

XP, Ken Bauer

79

40-Hour Week
Being fresh Overtime is a symptom of a serious problem on the project Vacations of at least 2 weeks People need downtime

15 August 2012

XP, Ken Bauer

80

On-site Customer
Those quick questions become really quick And we actually ask them Instead of assuming The customer can do other stuff

15 August 2012

XP, Ken Bauer

81

Coding Standards
Do it my way.
Just needs to be agreed on. Once and Only Once rule (no duplicate code) Adopted voluntarily by the whole team
XP, Ken Bauer 82

15 August 2012

Management Issues

The Green Book

15 August 2012

XP, Ken Bauer

83

Review, Conclusions, Future

15 August 2012

XP, Ken Bauer

84

You might also like