Questioning Extreme Programming · ©McBreen.Consulting Questioning Extreme Programming Page 22 XP...

14
Copyright 2002 McBreen.Consulting Questioning Extreme Programming Page-1 ©2002 McBreen.Consulting Questioning Extreme Programming Pete McBreen, McBreen.Consulting [email protected] ©McBreen.Consulting Page 2 Questioning Extreme Programming The arguments for and against Extreme Programming are many and varied Why is there a shift towards the so-called Agile Methodologies? Extreme Programming is an answer to what question? Under what conditions is XP successful? Under what conditions are alternative processes more appropriate? Is Extreme Programming for you?

Transcript of Questioning Extreme Programming · ©McBreen.Consulting Questioning Extreme Programming Page 22 XP...

Copyright 2002 McBreen.Consulting

Questioning Extreme Programming Page-1

©2002 McBreen.Consulting

Questioning Extreme Programming

Pete McBreen, [email protected]

©McBreen.Consulting Page 2Questioning Extreme Programming

The arguments for and against ExtremeProgramming are many and varied

Why is there a shift towards the so-calledAgile Methodologies?

Extreme Programming is an answer to whatquestion?

Under what conditions is XP successful?

Under what conditions are alternativeprocesses more appropriate?

Is Extreme Programming for you?

Copyright 2002 McBreen.Consulting

Questioning Extreme Programming Page-2

©McBreen.Consulting Page 3Questioning Extreme Programming

Traditional software developmentapproaches are not always successful

An extremist view of traditional softwaredevelopment is Crummy Software Late

Duff O’Melia of RoleModel Software askssome hard questionsHow do you know your code works?Have you ever been afraid to change code?How do you know your design is right?What happens if your star programmer is hit by a

bus?

©McBreen.Consulting Page 4Questioning Extreme Programming

Something is rotten in the state of softwaredevelopment

The Dilbert Phenomenon is a very stronghint that there are serious problemsPointy Haired Boss jokes are not funny any more

Organizations are completely dependent onsoftware, but coding is a lousy jobThe Suits make the decisions, but the techs get

blamed for failing to deliver the code

Even the promise of dot com riches turnedout to be a death march to nowhere

Copyright 2002 McBreen.Consulting

Questioning Extreme Programming Page-3

©McBreen.Consulting Page 5Questioning Extreme Programming

Developers are sick and tired of processesthat make developing great software harder

In the last five years developers havewoken up and said It can be different!The era of big process software engineering is over,

the SEI CMM failed to deliverGood Enough Software is just a fancy face on the

good old blue screen of death

Small wonder then that many developers nowcontribute to Open Source projects

Many developers have decided there has tobe a better, more agile way to do software

©McBreen.Consulting Page 6Questioning Extreme Programming

Manifesto for Agile Software Development

We are uncovering better ways of developing softwareby doing it and helping others do it. Through thiswork we have come to value:

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right,we value the items on the left more.

Copyright 2002 McBreen.Consulting

Questioning Extreme Programming Page-4

©McBreen.Consulting Page 7Questioning Extreme Programming

The methodologies that contributed to themanifesto are quite diverse

Adaptive Software Development

Crystal methods

Dynamic Systems Development Method

Extreme Programming

Feature Driven Development

Pragmatic Programming

Scrum

©McBreen.Consulting Page 8Questioning Extreme Programming

Adaptive Software Development was createdby Jim Highsmith

ASD is based on the ideas of Complexityand EmergencenManaging the workstate rather than the

workflow is the key differencenCollaboration and self-organization enable

emergence

nDescribes a new lifecycle Speculate, Collaborate,Learn

ASD is intended for extreme projects thatpush the limits of what is possible

Copyright 2002 McBreen.Consulting

Questioning Extreme Programming Page-5

©McBreen.Consulting Page 9Questioning Extreme Programming

The Crystal methods were developed byAlistair Cockburn

The Crystal methods apply the idea that allprocesses are situational

They are a set of human scale, tolerantprocesses tuned for different projectsn Trust people to be good citizensnUse incremental development so the team gets

practice at delivering, and,n Are barely sufficient to avoid overloading people

with process.

©McBreen.Consulting Page 10Questioning Extreme Programming

Dynamic Systems Development Method ismodernized Rapid Application Development

DSDM is about controlling and managingthe rapid delivery of applications

DSDM uses empowered teams to deliverquality applications through the use oftimeboxed developmentnDo enough and no more,nUse active user involvement to ensure fitness for

business purpose, andn Iterative development to converge on an accurate

solution.

Copyright 2002 McBreen.Consulting

Questioning Extreme Programming Page-6

©McBreen.Consulting Page 11Questioning Extreme Programming

Extreme Programming: the revenge of theprogrammers :-)

A set of synergistic practices thatmaximize the amount of work not done

A highly incremental process that allowsan on-site customer to steer the projectnBased on 5 core values Communication,

Simplicity, Feedback, Courage and RespectnUses pair programming for all production codenDoes the simplest thing that could possibly workn Preaches the idea of Test Driven Development

©McBreen.Consulting Page 12Questioning Extreme Programming

Feature Driven Development was designedby Peter Coad

FDD aims to deliver frequent, tangible,working results

FDD is unique among the Agile methods inpromoting the use of CASE toolsn Uses Feature Teams lead by a Chief ProgrammernHas a heavy focus on modeling and archetypesn Supported by CASE tool that is also a Java IDEnDesign By Feature, Build By Feature using a two

week cycle

Copyright 2002 McBreen.Consulting

Questioning Extreme Programming Page-7

©McBreen.Consulting Page 13Questioning Extreme Programming

Pragmatic Programming is based on a bookwritten by Andy Hunt and Dave Thomas

Pragmatic Programming addresses thefacing issues teams of 2 or 3 developers

More concerned with individual mastery ofthe craft of software developmentn Individual craftsmanship as a foundation for

overall team successn Focuses on effective, appropriate use of toolsn Encourages a seamless approach - specification

and implementation as different aspects of thesame process

©McBreen.Consulting Page 14Questioning Extreme Programming

Scrum was created by Ken Schwaber, JeffSutherland and Mike Beedle

Scrum is an empirical process formanaging software product development

It reintroduces flexibility, adaptability andproductivity into systems developmentnWork can and should be an ennobling experiencen Projects are divided into sprints to allow

developers to focus on deliveryn Empirical management using frequent, first

hand observations and daily scrum meetings

Copyright 2002 McBreen.Consulting

Questioning Extreme Programming Page-8

©McBreen.Consulting Page 15Questioning Extreme Programming

What is so different about these Agileapproaches?

All put people and the interaction betweenpeople as the main focus of attention

All embrace the idea that dealing withpartial knowledge is the key to success

Their response to schedule pressure is toprioritize and focus on early delivery

They require extensive involvement by theproject sponsors and users

©McBreen.Consulting Page 16Questioning Extreme Programming

The Agile approaches are changing the waythat software development is done

The Agile approaches are changing theconversation about software development

Agile shifted our attention to small teamsincrementally delivering quality software

Whether this is a good thing or not is stillopen to question

In optimizing our process towards the Agileapproach, what are we giving up?

Copyright 2002 McBreen.Consulting

Questioning Extreme Programming Page-9

©McBreen.Consulting Page 17Questioning Extreme Programming

What does it mean to optimize a process?

Optimization means altering the process togain a different (more valuable?) outcomeOptimization is directed process improvement

Who gets to choose the direction?How do we decide which aspects of a process are

the valuable ones?How do we decide what we are willing to give up in

order to get the valued outcome?

Does process specialization have any risks?

©McBreen.Consulting Page 18Questioning Extreme Programming

Before looking any deeper, first let us lookat how we optimize a process

Optimization implies changing somethingnGetting the team to work in a different waynChanging the deliverables and standardsnChanging the interactions between team rolesnChanging the vocabulary and conversations

The easiest way to change behavior is tochange the vocabulary and conversationsReworking code to conform to standards is a pain,

but Refactoring is funXP has successfully changed the conversation

Copyright 2002 McBreen.Consulting

Questioning Extreme Programming Page-10

©McBreen.Consulting Page 19Questioning Extreme Programming

What does Extreme Programming optimize?Hint: Look at the project outcomes

Developer enjoyment ☺Entire team agrees this is the best project they’ve

ever been on - Ron Jeffries speaking about C3

Predictable, sustained and sustainable paceThe project can go at any pace it wants to. The

point is steering, not going full speed

Maximizing the team's tacit knowledgeThe best way to keep the knowledge of a system

alive and well is to maintain the continuity of thedevelopment team. - Robert Martin

©McBreen.Consulting Page 20Questioning Extreme Programming

What else might you want to optimize for?

The business as usual answer is everythingbut it doesn't work out that wayWhen everything is important, the item that gets

paid attention to seems to be pseudo-random

Faster, Better, Cheaper is not realisticOn Time, On Budget, On Mars - pick two

As Jim Highsmith suggests, choose anappropriate Mission ProfileThen optimize to excel at the chosen outcome

Copyright 2002 McBreen.Consulting

Questioning Extreme Programming Page-11

©McBreen.Consulting Page 21Questioning Extreme Programming

Different organizations could want tooptimize many different things

l Productivity

l Minimum budget

l Rapid delivery

l Efficiency/Burn rate

l On-time delivery

l Beating the estimates

l Success with newbies

l Following the plan

l Working with incompleteknowledge

l Handling emergentrequirements

l Leveraging experts

l Exploiting serendipity

l Community involvement

l Successful diversity

l Supporting individuality

©McBreen.Consulting Page 22Questioning Extreme Programming

XP is a successful answer to the question ofhow to enjoy software development

Who wouldn't want to be part of a softwaredevelopment project where :-Everyone works at a sustainable paceYou collaborate with colleagues to solve interesting

and important business problemsPointy Haired Bosses are not allowed to make any

technical decisionsYou interact with your users daily so you get a

concrete sense of accomplishmentSoftware development is fun

Copyright 2002 McBreen.Consulting

Questioning Extreme Programming Page-12

©McBreen.Consulting Page 23Questioning Extreme Programming

The greatest pitfall of Extreme Programmingis that it sounds too good to be true

The evidence to date is that XP really andtruly works

XP was not a corporate initiative, it wasjust a couple of people with a visionIn five short years it has drastically reshaped

software developmentEven Rational now supports XP with a plug-in for

the Rational Unified Process (RUP)

©McBreen.Consulting Page 24Questioning Extreme Programming

So what are the pre-conditions for XP?

A small co-located team

Knowledgeable domain experts who makeproject direction decisions quickly

A Point Haired Boss free zone

An organization where delivered resultscount more than following the plan

Copyright 2002 McBreen.Consulting

Questioning Extreme Programming Page-13

©McBreen.Consulting Page 25Questioning Extreme Programming

Although XP is great, it is not always themost appropriate choice for a project

XP requires a lot of involvement from thebusiness users and executive sponsors

XP places special demands on facilities

The development environment mustprovide rapid feedback to the team

Process and document centric cultures donot appreciate XP style documentation

XP is allergic to stretch targets

©McBreen.Consulting Page 26Questioning Extreme Programming

Does your organization value what ExtremeProgramming offers?

Product development organizations usuallyvalue a predictable, sustainable paceMany recognize that it is hard to write everything

down, so they value the team's tacit knowledgeDeveloper enjoyment is rarely a priority, but two

out of three is not that bad

Contract and in-house development areoften dominated by the project planXP doesn't make it easy to draw up a Gantt chart

Copyright 2002 McBreen.Consulting

Questioning Extreme Programming Page-14

©McBreen.Consulting Page 27Questioning Extreme Programming

So, is Extreme Programming for you?