Agile Scrum Development Carter Jasinski
Outline ● Introduction ● Roles ● Artifacts ● Sprints ● Uses
Agile Manifesto ● Customer satisfaction by rapid delivery of useful software ● Welcome changing requirements, even late in development ● Working software is delivered frequently (weeks rather than months) ● Working software is the principal measure of progress ● Sustainable development, able to maintain a constant pace ● Close, daily cooperation between business people and developers
Agile Manifesto ● Face-to-face conversation is the best form of communication (co-location) ● Projects are built around motivated individuals, who should be trusted ● Continuous attention to technical excellence and good design ● Simplicity—the art of maximizing the amount of work not done—is essential ● Self-organizing teams ● Regular adaptation to changing circumstances
What is Scrum? ● Scrum is an Agile software methodology ● Built specifically to encourage teamwork and open communication ● Name comes from the “scrum” play in rugby
Scrum: Origins ● Created in 1986 by Hirotaka Takeuchi and Ikujiro Nonaka ● “a flexible, holistic product development strategy where a development team works as a unit to reach a common goal.”
Scrum: Origins ● Came to the forefront in 1995, when Ken Schwaber used it at Advanced Development Methods and Jeff Sutherland at Easel Corp. ● Presented at OOP, Systems, Languages & Applications '95 in Austin, TX ● First time the methodology was given a name and presented to the public
Overview ● Product backlog is created from user stories (“As a, I want so that.”) ● Chunk of product backlog is put into sprint backlog ● Process cycles until final release
Roles ● Product Owner ● Scrum Master ● Development Team
Product Owner ● Responsible for the success of the project ● Involved with the business side ● Creates product backlog ● Ultimately there to keep client happy
Scrum Master ● In charge of keeping the process on track ● More of a helper than a manager ● Works with Product Owner to maintain product backlog ● Remove impediments that crop up ● Makes sure the Scrum process is being used correctly
Development Team ● Fulfills backlog items ● Contains a wide array of skillsets: analysts, programmers, testers, etc. ● Has a lot of say in what goes into each sprint backlog ● However, it's imperative that the development team completes everything in the sprint backlog by the end of the sprint cycle
Artifacts ● Product Backlog ● Sprint Backlog ● Product Increment ● Burn Down Chart
Product Backlog ● Contains everything needed to build product up to customer's expectations ● Feature ideas, documentation requirements, bug fixes, etc are all contained in the product backlog ● Can be stored electronically (e.g. TFS) or on a whiteboard/post-its
Product Backlog ● Prioritized by product owner based on business criticality ● Also has time estimates attached to each item ● Generally grows considerably throughout the course of development ● Product owner is in charge of maintaining the product backlog
Sprint Backlog ● Contains product backlog items to be implemented during current sprint ● Primarily up to development team's discretion ● Highest priority items will typically be the ones tackled ● Once set and agreed upon, only development team can add to it
Product Increment ● Current product at the end of each sprint ● Summation of all sprints to have come before it ● Each product increment must be fully functional and ready to release
Burn Down Chart ● Visualization for the Scrum team to see their progress during a given sprint ● Can also be used for entire process rather than a single sprint ● Updated daily ● Shows both estimated burn down and actual burn down ● Optionally shows velocity
Burn Down Chart
Sprints
Sprint Planning ● Begins with planning meeting attended by entire Scrum team ● By the end of the meeting, a sprint backlog and sprint goal will be created ● Sprint Goal: a one-to-two sentence, high-level description of what will be worked on during the sprint
Daily Scrum ● Led by Scrum Master; keeps entire team up-to-date ● Each team member answers three questions: – What have I accomplished since the last daily scrum? – What will I accomplish before the next daily scrum? – What impediments/issues, if any, are holding back my progress?
End of Sprint ● Two meetings: Sprint Review and Sprint Retrospective – Sprint Review: what was accomplished during the sprint – Sprint Retrospective: how the sprint was accomplished
Benefits of Scrum ● Flexibility ● Gives developers greater power ● Transparency and communication
Issues with Scrum ● Sprint planning can be tricky ● Works best with smaller teams – Can be adapted to larger teams using “Scrum of Scrums”
Uses ● Of all companies using Agile frameworks, 66% are using Scrum or a variant thereof ● Major companies using Scrum – Google – Adobe – Capcom
Conclusion ● Good framework for small teams ● Encourages communication and teamwork ● Forces transparency with the customers ● Keeps everyone accountable
References [1] PluralSoft Inc. “The Agile Approach and the Use of Scrum in Your Healthcare Analytics Solution”. Retrieved 10/25/2013. [2] Scrum Alliance, Inc. “Core Scrum — Values and roles”. Retrieved 10/25/2013. [3] VersionOne, Inc. “Measuring the Velocity of Your Scrum Team”. Retrieved 10/25/2013. [4] Microsoft Corporation. “Meetings (Agile)”. Retrieved 10/25/2013. [5] Scrum Alliance, Inc. “Who uses Scrum and why?”. Retrieved 10/29/2013. [6] Scrum Alliance, Inc. “Scrum at Adobe”. Retrieved 10/29/2013. [7] Agile 101. “Scaling Scrum & Distributed Teams – Scrum Tuning: Lessons Learned at Google”. Retrieved 10/29/2013. [8] Agile Scout. “Street Fighter Game – Built using Agile and Scrum”. Retrieved 10/29/2013.
Image References
Questions?