extreme programming and systems engineering similarities and synergy
DESCRIPTION
Extreme Programming and Systems Engineering Similarities and Synergy. (based on talk given to INCOSE New England Chapter) Joseph (Yossi) Weihs Sept 10 th , 2004. Abstract. XP is one of the popular ‘Agile’ software development disciplines - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/1.jpg)
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
![Page 2: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/2.jpg)
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?
![Page 3: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/3.jpg)
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
![Page 4: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/4.jpg)
44
Agile MethodsAgile Methods
Formality - from lightweight to Formality - from lightweight to ‘heavy’:‘heavy’:
ScrumScrum
XPXP
Crystal OrangeCrystal Orange
DSDMDSDM
![Page 5: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/5.jpg)
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
![Page 6: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/6.jpg)
66
Must have a flow chartMust have a flow chart
![Page 7: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/7.jpg)
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
![Page 8: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/8.jpg)
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
![Page 9: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/9.jpg)
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!
![Page 10: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/10.jpg)
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])
![Page 11: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/11.jpg)
1111
XP and RiskXP and Risk
![Page 12: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/12.jpg)
1212
Core XP PrinciplesCore XP Principles
Incremental changeIncremental change Assume simplicityAssume simplicity Rapid feedbackRapid feedback Embracing the changeEmbracing the change Quality workQuality work
![Page 13: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/13.jpg)
1313
Core XP PracticesCore XP Practices
Broken down to four domains:Broken down to four domains:
PlanningPlanning DesigningDesigning
CodingCoding TestingTesting
![Page 14: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/14.jpg)
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
![Page 15: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/15.jpg)
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
![Page 16: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/16.jpg)
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
![Page 17: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/17.jpg)
1717
TestingTesting
– Unit testsUnit tests– When a bug is found…When a bug is found…– Acceptance testsAcceptance tests
![Page 18: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/18.jpg)
1818
XP Life CycleXP Life Cycle
Exploration phaseExploration phase Planning phasePlanning phase Iterations to releaseIterations to release ProductionizingProductionizing Death phaseDeath phase
![Page 19: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/19.jpg)
1919
XP Team MembersXP Team Members
ProgrammersProgrammers CustomersCustomers TestersTesters TrackersTrackers CoachCoach ConsultantsConsultants ManagerManager
![Page 20: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/20.jpg)
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
![Page 21: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/21.jpg)
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
![Page 22: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/22.jpg)
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
![Page 23: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/23.jpg)
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
![Page 24: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/24.jpg)
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
![Page 25: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/25.jpg)
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
![Page 26: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/26.jpg)
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
![Page 27: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/27.jpg)
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
![Page 28: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/28.jpg)
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
![Page 29: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/29.jpg)
2929
Extra SlidesExtra Slides
![Page 30: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/30.jpg)
3030
XP - The Four Core XP - The Four Core ValuesValues
Communication.Communication. Simplicity.Simplicity. Feedback.Feedback. Courage.Courage.
![Page 31: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/31.jpg)
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.
![Page 32: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/32.jpg)
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.
![Page 33: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/33.jpg)
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.
![Page 34: Extreme Programming and Systems Engineering Similarities and Synergy](https://reader035.vdocument.in/reader035/viewer/2022062423/56814589550346895db270d9/html5/thumbnails/34.jpg)
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.