The document summarizes an extreme programming (XP) brown bag session that covered the origins of XP, its core values, and practices. XP began in 1996 as Kent Beck worked on the Chrysler C3 payroll project. It was further developed and prototyped until the publishing of "Extreme Programming Explained" in 1999. The session defined XP's focus on excellent programming techniques, clear communication, and teamwork. Attendees participated in exercises to identify their own values and rate XP practices for potential experimentation.
3. LEARNING
OUTCOMES
By the end of this session we will…
• Understand the origins of
extreme programming
• Check for own alignment with
XP’s values
• Evaluate XP practices for
‘candidates for experimentation’
7. CHRYSLER C3 PAYROLL PROJECT - 1996
6 months from delivery for
18 months
Hired: Kent Beck hired as
performance tester
Question: “What tests can I
run?”
Estimated: “This actually
feels like an estimate that
might be accurate”
8. XP PROTOTYPED
• Practices dialled up to 10
• Project Delivered late (but still delivered)
• “Extreme Programming Explained” (1999)
• Agile Manifesto signed by ‘Beck et al’ (2001)
• Martin Fowler, Ron Jeffries, Ward
Cunningham, Chet Hendrickson
collaborated on XP
9. WHAT IS XP?
“A style of software development focussing on excellent application of
programming techniques, clear communication, and teamwork which allows us
to accomplish things we previously could not even imagine.”
• Lightweight: you only do what you need to do to create value for the customer.
• Adaptable: Practices improve adaptability to vague or rapidly changing
requirements.
10. XP AND ‘TECHNIQUE’
• We are technical people in a technical field.
• There are better ways and worse ways of working.
• The pursuit of excellence in technique is critical in a
social style of development.
• Technique supports trust: if you can accurately
estimate your work, deliver quality the first time,
and create rapid feedback loops; then you can be a
trustworthy partner.
11. XP AND ‘OLD
HABITS’
XP means giving up old habits of working for new
ways tailored to today's reality.
The habits, attitudes, and values of our early years
worked then: but may not be our best choices in the
current world of team software development.
Good, safe social interaction is as necessary to
successful software development as technical skills.
12.
13. XP IS REALLY ABOUT:
• Being open about what we are capable of and then doing it.
• Getting past our adolescent surety that ‘I know better than anyone else and all I
need is to be left alone to be the greatest.’
• The process of becoming more of our best selves and in the process our best
selves as developers.
• Finding our place in the community including the realm of business / work.
• Writing great code that is really good for business.
14. VULNERABILITY
IS SAFETY
XP Teams play full out
to win and accept
responsibility for the
consequences of
failure.
If how I feel is based
on whether I did my
best, I can feel good
about myself by not
holding something
back.
In XP, you don't
prepare for failure by
Keeping a little
distance in
relationships
Holding back effort
either through
underwork or
overwork
Putting off feedback
for another round of
responsibility
diffusion
None of these
behaviours have a
place on an XP Team.
15. WHY EXTREME?
Prepare for success
Don't protect yourself from success by holding back
Do your best and then deal with the consequences
It's extreme because you leave yourself exposed.
18. EXERCISE
• You will need: 1 index card, one pen.
• Step 1: Write up to three values you try to live by as a programmer (2 minutes)
• Step 2: Find another person and discuss / compare your values. (3 minutes)
• Step 3: Find another pair and discuss / compare your values (4 minutes)
• Step 4: Review your own list… anything you would change? (1 minute)
46. RATING THE PRACTICES AS ‘CANDIDATES FOR
EXPERIMENTATION’
Rating If we don’t do this yet… If we already do this…
0 – 1 We don’t need it. It’s working fine here.
2 – 3 Seems kind of interesting… We could improve this.
4 – 5 This looks useful for us We should improve this.
Stand up.
Here are your instructions.
Organise yourselves by years’ experience as a professional programmer. Most year’s experience here, least experienced here.
Once you are organised, I'll ask you all one by one to share three things:
Your Name,
Years experience as a developer, and
Share one unusual fact about yourself.