Extreme Programming Extreme Programming and Systems and Systems EngineeringEngineering
Similarities and Similarities and SynergySynergy
(based on talk given to INCOSE New England Chapter)(based on talk given to INCOSE New England Chapter)
Joseph (Yossi) WeihsJoseph (Yossi) WeihsSept 10Sept 10thth, ,
20042004
22
AbstractAbstract
XP is one of the popular ‘Agile’ XP is one of the popular ‘Agile’ software development disciplinessoftware development disciplines
Systems engineers may have to deal Systems engineers may have to deal with software teams practicing XPwith software teams practicing XP
What should you look out for, and What should you look out for, and what can you exploit when working what can you exploit when working with an XP oriented team?with an XP oriented team?
33
ContentsContents
Overview – what is XPOverview – what is XP Why use XPWhy use XP Overlap with SEOverlap with SE Key differencesKey differences Integrated methodsIntegrated methods Summary / Take HomeSummary / Take Home
44
Agile MethodsAgile Methods
Formality - from lightweight to Formality - from lightweight to ‘heavy’:‘heavy’:
ScrumScrum
XPXP
Crystal OrangeCrystal Orange
DSDMDSDM
55
OverviewOverview
Extreme Programming is a Extreme Programming is a software development software development methodology that originated methodology that originated about seven years agoabout seven years ago
XP is winning recognition in large XP is winning recognition in large organizationsorganizations
XP is bunched together with Lean XP is bunched together with Lean development and Agile processesdevelopment and Agile processes
66
Must have a flow chartMust have a flow chart
77
History of XPHistory of XP
Started out as a Started out as a one man’s quest one man’s quest Kent BeckKent Beck
Defined four Defined four values in 1996:values in 1996:– CommunicationCommunication– SimplicitySimplicity– FeedbackFeedback– Courage Courage
88
History of XP History of XP (continued)(continued) Since 1999 it has been publicly Since 1999 it has been publicly
evangelized. Numerous publications evangelized. Numerous publications have sprung uphave sprung up
2004 – XP is in use in many 2004 – XP is in use in many organizations, large and smallorganizations, large and small
99
Why XP?Why XP?
The approach works best when:The approach works best when: Project has numerous requirement Project has numerous requirement
changeschanges High risk developmentHigh risk development Applied to small (30<) teamsApplied to small (30<) teams Testability is a requirement (V&V!)Testability is a requirement (V&V!)
Use XP only with whole software team buy-Use XP only with whole software team buy-in!in!
1010
XP Cost of ChangeXP Cost of Change
Cost of change
0
Ana
lysi
s
Des
ign
Cod
ing
Mai
nten
ance
Development phase
Traditional Development
eXtreme Programming
Steve Hayes ([email protected])
1111
XP and RiskXP and Risk
1212
Core XP PrinciplesCore XP Principles
Incremental changeIncremental change Assume simplicityAssume simplicity Rapid feedbackRapid feedback Embracing the changeEmbracing the change Quality workQuality work
1313
Core XP PracticesCore XP Practices
Broken down to four domains:Broken down to four domains:
PlanningPlanning DesigningDesigning
CodingCoding TestingTesting
1414
PlanningPlanning
– User storiesUser stories– Release planning / release planRelease planning / release plan– Make frequent small releasesMake frequent small releases– Project velocityProject velocity– Iterative developmentIterative development– Iteration planningIteration planning– Move people aroundMove people around– Daily stand up meetingDaily stand up meeting– Fix XP when it breaksFix XP when it breaks
1515
DesigningDesigning
– Simplicity is the keySimplicity is the key– Choose a system metaphorChoose a system metaphor– CRC cardsCRC cards– Spike solutionSpike solution– Never add functionality earlyNever add functionality early– Re-factor mercilesslyRe-factor mercilessly– YAGNI = You Ain’t Gonna Need ItYAGNI = You Ain’t Gonna Need It
1616
CodingCoding
– On site customerOn site customer– Coding standardCoding standard– Code unit then testCode unit then test– Pair programmingPair programming– Sequential integrationSequential integration– Integrate oftenIntegrate often– Collective code ownershipCollective code ownership– Optimize lastOptimize last– 40 hours a week40 hours a week
1717
TestingTesting
– Unit testsUnit tests– When a bug is found…When a bug is found…– Acceptance testsAcceptance tests
1818
XP Life CycleXP Life Cycle
Exploration phaseExploration phase Planning phasePlanning phase Iterations to releaseIterations to release ProductionizingProductionizing Death phaseDeath phase
1919
XP Team MembersXP Team Members
ProgrammersProgrammers CustomersCustomers TestersTesters TrackersTrackers CoachCoach ConsultantsConsultants ManagerManager
2020
XP roles an SE playsXP roles an SE plays
CustomerCustomer – the SE is requirements – the SE is requirements advocate and validation testeradvocate and validation tester
TrackerTracker – SE may act as project – SE may act as project manager, including risk mitigationmanager, including risk mitigation
Tester Tester – SE may facilitate some tests– SE may facilitate some tests Coach Coach – SE’s as discipline leader– SE’s as discipline leader Manager Manager – SE as boss in large project– SE as boss in large project
2121
XP & SE – OverlapXP & SE – Overlap
XPXP Systems EngineeringSystems EngineeringPlanningPlanning Development plan, risk Development plan, risk
managementmanagement
TestingTesting Validation & verificationValidation & verification
CoachCoach Systems engineerSystems engineer
CollectivCollective e ownershiownershipp
System integrationSystem integration
2222
XP Iterations and SEXP Iterations and SE
XP: Assume XP: Assume customer does not customer does not
have clear have clear definition of system definition of system
at any pointat any point
SE: Maximize SE: Maximize planning, scenario planning, scenario
building risk building risk assessment before assessment before
starting workstarting work
Collision? Sometimes, but SE can still manage process: trickle feed XP’rs requirements disguised as customer stories, according to SE requirement rankings
2323
XP Customer and SEXP Customer and SE
XP: Customer Rep XP: Customer Rep available at all available at all
times for iterations:times for iterations:
Requirements, Requirements, risks, priorities, risks, priorities,
validationvalidation
SE: Customer signs SE: Customer signs off on SOW, gets off on SOW, gets
briefed on progress briefed on progress and accepts and accepts product at product at milestonesmilestones
Collision? Sometimes – when working with XP teams, use their power throughout project initiation, and transition more structured disciplines as project matures
2424
Additional XP & SE Additional XP & SE issuesissues XP’s short iterations and local XP’s short iterations and local
focus fit concept exploration focus fit concept exploration phasephase
XP is the least formalistic of the XP is the least formalistic of the Agile methods : On-Site CustomerAgile methods : On-Site Customer
Pair Programming can cause Pair Programming can cause cultural problemscultural problems
2525
Integrated ApproachesIntegrated Approaches
Small XP teams within larger Small XP teams within larger projectsprojects
Software – part heavyweight, part Software – part heavyweight, part XPXP
Extreme / Agile Project Extreme / Agile Project ManagementManagement
Extreme applied to other Extreme applied to other engineering disciplinesengineering disciplines
2626
Summary / Take HomeSummary / Take Home
Works well for smaller software Works well for smaller software projects / proof of conceptprojects / proof of concept
Works with CMMI / UML (to a point)Works with CMMI / UML (to a point) No fixed cookbook – tailor it to your No fixed cookbook – tailor it to your
projectproject Spill over to project management Spill over to project management
and general engineering and general engineering managementmanagement
2727
ReferencesReferences
Extreme Programming Explained, Extreme Programming Explained, Kent Beck, Addison Wesley 1999Kent Beck, Addison Wesley 1999
Re-factoring: Improving the Re-factoring: Improving the Design of Existing Code, Martin Design of Existing Code, Martin Fowler, Addison Wesley 1999 Fowler, Addison Wesley 1999
Many web sitesMany web sites
2828
LinksLinks
http://www.http://www.extremeprogrammingextremeprogramming.org.org http://www.xp2001.orghttp://www.xp2001.org http://www.iturls.com/English/SoftwareEnginehttp://www.iturls.com/English/SoftwareEngine
ering/xpm_apm.aspering/xpm_apm.asp http://www.balagan.org.uk/work/http://www.balagan.org.uk/work/ http://collaboration.csc.ncsu.edu/laurie/Paperhttp://collaboration.csc.ncsu.edu/laurie/Paper
s/XPSardinia.PDFs/XPSardinia.PDF http://www.xprogramming.com/http://www.xprogramming.com/ http://www.dsmweb.org/http://www.dsmweb.org/ http://www.martinfowler.com/articles/http://www.martinfowler.com/articles/
newMethodology.htmlnewMethodology.html
2929
Extra SlidesExtra Slides
3030
XP - The Four Core XP - The Four Core ValuesValues
Communication.Communication. Simplicity.Simplicity. Feedback.Feedback. Courage.Courage.
3131
CommunicationCommunication
Often problem that arise in SW project can Often problem that arise in SW project can be tracked back to lack of communication.be tracked back to lack of communication.
XP enforces the XP enforces the Communication ValueCommunication Value by by employing many employing many practicepractice that could not be that could not be carried without communicating (e.g. pair carried without communicating (e.g. pair programming, unit testing etc.).programming, unit testing etc.).
XP employs a XP employs a CoachCoach whose job is that of whose job is that of noticing when people are notnoticing when people are not communicating and reintroduce communicating and reintroduce them.them.
3232
SimplicitySimplicity
XP embrace the principle of “Make it XP embrace the principle of “Make it Simple”Simple”
XP is betting that it is better to do a XP is betting that it is better to do a simple thing today and pay a little more simple thing today and pay a little more tomorrow to change it, if it needs to be tomorrow to change it, if it needs to be changed, than building a more complicate changed, than building a more complicate system that has feature that will never be system that has feature that will never be used.used.
Simplicity and Communication support Simplicity and Communication support each other mutually.each other mutually.
3333
FeedbackFeedback
Feedback works in XP at different time Feedback works in XP at different time scales.scales.
Programmers have feedback on a Programmers have feedback on a minutes time scale on the status of the minutes time scale on the status of the system thanks to unit tests.system thanks to unit tests.
When customers write new When customers write new stories stories the the programmers estimate those programmers estimate those immediately to give prompt feedback to immediately to give prompt feedback to the customer about the quality of the the customer about the quality of the stories.stories.
The customer review the scheduler The customer review the scheduler every 2-3 weeks and provide prompt every 2-3 weeks and provide prompt feedback to the developer.feedback to the developer.
3434
CourageCourage
XP team should have the courage of XP team should have the courage of throwing code away.throwing code away.
XP team should have the courage of XP team should have the courage of mainly refactor the architecture of the mainly refactor the architecture of the system, if architectural flaw are system, if architectural flaw are detected.detected.
Courage has in XP the same role that Courage has in XP the same role that mutation has in genetic algorithms. mutation has in genetic algorithms. Takes you out of local Takes you out of local maximum/minimum.maximum/minimum.