1 / 32

Agile Programming

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

Download Presentation

Agile Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Agile Programming Advanced C++ Programming Seminar Anton Kaiser, Summer Term 2012

  2. 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

  3. 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

  4. Overview: Agile Methods • Extreme Programming (XP) • Scrum • Agile Unified Process (AUP) • Crystal Clear • Feature Driven Development (FDD) • GSD • Kanban (development) • Open Unified Process (OpenUP) • …

  5. 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

  6. Extreme Programming • Extreme Programming isbased on • Simplicity • Communication • Feedback • Courage • Respect • Extreme Programming • Brings thewholeteamtogetherwith simple practices • Givesfeedbacktotheteamandenablesitto tune thepracticestotheiruniquesituations

  7. 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“

  8. Extreme Programming:Values • Feedback • Feedback fromcodebyunit-testingregularily • Short iterationcyclesforcontinuousfeedback • Integratingthecustomerforimportantfeedback • The morefeedback on all levelsthebetter • Courage • Open communicationwith all teammembers, includingthecustomer • Prototypesshallbethrownaway • Refactoring

  9. Extreme Programming:Principles • Embracechange • Itisbettertolearnhowtoreacttochangesthantopredictthefuture • IncrementalChanges • Small stepsarefasterandeasier • Quality • The teamhastobeproudofitswork • Communication • Usethecollectiveknowledgeofthewholeteam

  10. Extreme Programming:Practices

  11. 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

  12. Extreme Programming:Rules and Practices

  13. Extreme Programming:Rules and Practices • Coding • The customerisalwaysavailable • Code theunittestsfirst • Agree on collectiveownership • Code must bewrittentoagreedstandards • All productioncodeispair programmed • Integrateoften • Refactorwheneverandwhereverpossible

  14. Extreme Programming:Rules and Practices • Designing • Simplicity • Choose a systemmetaphor • A visionforthewholesystem • Also meanschoosingappropriatenamesandlocationsforfunctions • Write class-responsibility-collaborationcards (CRC cards) forbrainstorming • Nofunctionalityisaddedearly

  15. Extreme Programming:Rules and Practices • Testing • All code must haveunittests • All code must pass all unittestsbeforeitcanbereleased • When a bugisfound, testsarecreated • Acceptancetestsarerunoften

  16. Extreme Programming:Lifecycle

  17. Extreme Programming:Lifecycle

  18. Extreme Programming:Lifecycle

  19. Extreme Programming:Lifecycle

  20. 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

  21. Scrum • Scrum • Is an empiricalprocesscontroltheory (EPC) • Iterative, incrementalapproach • Optimizepredictabilityandcontrolrisk • Can beseenas a frameworkwithinwhichyoucanemployvariousprocessesandtechniques • The threelegsthatuphold EPC are • Transparency • Inspection • Adaption

  22. Scrum: Backlogs

  23. Scrum: Sprints

  24. Scrum: Daily Scrum • The dailyscrum • Takes 15 minutesatthestartofeachday • Every teammemberanswerstothreequestions: • Whathave I accomplishedsincethe last dailyscrum? • Whatgot in myway? • What will I do untilthenextdailyscrum?

  25. Scrum: Review andRetrospective

  26. Scrum: Summary

  27. 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

  28. Scrum: Common Mistakes • Tools • „I don‘tneedto understand scrum, mytool will manage everythingforme“ • „Whyuseflipcharts? Wehave expensive toolsforcommunication!“ • Not makinguseofscrumtoolsat all

  29. 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

  30. 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

  31. RemarksandConclusions on Agile Processes • Agile programming = common sense! • Easierandfasterreactiontochanges • Alwayshaving a compilingandrunningprogramisgreat! • Lessbugsthankstoconstanttesting • Satisfactionwithbothprogrammersandcustomers • Heavy focus on communication  Hardtoapplywith offshore development

  32. 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)

More Related