SE470 – Spring 2003 SCRUM -an agile software development methodology Scott Mikneus Anthonia Akinde
Introduction to SCRUM • Scrum is an Agile Software Development Process. • Scrum is not an acronym • name taken from the sport of Rugby, where everyone in the team pack acts together to move the ball down the field • analogy to development is the team works together to successfully develop quality software
Introduction to SCRUM (cont.) • Jeff Sutherland (a guru) states: • “Scrum assumes that the systems development process is an unpredictable, complicated process that can only be roughly described as an overall progression.” • “Scrum is an enhancement of the commonly used iterative/incremental object-oriented development cycle”
Historical Background • Jeff Sutherland • first person to apply concepts of Scrum to software development in 1993 • A variation of Sashimi • Japanese designed an all at once approach after their bad experiences with Waterfall • The initial use of the word "Scrum" was used in 1987 to describe time-boxed, self-organizing, teams in product development
Historical Background (cont.) • Jeff Sutherland and Ken Schwaber • collaborated to define the process through 1995. In 1996 wrote the seminal article for Scrum Software Development process • jointly used and improved Scrum at a variety of software development organizations from 1996 until now • now promoting the idea of certifying ScrumMasters
Description Overview • Scrum is named after the game of Rugby in which a group is responsible for picking up the ball and moving it forward. • It is an iterative, incremental process for developing any product or managing any work. • Scrum focuses on the entire organization for its implementation to be a success.
Description Overview (cont.) • Scrum principles include: • Quality work: empowers everyone involved to be feel good about their job. • Assume Simplicity: Scrum is a way to detect and cause removal of anything that gets in the way of development. • Embracing Change: Team based approach to development where requirements are rapidly changing. • Incremental changes: Scrum makes this possible using sprints where a team is able to deliver a product (iteration) deliverable within 30 days.
Description Components • Roles: • Scrum Master • Developer • QA • Documentation member • Project manager
Description Components (cont.) • Processes: • Pregame • Planning and Architecture: • - Identify project • - Prioritizing functional requirements • - Identify resources available • - Establishing the target environment
Description Components (cont.) • Processes: • Game • Sprints:- lasts for 30 days • - Analysis, Design, Develop • - Testing (this happens throughout sprint) • - Review • - Adjust • Postgame • - Closure (this includes delivering a functioning deliverable, sign-off, start next sprint.
Description Components (cont.) • Values: • Flexible deliverable • Flexible schedule • Small teams • Frequent reviews • Collaboration • Team Empowerment • Adaptability
Description Advantages • Extreme value - reduces risk in ROI • Supports business value driven S/W Dev. • Control of very complex process of product development • Allows Developers to focus on delivering a usable functionality to the client • Generates productivity improvements by implementing a framework that empowers teams and thrives on change • Insists that the Client prioritize required functionality. • Ability to respond to the unpredictable in any project requirements.
Description Advantages (cont.) • Flexibility • Knowledge sharing between Developers • Collective ownership • OO technology
Description Disadvantages • Scrum is not effective for small projects • Expensive to implement • Training is required
Usage Guidelines – When to use • requirements are not clearly defined. • work is delivered in increments • work is measured and controlled • productivity is maximized by applying known technologies • organizations are willing to do anything and everything for a project to succeed • project is important and no one has confidence that any existing approach will work. • control and management is Empirical
Usage Guidelines – When to avoid • there isn’t a flexible environment • corporate culture isn’t conducive to this of development environment • teams of developers are more than 10. Six is ideal. • Cost is a major issue • No management support • No formal training available
Usage Guidelines – Implementation • Need for an extra member just in case an active member is absent, the documentation member substitutes • Location: Although not impossible, its hard to implement Scrum when all team members are not in the same location • Non-Supportive management • Cost • Lack of Customer Involvement • Collective ownership • Isolation of sprint team
Scrum and CMM • CMM advocates Repeated Defined problems, solutions, Developers and organizational environment. • Scrum says that this is not entirely possible because developers change from one project to another. • Scrum assumes that the development process is always empirical and not defined. • Scrum says uncertainties are impossible to measure, therefore, looks beyond the repeatable /defined approach
Marketplace Analysis – Key players/Gurus • Jeff Sutherland • one of the co-developers of the Scrum process. Jeff invented many of the first ideas and practices for Scrum. Owner of the website: http://jeffsutherland.com. • Ken Schwaber • one of the co-developers of the Scrum process. Co-author of the book Agile software Development with Scrum. • Mike Beedle • owner of e-Architects Inc., a technical and management consulting company that specializes in adaptive software development. Co-author of the book Agile software Development with Scrum.
Marketplace Analysis – Organizations • Agile Alliance • website www.agilealliance.org states: “The AgileAlliance is a non-profit organization dedicated to promoting the concepts of agile software development, and helping organizations adopt those concepts.” • Object Mentor, Inc. • Website www.objectmentor.com: “The Object Mentor mission is to provide the technical and business leadership that helps our customers get their projects done” • ADM Advanced Development Methodologies • a 15 year-old process development company that develops processes, provides process consulting to its customers, and develops tools to support the use of these processes
Marketplace Analysis – Products • controlchaos.com • offers certification to become ScrumMaster • Website states: Attendees will be thoroughly trained in the Scrum methodology and software. • Upon successful completion, each attendee will become a Certified ScrumMaster and receive an individual license to the methodology and software.
Marketplace Analysis – Products (cont.) • controlchaos.com • cost for a session is $500 • The description of their product • “Scrum is a suite of products for Agile software development. Scrum’s iterative, incremental practices allow development teams to rapidly deliver functionality to customers.”
Market Data / Forecasts • Advanced Development Methods (ADM) • involved in the certification of ScrumMasters and they have certified 50 ScrumMasters to date. • Specific statistics could not be found on how quickly Scrum is being adapted • Some companies that have implemented Scrum successfully: • Borland, Canon, Easel Corporation, Elementrix Technologies, Fujitsu, Honda, and Nike Securities in Chicago
Conclusion • Scrum offers: • a high degree of flexibility • promises a high probability of success • Scrum benefits: • an anticipating culture • increases the sense of urgency • promotes the sharing of knowledge • encourages dense communications • facilitates honesty among developers
Recommendations • We recommend Scrum as an adaptive and flexible development methodology that creates a culture of communication, knowledge sharing and teamwork within an organization.
References • Schwaber, Ken and Mike Beedle. Agile software Development with Scrum. Prentice Hall, 2002. • Sutherland, Jeff. “Inventing and Reinventing Scrum in five companies”, 21 September 2001 • www.controlchaos.com/scrumwp.htm • www.agilescrum.com/ • www.mountaingoatsoftare.com/scrum/ • www.objectmentor.com • agilealliance.com/articles/articles/InventingScrum.pdf • jeffsutherland.com/
The End. • Thank you • Questions or comments