Top Banner
Founda’ons of So,ware Engineering Process: Agile Prac.ces Claire Le Goues 1
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

Aug 02, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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