SCRUM John Drew SCRUM - overview Scrum is a project management discipline that has evolved since the early 1990s to deliver software that meets business needs within an environment of complex and evolving requirements, innovative technology and creative people. Scrum provides a framework that can meet the needs of modern software development projects to manage changing and uncertain requirements. This is achieved through iterative and incremental development with frequent feedback. SCRUM - overview Unlike other iterative approaches such as the Unified Process, the Scrum methodology is light on prescribed ways of working, production of artifacts and use of tools and languages Scrum encourages teams to be self-organizing and empowered to do what is necessary to deliver valuable business software SCRUM - components Product Backlog – – – – The product backlog is an evolving, prioritized queue of business and technical functionality that needs to be developed into a system It is a list of all features, functions, technologies, enhancements and bug fixes that constitute the changes that will be made to the product for future releases Backlog originates from many sources. The most obvious source is customer-generated requirements. However, requirements can also come from marketing and sales, from engineers or from customer support, who track bugs reported from external users The items in the product backlog are prioritized SCRUM - components Sprint – – – – – represents a development cycle in the Scrum world A Sprint can be as short as a week or as long as 6 weeks. However, Sprints are usually constrained to be no longer than 30 days The team has complete control over the Sprint and over how they will achieve the objectives of the Sprint At the end of the Sprint, the team produces an increment that builds on previous increments After each Sprint, the project team meets with all stakeholders, including high-level management, customers and customer representatives SCRUM - components Sprint Planning Meeting – – – Each Sprint begins with a Sprint Planning Meeting in which the development team meets with the Product Owner (typically someone from a Marketing role or a key user in internal development), management and the users to figure out what functionality to build during the next Sprint Usually, the items in the product backlog with the highest priority are selected for the next sprint The team then works by itself to figure out how it is going to build this functionality into a product increment during the Sprint SCRUM - components Scrum Master – – – – – a new management role introduced by Scrum is responsible for ensuring that Scrum values, practices, and rules are enacted and enforced represents management and the development team to each other minimizes the amount of external interference that the team experiences identifies and remove any obstacles that are keeping the development team from completing the Sprint SCRUM - components Daily Scrum – – is the heart-and soul of Scrum is a daily meeting of the Scrum team and Scrum Master same time and place each day meeting should only last 15 – 30 minutes each team member explains what he has accomplished since the last meeting, what he is going to do before the next meeting and what obstacles are in his way SCRUM - process SCRUM - benefits Scrum is flexible in that it does not work off the “old school” assumption that requirements should be frozen before development begins mitigates risks by addressing them early in the development process customer begins to see results very early in the project development team is able to participate in all phases of the development process SCRUM – usage guidelines Scrum should be used when the development team is fairly small, no more than 8-10 team members Scrum does not work well when the development team is large and/or when the development team is geographically distributed SCRUM – implementation success factors The key element in the Scrum process is communication An open seating arrangement, preferably with workstations in the middle of the room, is preferable as it accommodates and encourages communication The Scrum Master must be empowered to remove obstacles that stand in the way of the team making real progress SCRUM - challenges Getting the development team to take control over the process Retraining senior management to stop thinking in a “waterfall” manner and start thinking in a Scrum manner SCRUM – key players Jeff Sutherland SCRUM – key players Ken Schwaber SCRUM – key players Mike Beedle SCRUM – market forecasts There are not many case studies on Scrum Difficult to assess its success or to estimate just how many developers or firms are actually using Scrum It is unlikely that Scrum will catch on in organizations with large (>10) development teams because the communication management becomes too difficult It is likely that as the agile software development “movement” gains momentum, the use of Scrum and its principles will increase. SCRUM - resources Web sites – – – ControlChaos.com Jeff Sutherland’s Scrum Log Mountain Goat Software Books – – – Agile Software Development with Scrum Agile project Management with Scrum Agile Modeling: Effective Practices for Extreme Programming and the Unified Process