agile software development techniques for small scale ... · agile software development techniques...

57
Agile Software Development Techniques for Small Scale Research Projects “how to not go down the rabbit hole” Henriette Koning Senior Manager Software Delivery

Upload: others

Post on 17-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

AgileSoftwareDevelopmentTechniquesforSmallScaleResearchProjects

“howtonotgodowntherabbithole”

Henriette KoningSeniorManagerSoftwareDelivery

Page 2: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Butfirst....

• Henriette Koning (me)• Wewilltalkabout– Successthroughprocess&approach– FocusedonIT/softwareprojects– Rightsized

• Butnot– Devtechnologyortools– Architecture– People/Skills

Page 3: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Whysomeprocessisagoodthing

• Savestime• Savesfrustration• Avoidspanic• Createsclarity• MVP–MinimumViableProduct–MinimumViableProcess

Page 4: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

• Astarting bit– introducingthecastandtheplot

• Amiddle bit– alltheexcitement

• Anend bit– happilyeverafter

• Andagoodstartiscritical.Putseverythinginplaceforthehappyending

Consideraprojectastory

Page 5: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Ready?

Page 6: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Andthestorystarts....

• Onceuponatime…• WehadaBrilliantidea• AndaTalentedteam• And…• “Ohdear!Ohdear!Ishallbetoo late!”

Page 7: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Andwerushtofollowthewhiterabbit

Page 8: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Wedon’thavetimeforprocess

Page 9: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Theadversaries&pitfalls• Unknowntarget– hopewe’llfigure

itoutalongtheway• Bringingittogether– Sumofthreebrilliantpartsmaynotmakeonediamond

• Gettingto100%– Howfaralongarewe andhowdoweknowwhenwe’redone?

• Leavingthebestforlast– Thelast10%cantakeforever

• Wecreatedit– buthowdoweseeifitisgood?• Howdowemakedecisionsalongtheway• WebuiltitandOMGnowthey’recoming

Page 10: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

TheCurtainopens

• Ourprojectusuallyhas– Intendedoutcome(“deliverables”)orgoal– Start– Finish

– Schedule– Budget

Page 11: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Andtheprojectiskickedoff

Page 12: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

• Howwillweknowwhenwe’re‘done’• Whatdoessuccesslooklike• Andhowwillwemeasureorvalidate‘done’

Inthebeginning,Agreeonthehappilyeverafter

Page 13: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

“Done”includesQualityAssurance&Validation

• Especiallyforalgorithms–Whatdatawillyouneed– Howcanyoupredictoutcomebyanothermeans–Whatshouldstayconstant– Howmanyscenarios,etc.

• Errorconditions

Page 14: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Inthebeginning,Agreeonthehappilyeverafter

Oncetheprojectisdone,whatwillhappento• Data• Documents• Software• Users• Team

Page 15: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Inthebeginning,Agreeonthehappilyeverafter

Thinkingabouthowthesoftwarewillbeused• Wherewillitlive• Useraccess• Sustainment• Funding• Security

Page 16: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Inthebeginning...AgreeonGovernance &decisionmaking• Whichtypesofdecisions• Whomakesthem• Howwillwemakethem• Whatdataisneededtomakethem

Page 17: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Inthebeginning...Agreeon

• Scope– inbighugeterms,what’sin,what’sout

• Schedule– howlongdowehave• Budget– howmuchmoneydowehave(andforwhichpart)

• Process:– howwillweruntheproject– whatdoweneedtoreport/trackprogress(fundingagencies?)

Page 18: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Considertheinfrastructure• DEV– QA– PROD• WhatworksonyourDEVstation– doesitworksomewhereelse?• WhatworksstandaloneonyourDEVstations– doesitworkwith

theotherteammember’scode?• Versioncontrol– todealwith“itworkedyesterday”• Beawareofdependencies

– Filesystemstructure– Dataordatastructure– Libraries– OS– Tools– Etc.

• AseparateQAenvironmenthelpsproveanddemo• AseparatePRODformoresecureandstableenvironment

Page 19: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Project Charter (or Terms of Reference)

• Clarity• Agreement• SortingthisoutatthestartsavesSOmuchtimelater

• Canbeafewpages,butisvital

• Therearetemplates

Page 20: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Plotthickens

Page 21: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Runninga project

• Methodology–Waterfall– Agile=>seeitasatoolbox,pick&choose,andmuchofitiscommonsense

• Progresstracking– Createsclarity– Allowsdecisions

Page 22: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Waterfall

Page 23: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Waterfall• Traditionally,ITprojectswerebasedonanengineeringapproach– Largecostofchange– Abilitytospecifyoutcome– Languageforspecification

• Everythingdesignedanddefinedatthebeginningoftheproject

• Changeiscontrolled,scheduleiscommittedto• AndforsomeITprojects,thisistherightapproach!

Page 24: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

AgileIncrementalandIterativeChangeisembraced(sohastobecheap)Lessdefinitionandspecification,moredelivery

Page 25: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

WhyAgileforresearch?

• Earlyvalidation• Lotsofadjustment

• MVPapproach• Smallteams

Page 26: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

ADailyStand-updoesnotanAgileProjectmake

Page 27: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

AgileSoftwareDevelopment

• Backlogofsmallpieces(features)– decomposition

• Prioritization(“grooming”)• DeliverandDemo• Reviewandadjust– nextiteration• Done• RinseandRepeat– Danger:don’tkeepreworkingthefirstbitandnevergettotheendbit

Page 28: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Agileapproachvariants

• ScaledAgile

• Scrum

• Kanban

Morecomplex

Lesscomplex

Page 29: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Largeprojects– ScaledAgile

Page 30: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

NOTSUGGESTINGYOUDOTHISJ

Page 31: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Scrum

• Prioritizedbacklog– Features– Acceptancecriteria

• Fixedtime(typically2weeks)– “Sprint”• DefinitionofDone• Teamcommitstoselectingdoableprioritiesandgettingthemtodone

• Somethingalmostdoneisnotdoneandmovestothenextsprint

Page 32: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Sprint

Page 33: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Othertypicalaspectsofagile• Collaboration– selforganizedteams• Colocation• Frequentquickgroupmeets(dailystand-ups,5-10mins)

• Roles– Productmanager->productfocus– Team(dev&test)->deliveryfocus– Scrummaster->processfocus

• Crossfunctional• Plan&retrospective– continuousimprovement

Page 34: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Kanban

• Workmanagementapproach• Workispulledwhencapacitybecomesavailable

• Fromprioritizedlist(“backlog”)• Progress(nextbit)shownonkanban board

Page 35: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Progresstracking

• Helpscommunicationintheteam• Usesscheduleandbudgetresponsibly• Allowsforadjustment• GreatforPR

• DoesNOThavetotakealotoftime!

Page 36: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Burnup/downcharts

• Gettingto100%done(or0%left)• Howfaralongarewe?• Areweontrack?• Totalitemstobedone,curvethatwouldgeteverythingdoneattheendofproject,andteam’sprogressbyperiod

Page 37: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,
Page 38: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,
Page 39: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

PowerofDashboards

• Progress• Readiness• Helpsdiscussionanddecision

Page 40: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Kanban board

• Publicpresentation• Toolorstickies

Page 41: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Kanban

Page 42: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Kanban

Page 43: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Sohowarewedoingonourplot

Andourmightyadversaries…

Page 44: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Unknowntarget(Thisisresearch,afterall….)

• Roadmap/backlog• Review&Adjustfrequentandearly• Spikes• Nextsprintmaybeafullredo• Prototypeorconceptcanbe“done”• Proveoutsmallpieces• Demoallowsforteamreviewandcritique

Page 45: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Bringingittogether(Sumofthreebrilliantpartsmaynotmakeonediamond)

• “Done”meansbuiltandtested• “Done”meansDemo’d andaccepted• Infrastructureenvironment– DEV-QA-PROD– Avoiddependencies

• SAVESYOUSOOOOMUCHTIME

Page 46: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Gettingto100%

• DefinitionofDone• Dashboarding andprogresstracking• Standups• Reprioritizewhenthingschange

Page 47: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Leavingthebestforlast

• Thelast10%cantakeforever

• Prioritizeyourbacklog– Prerequisitesfirst– Complexfirst–Musthavesfirst

• You’llhavealotofthingsthataredone(ratherthanalotthatisalmostdone)

Page 48: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Wecreatedit..(butwillitholdup?)

• Demo’s• Validation,testing,qualityassurance– (evenbetterifyoucandefineafeaturetoautomatethis!)

• Acceptancecriteria

Page 49: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Howdowemakedecisions

• Backloggrooming• Governance(charter)• Peoplechange,people’smindschange–processhelps

• Presetyourdecisions– Acceptancecriteria–Methodology– Cadence

Page 50: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

WebuiltitandOMGnowthey’recoming

Oncetheprojectisdone,whatwillhappento• Data• Documents• Software• Users• Team• Sustainment• Security

Page 51: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

And...It’sawrap(“TheEnd”bit)

• Lessonslearned• Publishmethod• Storestuff• HandovertoasustainmentorOpsteam

• So… tosumup

Page 52: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

AgileforResearchSoftwareDev

• Startwiththeendespecially– DefinitionofDONE– Validation–Whatdoesyourhappilyeverafterlooklike

• Createyourbacklog• WhatisyourMVP– prioritize• Try,review,improve,tryagain• Inafixedtime(scrum)orpurelyprioritized(kanban)

Page 53: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Inthebeginning,Agreeonthehappilyeverafter

• Writeacharter• Decideyourprocess &tools&environments

• Ifscrum,thendefineyoursprintlength

• Decidehowyoutrackprogressandwhentodostandups

Page 54: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Inthebeginning,Agreeonthehappilyeverafter

• Thinkingabouthowthesoftwarewillbeused– Useraccess– Sustainment– Security– Datamanagement

Page 55: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

AgileforresearchSoftwareDev

• TrustthatitISfasterandlesswastefulthanjustgoingatit

• Whenyouhear“Ohdear!Ohdear!Ishallbetoo late!”

• Don’tfollowthewhiterabbitintotherabbithole

• Plan

Page 56: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

TheHappyEnd

Page 57: Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques for Small Scale Research Projects ... – Agile => see it as a toolbox, pick & choose,

Questions?