Agile Software Development Techniques for Small Scale ... · Agile Software Development Techniques...

Preview:

Citation preview

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?

Recommended