Agile Programming
330 likes | 537 Vues
Agile Programming. Advanced C++ Programming Seminar Anton Kaiser, Summer Term 2012. Outline. Overview Agile Manifest Agile Methods Extreme Programming Values Principles Rules and Practices Lifecycle Scrum Backlogs Sprints Daily Scrum Review and Retrospective Summary
Agile Programming
E N D
Presentation Transcript
Agile Programming Advanced C++ Programming Seminar Anton Kaiser, Summer Term 2012
Outline • Overview • Agile Manifest • Agile Methods • Extreme Programming • Values • Principles • Rules and Practices • Lifecycle • Scrum • Backlogs • Sprints • Daily Scrum • Review andRetrospective • Summary • Common Mistakes • RemarksandConclusions • Sources
Overview: Agile Manifest We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: • Individuals and interactionsover processes and tools • Working softwareovercomprehensivedocumentation • Customer collaborationovercontractnegotiation • Responding to changeover following a plan
Overview: Agile Methods • Extreme Programming (XP) • Scrum • Agile Unified Process (AUP) • Crystal Clear • Feature Driven Development (FDD) • GSD • Kanban (development) • Open Unified Process (OpenUP) • …
Outline • Overview • Agile Manifest • Agile Methods • Extreme Programming • Values • Principles • Rules and Practices • Lifecycle • Scrum • Backlogs • Sprints • Daily Scrum • Review andRetrospective • Summary • Common Mistakes • RemarksandConclusions • Sources
Extreme Programming • Extreme Programming isbased on • Simplicity • Communication • Feedback • Courage • Respect • Extreme Programming • Brings thewholeteamtogetherwith simple practices • Givesfeedbacktotheteamandenablesitto tune thepracticestotheiruniquesituations
Extreme Programming:Values • Communication • On-sitecustomer • User Stories • Pair Programming • Collective Ownership • Daily Standup Meetings • Simplicity • KISS – „Keep it simple, stupid“ • YAGNI – „Youain‘tgonnaneedit“ • DTSTTCPW – „Do thesimplestthingthatcouldalreadywork“
Extreme Programming:Values • Feedback • Feedback fromcodebyunit-testingregularily • Short iterationcyclesforcontinuousfeedback • Integratingthecustomerforimportantfeedback • The morefeedback on all levelsthebetter • Courage • Open communicationwith all teammembers, includingthecustomer • Prototypesshallbethrownaway • Refactoring
Extreme Programming:Principles • Embracechange • Itisbettertolearnhowtoreacttochangesthantopredictthefuture • IncrementalChanges • Small stepsarefasterandeasier • Quality • The teamhastobeproudofitswork • Communication • Usethecollectiveknowledgeofthewholeteam
Extreme Programming:Rules and Practices • Managing • Provide a dedicated open workspace • Set a sustainablepace • Start thedaywith a stand upmeeting • Measuretheproject‘svelocity • Move peoplearound • Fix XP whenifbreaks
Extreme Programming:Rules and Practices • Coding • The customerisalwaysavailable • Code theunittestsfirst • Agree on collectiveownership • Code must bewrittentoagreedstandards • All productioncodeispair programmed • Integrateoften • Refactorwheneverandwhereverpossible
Extreme Programming:Rules and Practices • Designing • Simplicity • Choose a systemmetaphor • A visionforthewholesystem • Also meanschoosingappropriatenamesandlocationsforfunctions • Write class-responsibility-collaborationcards (CRC cards) forbrainstorming • Nofunctionalityisaddedearly
Extreme Programming:Rules and Practices • Testing • All code must haveunittests • All code must pass all unittestsbeforeitcanbereleased • When a bugisfound, testsarecreated • Acceptancetestsarerunoften
Outline • Overview • Agile Manifest • Agile Methods • Extreme Programming • Values • Principles • Rules and Practices • Lifecycle • Scrum • Backlogs • Sprints • Daily Scrum • Review andRetrospective • Summary • Common Mistakes • RemarksandConclusions • Sources
Scrum • Scrum • Is an empiricalprocesscontroltheory (EPC) • Iterative, incrementalapproach • Optimizepredictabilityandcontrolrisk • Can beseenas a frameworkwithinwhichyoucanemployvariousprocessesandtechniques • The threelegsthatuphold EPC are • Transparency • Inspection • Adaption
Scrum: Daily Scrum • The dailyscrum • Takes 15 minutesatthestartofeachday • Every teammemberanswerstothreequestions: • Whathave I accomplishedsincethe last dailyscrum? • Whatgot in myway? • What will I do untilthenextdailyscrum?
Scrum: Common Mistakes • Changingthebasics • „Let‘smakeeachsprint last 6 Weeksforthenext 5 months“ • „Daily scrum will beeverysecondday“ • „All featureshavefirstprioritytome!“ • Prolongingthedailyscrumintoendlesstechnicaldiscussions • KeepingdistancefromtheProductOwner • „He istoobusyforourdailyscrum“ • Switchingandmergingroles • Productowner + scrummaster = projectmanager • Team • Creatinghugeteams (> 9 developers) • Tools insteadof oral communication • Letthe „rock stars“ do thewholework
Scrum: Common Mistakes • Tools • „I don‘tneedto understand scrum, mytool will manage everythingforme“ • „Whyuseflipcharts? Wehave expensive toolsforcommunication!“ • Not makinguseofscrumtoolsat all
Scrum: Common Mistakes • Artifacts • ProductBacklog • Nopreparationforsprintplanningmeetings • User stories withoutanystatement • Stories aretoobig • Sprint Backlog • Not visible in thedailyscrum • Toomanytasks „in progress“ • Burndown Chart • Not visible in thedailyscrum • Usedasmanagementcontrolinstrumentinsteadof a helpinginstrumenttotheteam • Not drawingconsequencesfromunfavorableprogresschart
Outline • Overview • Agile Manifest • Agile Methods • Extreme Programming • Values • Principles • Rules and Practices • Lifecycle • Scrum • Backlogs • Sprints • Daily Scrum • Review andRetrospective • Summary • Common Mistakes • RemarksandConclusions • Sources
RemarksandConclusions on Agile Processes • Agile programming = common sense! • Easierandfasterreactiontochanges • Alwayshaving a compilingandrunningprogramisgreat! • Lessbugsthankstoconstanttesting • Satisfactionwithbothprogrammersandcustomers • Heavy focus on communication Hardtoapplywith offshore development
Sources • Agile Principles, Patterns, and Practices in C#, Martin C. Robert, Prentice Hall, 2006 • http://www.XProgramming.com • http://www.it-agile.de • http://www.agile-process.org • Presentation „Überblick über XP“ by Dr. Martin Geier, methodpark AG, 2011 • Presentation „Anleitung zum Ruinieren eines Scrum-Teams“, Udo Wiegärtner, .NET day Franken 2012 • Video „ExplainingScrum in lessthan 120 seconds“ (http://youtu.be/WxiuE-1ujCM)