agile software development techniques for small scale ... · agile software development techniques...
TRANSCRIPT
AgileSoftwareDevelopmentTechniquesforSmallScaleResearchProjects
“howtonotgodowntherabbithole”
Henriette KoningSeniorManagerSoftwareDelivery
Butfirst....
• Henriette Koning (me)• Wewilltalkabout– Successthroughprocess&approach– FocusedonIT/softwareprojects– Rightsized
• Butnot– Devtechnologyortools– Architecture– People/Skills
Whysomeprocessisagoodthing
• Savestime• Savesfrustration• Avoidspanic• Createsclarity• MVP–MinimumViableProduct–MinimumViableProcess
• Astarting bit– introducingthecastandtheplot
• Amiddle bit– alltheexcitement
• Anend bit– happilyeverafter
• Andagoodstartiscritical.Putseverythinginplaceforthehappyending
Consideraprojectastory
Ready?
Andthestorystarts....
• Onceuponatime…• WehadaBrilliantidea• AndaTalentedteam• And…• “Ohdear!Ohdear!Ishallbetoo late!”
Andwerushtofollowthewhiterabbit
Wedon’thavetimeforprocess
Theadversaries&pitfalls• Unknowntarget– hopewe’llfigure
itoutalongtheway• Bringingittogether– Sumofthreebrilliantpartsmaynotmakeonediamond
• Gettingto100%– Howfaralongarewe andhowdoweknowwhenwe’redone?
• Leavingthebestforlast– Thelast10%cantakeforever
• Wecreatedit– buthowdoweseeifitisgood?• Howdowemakedecisionsalongtheway• WebuiltitandOMGnowthey’recoming
TheCurtainopens
• Ourprojectusuallyhas– Intendedoutcome(“deliverables”)orgoal– Start– Finish
– Schedule– Budget
Andtheprojectiskickedoff
• Howwillweknowwhenwe’re‘done’• Whatdoessuccesslooklike• Andhowwillwemeasureorvalidate‘done’
Inthebeginning,Agreeonthehappilyeverafter
“Done”includesQualityAssurance&Validation
• Especiallyforalgorithms–Whatdatawillyouneed– Howcanyoupredictoutcomebyanothermeans–Whatshouldstayconstant– Howmanyscenarios,etc.
• Errorconditions
Inthebeginning,Agreeonthehappilyeverafter
Oncetheprojectisdone,whatwillhappento• Data• Documents• Software• Users• Team
Inthebeginning,Agreeonthehappilyeverafter
Thinkingabouthowthesoftwarewillbeused• Wherewillitlive• Useraccess• Sustainment• Funding• Security
Inthebeginning...AgreeonGovernance &decisionmaking• Whichtypesofdecisions• Whomakesthem• Howwillwemakethem• Whatdataisneededtomakethem
Inthebeginning...Agreeon
• Scope– inbighugeterms,what’sin,what’sout
• Schedule– howlongdowehave• Budget– howmuchmoneydowehave(andforwhichpart)
• Process:– howwillweruntheproject– whatdoweneedtoreport/trackprogress(fundingagencies?)
Considertheinfrastructure• DEV– QA– PROD• WhatworksonyourDEVstation– doesitworksomewhereelse?• WhatworksstandaloneonyourDEVstations– doesitworkwith
theotherteammember’scode?• Versioncontrol– todealwith“itworkedyesterday”• Beawareofdependencies
– Filesystemstructure– Dataordatastructure– Libraries– OS– Tools– Etc.
• AseparateQAenvironmenthelpsproveanddemo• AseparatePRODformoresecureandstableenvironment
Project Charter (or Terms of Reference)
• Clarity• Agreement• SortingthisoutatthestartsavesSOmuchtimelater
• Canbeafewpages,butisvital
• Therearetemplates
Plotthickens
Runninga project
• Methodology–Waterfall– Agile=>seeitasatoolbox,pick&choose,andmuchofitiscommonsense
• Progresstracking– Createsclarity– Allowsdecisions
Waterfall
Waterfall• Traditionally,ITprojectswerebasedonanengineeringapproach– Largecostofchange– Abilitytospecifyoutcome– Languageforspecification
• Everythingdesignedanddefinedatthebeginningoftheproject
• Changeiscontrolled,scheduleiscommittedto• AndforsomeITprojects,thisistherightapproach!
AgileIncrementalandIterativeChangeisembraced(sohastobecheap)Lessdefinitionandspecification,moredelivery
WhyAgileforresearch?
• Earlyvalidation• Lotsofadjustment
• MVPapproach• Smallteams
ADailyStand-updoesnotanAgileProjectmake
AgileSoftwareDevelopment
• Backlogofsmallpieces(features)– decomposition
• Prioritization(“grooming”)• DeliverandDemo• Reviewandadjust– nextiteration• Done• RinseandRepeat– Danger:don’tkeepreworkingthefirstbitandnevergettotheendbit
Agileapproachvariants
• ScaledAgile
• Scrum
• Kanban
Morecomplex
Lesscomplex
Largeprojects– ScaledAgile
NOTSUGGESTINGYOUDOTHISJ
Scrum
• Prioritizedbacklog– Features– Acceptancecriteria
• Fixedtime(typically2weeks)– “Sprint”• DefinitionofDone• Teamcommitstoselectingdoableprioritiesandgettingthemtodone
• Somethingalmostdoneisnotdoneandmovestothenextsprint
Sprint
Othertypicalaspectsofagile• Collaboration– selforganizedteams• Colocation• Frequentquickgroupmeets(dailystand-ups,5-10mins)
• Roles– Productmanager->productfocus– Team(dev&test)->deliveryfocus– Scrummaster->processfocus
• Crossfunctional• Plan&retrospective– continuousimprovement
Kanban
• Workmanagementapproach• Workispulledwhencapacitybecomesavailable
• Fromprioritizedlist(“backlog”)• Progress(nextbit)shownonkanban board
Progresstracking
• Helpscommunicationintheteam• Usesscheduleandbudgetresponsibly• Allowsforadjustment• GreatforPR
• DoesNOThavetotakealotoftime!
Burnup/downcharts
• Gettingto100%done(or0%left)• Howfaralongarewe?• Areweontrack?• Totalitemstobedone,curvethatwouldgeteverythingdoneattheendofproject,andteam’sprogressbyperiod
PowerofDashboards
• Progress• Readiness• Helpsdiscussionanddecision
Kanban board
• Publicpresentation• Toolorstickies
Kanban
Kanban
Sohowarewedoingonourplot
Andourmightyadversaries…
Unknowntarget(Thisisresearch,afterall….)
• Roadmap/backlog• Review&Adjustfrequentandearly• Spikes• Nextsprintmaybeafullredo• Prototypeorconceptcanbe“done”• Proveoutsmallpieces• Demoallowsforteamreviewandcritique
Bringingittogether(Sumofthreebrilliantpartsmaynotmakeonediamond)
• “Done”meansbuiltandtested• “Done”meansDemo’d andaccepted• Infrastructureenvironment– DEV-QA-PROD– Avoiddependencies
• SAVESYOUSOOOOMUCHTIME
Gettingto100%
• DefinitionofDone• Dashboarding andprogresstracking• Standups• Reprioritizewhenthingschange
Leavingthebestforlast
• Thelast10%cantakeforever
• Prioritizeyourbacklog– Prerequisitesfirst– Complexfirst–Musthavesfirst
• You’llhavealotofthingsthataredone(ratherthanalotthatisalmostdone)
Wecreatedit..(butwillitholdup?)
• Demo’s• Validation,testing,qualityassurance– (evenbetterifyoucandefineafeaturetoautomatethis!)
• Acceptancecriteria
Howdowemakedecisions
• Backloggrooming• Governance(charter)• Peoplechange,people’smindschange–processhelps
• Presetyourdecisions– Acceptancecriteria–Methodology– Cadence
WebuiltitandOMGnowthey’recoming
Oncetheprojectisdone,whatwillhappento• Data• Documents• Software• Users• Team• Sustainment• Security
And...It’sawrap(“TheEnd”bit)
• Lessonslearned• Publishmethod• Storestuff• HandovertoasustainmentorOpsteam
• So… tosumup
AgileforResearchSoftwareDev
• Startwiththeendespecially– DefinitionofDONE– Validation–Whatdoesyourhappilyeverafterlooklike
• Createyourbacklog• WhatisyourMVP– prioritize• Try,review,improve,tryagain• Inafixedtime(scrum)orpurelyprioritized(kanban)
Inthebeginning,Agreeonthehappilyeverafter
• Writeacharter• Decideyourprocess &tools&environments
• Ifscrum,thendefineyoursprintlength
• Decidehowyoutrackprogressandwhentodostandups
Inthebeginning,Agreeonthehappilyeverafter
• Thinkingabouthowthesoftwarewillbeused– Useraccess– Sustainment– Security– Datamanagement
AgileforresearchSoftwareDev
• TrustthatitISfasterandlesswastefulthanjustgoingatit
• Whenyouhear“Ohdear!Ohdear!Ishallbetoo late!”
• Don’tfollowthewhiterabbitintotherabbithole
• Plan
TheHappyEnd
Questions?