+ All Categories
Home > Documents > Extreme Programming and Systems Engineering Similarities and Synergy

Extreme Programming and Systems Engineering Similarities and Synergy

Date post: 25-Feb-2016
Category:
Upload: hedva
View: 28 times
Download: 0 times
Share this document with a friend
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 Presentation
Popular Tags:
34
Extreme Programming Extreme Programming and Systems and Systems Engineering Engineering Similarities and Similarities and Synergy Synergy (based on talk given to INCOSE New England Chapter) (based on talk given to INCOSE New England Chapter) Joseph (Yossi) Weihs Joseph (Yossi) Weihs Sept 10 Sept 10 th th , , 2004 2004
Transcript
Page 1: Extreme Programming and Systems Engineering Similarities and Synergy

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

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

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

44

Agile MethodsAgile Methods

Formality - from lightweight to Formality - from lightweight to ‘heavy’:‘heavy’:

ScrumScrumXPXP

Crystal OrangeCrystal OrangeDSDMDSDM

Page 5: Extreme Programming and Systems Engineering Similarities and Synergy

55

OverviewOverview Extreme Programming is a Extreme Programming is a

software development software development methodology that originated about methodology that originated about seven years agoseven 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

66

Must have a flow chartMust have a flow chart

Page 7: Extreme Programming and Systems Engineering Similarities and Synergy

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

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

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

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

1111

XP and RiskXP and Risk

Page 12: Extreme Programming and Systems Engineering Similarities and Synergy

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

1313

Core XP PracticesCore XP Practices

Broken down to four domains:Broken down to four domains:PlanningPlanning DesigningDesigningCodingCoding TestingTesting

Page 14: Extreme Programming and Systems Engineering Similarities and Synergy

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

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

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

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

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

1919

XP Team MembersXP Team Members ProgrammersProgrammers CustomersCustomers TestersTesters TrackersTrackers CoachCoach ConsultantsConsultants ManagerManager

Page 20: Extreme Programming and Systems Engineering Similarities and Synergy

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

2121

XP & SE – OverlapXP & SE – Overlap

XPXP Systems EngineeringSystems EngineeringPlanningPlanning Development plan, risk Development plan, risk

managementmanagementTestingTesting Validation & verificationValidation & verificationCoachCoach Systems engineerSystems engineerCollectivCollective e ownershiownershipp

System integrationSystem integration

Page 22: Extreme Programming and Systems Engineering Similarities and Synergy

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

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

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

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

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

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

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/SoftwareEngineering/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/Papers/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

2929

Extra SlidesExtra Slides

Page 30: Extreme Programming and Systems Engineering Similarities and Synergy

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

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 that could not be carried without communicating (e.g. be carried without communicating (e.g. pair programming, unit testing etc.).pair 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

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 simple XP is betting that it is better to do a simple

thing today and pay a little more tomorrow thing today and pay a little more tomorrow to change it, if it needs to be changed, to change it, if it needs to be changed, than building a more complicate system than building a more complicate system that has feature that will never be used.that has feature that will never be 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

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 every The customer review the scheduler every 2-3 weeks and provide prompt feedback 2-3 weeks and provide prompt feedback to the developer.to the developer.

Page 34: Extreme Programming and Systems Engineering Similarities and Synergy

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.


Recommended