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

Extreme Programming and Systems Engineering Similarities and Synergy

  • Upload
    nuru

  • View
    34

  • Download
    0

Embed Size (px)

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

Citation preview

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’:

ScrumScrum

XPXP

Crystal OrangeCrystal Orange

DSDMDSDM

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 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

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 DesigningDesigning

CodingCoding 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

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

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

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 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

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

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

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.