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

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

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

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?