founda’ons of soware engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · close relaon...

34
Founda’ons of So,ware Engineering Process: Agile Prac.ces Claire Le Goues 1

Upload: others

Post on 02-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

Founda'onsofSo,wareEngineering

Process:AgilePrac.cesClaireLeGoues

1

Page 2: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

Learninggoals•  Defineagileasbothasetofitera.veprocessprac.cesandabusinessapproachforaligningcustomerneedswithdevelopment.

•  Explainthemo.va.onbehindandreasonaboutthetradeoffspresentedbyseveralcommonagileprac.ces.

•  Summarizebothscrumandextremeprogramming,andprovidemo.va.onandtradeoffsbehindtheirprac.ces.

•  Iden.fyandjus.fytheprocessprac.cesfromtheagiletradi.onthataremostappropriateinagivenmoderndevelopmentprocess.

2

Page 3: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

Whatproblemsarethereinso,waredevelopment?

3

Page 4: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

AgileSo,wareDevelopmentIs…

Both:•  asetofsoMwareengineeringbestprac.ces(allowingforrapiddeliveryofhighqualitysoMware)•  abusinessapproach(aligningdevelopmentwithcustomerneedsandgoals)

4

Page 5: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

BriefHistoryofAgile

5

1930s

Incep&onofItera&veandIncrementalDevelopment(IID):WalterShewhart(BellLabs,signaltransmission)proposedaseriesof“plan-do-study-act”(PDSA)cycles

2001

Introduc&onof“Agile”:TheAgileManifestowri[enby17soMwaredevelopers

XPreified:KentBeckreleasedExtremeProgrammingExplained:EmbraceChange

1999

Introduc&onofScrum:JeffSutherlandandKenSchwaberpresentedapaperdescribingtheScrummethodologyataconferenceworkshop

19951970

Introduc&onofthewaterfall:WinstonRoyce’sar.cleManagingtheDevelopmentofLargeSo<wareSystems

Page 6: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

Agileinanutshell•  Aprojectmanagementapproachthatseekstorespondtochangeandunpredictability,primarilyusingincremental,itera.veworksequences(oMencalled“sprints”).

•  Also:acollec.onofprac.cestofacilitythatapproach.

•  Allpredicatedontheprinciplesoutlinedin“TheManifestoforAgileSoMwareDevelopment.”

6

Page 7: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

TheManifestoforAgileSo,wareDevelopment(2001)

7

Value

Individualsandinterac'ons over Processesandtools

Workingso,ware over Comprehensivedocumenta.on

Customercollabora'on over Contractnego.a.on

Respondingtochange over Followingaplan

Page 8: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

TheTwelvePrinciplesofAgileSo,wareDevelopment

1.  Projectsarebuiltaroundmo.vatedindividuals,whoshouldbetrusted

2.  Face-to-faceconversa.onisthebestformofcommunica.on(co-loca.on)

3.  Self-organizingteams

4.  WorkingsoMwareisdeliveredfrequently(weeksratherthanmonths)

5.  WorkingsoMwareistheprincipalmeasureofprogress

6.  Sustainabledevelopment,abletomaintainaconstantpace

7.  Con.nuousa[en.ontotechnicalexcellenceandgooddesign

8.  Simplicity—theartofmaximizingtheamountofworknotdone—isessen.al

9.  Customersa.sfac.onbyrapiddeliveryofusefulsoMware

10.  Close,dailycoopera.onbetweenbusinesspeopleanddevelopers11.  Welcomechangingrequirements,evenlateindevelopment

12.  Regularadapta.ontochangingcircumstances

8

Individu

alsa

nd

interac'on

sCu

stom

er

collabo

ra'o

nWorking

so,ware

Respon

ding

tocha

nge

Page 9: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

AgilePrac'ces•  Backlogs(Productand

Sprint)•  Behavior-driven

development(BDD)•  Cross-func.onalteam•  Con.nuousintegra.on(CI)•  Domain-drivendesign

(DDD)•  Informa.onradiators

(Kanbanboard,Taskboard,Burndownchart)

•  Acceptancetest-drivendevelopment(ATDD)

•  Itera.veandincrementaldevelopment(IID)

•  Pairprogramming•  Planningpoker•  Refactoring•  Scrummee.ngs

(Sprintplanning,Dailyscrum,Sprintreviewandretrospec.ve)

•  Smallreleases•  Simpledesign•  Test-driven

development(TDD)•  Agiletes.ng

•  Timeboxing•  Usecase•  Userstory•  Story-drivenmodeling•  Retrospec.ve•  On-sitecustomer•  AgileModeling•  40-hourweeks•  Shortdevelopment

cycles•  Collec.veownership•  Openworkspace•  Velocitytracking•  Etc.

9

Page 10: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

40-hourWeeks

Noonecanworkasecondconsecu.veweekofover.me.Evenisolatedover.meusedtoofrequentlyisasignofdeeperproblemsthatmustbeaddressed.

10

Page 11: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

PlanningPoker

11

Page 12: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

Collec'veOwnership

Everyprogrammerimprovesanycodeanywhereinthesystematany.meiftheyseetheopportunity.

12

Page 13: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

KanbanBoard

13

Page 14: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

SimpleDesign

“Sayeverythingonceandonlyonce”:Ateverymoment,thedesignrunsallthetests,communicateseverythingtheprogrammerswanttocommunicate,containsnoduplicatecode,andhasthefewestpossibleclassesandmethods.

14

Page 15: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

On-siteCustomer

Acustomersitswiththeteamfull-.me.

15

Page 16: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

PairProgramming

16

Driver

Navigator

Page 17: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

Shortdevelopmentcycle

ThesoMwaredevelopmentprocessisorganizedinawayinwhichthefullsoMwaredevelopmentcycle—fromdesignphasetoimplementa.onphasetotestanddeploymentphase—isperformedwithinashort.mespan,usuallyseveralmonthsorevenweeks.

17

Page 18: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

SmallReleases

Thesystemisputintoproduc.oninafewmonths,beforesolvingthewholeproblem.NewreleasesaremadeoMen—anywherefromdailytomonthly.

18

Page 19: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

Refactoringvs.Design

Thedesignofthesystemisevolvedthroughtransforma.onsoftheexis.ngdesignthatkeepallthetestsrunning.

19

Page 20: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

Con'nuousIntegra'on(CI)

NewcodeisintegratedwiththecurrentsystemaMernomorethanafewhours.Whenintegra.ng,thesystemisbuiltfromscratchandalltestsmustpassorthechangesarediscarded.

20

Page 21: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

Test-drivendevelopment

Programmerswriteunittestsminutebyminute.Thesetestsarecollectedandtheymustallruncorrectly.Customerswritefunc.onaltestsforthestoriesinanitera.on.

21

Page 22: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

Openworkspace

22

Page 23: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

SolvingSo,wareDevelopmentProblemswithAgilePrac'ces

23

ProbleminSo,wareDevelopment AgileMethodsThatMi'gateIt1. Requirementchangesduringthe

developmentprocessCloserela.onwithcustomer,shortdevelopmentcycle,smallreleases,planningpoker,Kanbanboard

2. Scopecreep Shortdevelopmentcycle,smallreleases,planningpoker

3. Architectureerosion Collec.veownership,pairprogramming4. Under-oroveres.ma.on(.meand

budget),s.ckingtotheplanCloserela.onwithcustomer,planningpoker,shortdevelopmentcycle,smallreleases

5. Bringinginnewdevelopers(.meandeffortfortheirtraining),steeplearningcurve

Collec.veownership(pros&cons),planningpoker

6. Changeofmanagementduringthedevelopmentprocess

Closerela.onshipwithcustomer

7. IntroducingnewbugsasyoudevelopsoMware

40-hourweek,collec.veownership,shortdevelopmentcycle,smallreleases,tests,CI,pairprogramming

Contd.

Page 24: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

SolvingSo,wareDevelopmentProblemswithAgilePrac'ces*(contd.)

24

ProbleminSo,wareDevelopment AgileMethodsThatMi'gateIt8. Challengeofcommunica.on Closerela.onwithcustomer9. Developerturnover Collec.veownership(pros&cons),40-hourweek10. Integra.onissues Collec.veownership11. Difficultyoftrackingbugs Collec.veownership,shortdevelopmentcycle,

smallreleases,CI,tests12. Disagreementbetweendevelopers Closerela.onwithcustomer13. Schedulingproblems(globalteam) Closerela.onwithcustomer14. “Groupthink”(tendencyof

developerstoagreewithoneanother,commonthinkingamongthem),fearofhur.ngthefeelingsofotherdevelopers

Planningpoker,pairprogramming

15. Challengeswithintegra.ngwithlegacycode

Collec.veownership

*Thisisanexpanded,buts.llnotcomprehensivelist.

Page 25: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

Scrum

25

Page 26: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

Customer,team,scrummaster(?)

26

Page 27: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

ScrumProcess

27

Page 28: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

ExtremeProgramming(XP)

28

Humanevolu'on

XPevolu'on

Page 29: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

Programmingis4ac'vi'es

"Listening,Tes.ng,Coding,Designing.That'sallthereistosoMware.Anyonewhotellsyoudifferentissellingsomething.”–KentBeck(ExtremeProgrammingExplained)

29

Page 30: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

ExtremeProgramming(XP)

30

Page 31: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

XPValues

•  Communica.on:Verbalcommunica.onisbe[erthanwri[encommunica.on.•  Simplicity:Dothesimplestthingthatcouldpossiblywork.•  Feedback:Getlotsoffeedback,espfromcustomer(“first-effort”prototype).•  Courage:(somewhatunderspecified)

31

Page 32: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

XPPrac'ces(subsetofAgile!)•  TDD(test-firstapproach).•  Planninggame:1-3weekitera.ons,oneitera.onata.me,customerdecideswhich

userstoriestouse•  Wholeteam/on-sitecustomer:“customerspeakswithonevoice.”Customermaybea

wholeteam.•  Smallreleases,withvaluablefunc.onality,toguardagainstunhappycustomers.•  Systemmetaphorisasinglesharedstoryofhowitworks.(Sortoflikearchitecture)•  Simplestthingthatpossiblyworks(codingfortoday)•  Refactorallthe.me,becauseyoudon’thaveup-frontdesignbeforeprogramming.•  Collec.veownership.Everyoneisresponsibleforeverything.Ifaprogrammersees

somethingshedoesn’tlike,shecangochangeit.Taskownershipisindividual.•  Pairprogramming.cancodealonefornonproduc.oncodelikeprototypes•  Con.nuousIntegra.on.Adayofdevelopmentatmost.•  Sustainablepace.40hourworkweeks.•  Codingstandards,Especiallysinceallcodecanchangeatall.mes.

32

Page 33: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

Evolu'on,explora'on•  Evolu.onary:codegrows/evolvesratherthanbeingplanned)– contrastwithRUP(itera.veandincremental)

•  Norequirementsdocuments:programmersandthecustomerassembleanddiscussthecustomer'sneeds.– Compilestories,removeambiguityfromthestoriesbymakingsurethattheyaretestableandes.mable.– Orderbybusinessvalue.

33

Page 34: Founda’ons of Soware Engineeringckaestne/15313/2016/20-8-nov-agile-processes.pdf · Close relaon with customer, planning poker, short development cycle, small releases 5. Bringing

Ques'ons/Conversa'on

•  Casestudy:WhathappenedwithC3?•  Tradeoffsofprac.ces:on-sitecustomer/co-locatedteam,TDD,userstories/planninggame,smallreleases,systemmetaphor,codefortoday,refactor,collec.veownership,pairprogramming,con.nuousintegra.on,sustainablepace,codingstandards.

34