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”
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 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 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
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