Scrum goes back to 1986. It was first defined as “a flexible, holistic product development strategy where a development team works as a unit to reach a common goal” as opposed to a “traditional, sequential approach” in 1986 by Hirotaka Takeuchi and Ikujiro Nonaka in the New Product Development Game. They later argued in The Knowledge Creating Company that it is a form of “organizational knowledge creation, especially good at bringing about innovation continuously, incrementally and spirally”.
Ken Schwaber along with Jeff Sutherland, John Scumniotales and Jeff McKenna have been the first to use what would become known as SCRUM in their companies in the early 1990s. In 1995 Sutherland and Schwaber released a paper describing SCRUM as a methodology at the Business Object Design and Implementation Workshop held as part of Object-Oriented Programming, Systems, Languages & Applications ’95 (OOPSLA ’95) in Austin, Texas. Schwaber and Sutherland collaborated during the following years to merge the above writings, their experiences, and industry best practices into what is now known as scrum.
Although the word is not an acronym, some companies implementing the process have been known to spell it with capital letters as SCRUM. This may be due to one of Ken Schwaber’s early papers, which capitalized SCRUM in the title.
The need for speed and flexibility in the product development areas resulted in a different approach than the traditional sequential approach. The old method preached a phase to phase approach to product development where the functions were segmented and specialized. With the “rugby” approach product development is done by self-organizing, multidisciplinary teams whose members work together from the start to the finish. This resulted in the birth of the Scrum framework, named after the term “scrum” in rugby.
From all the agile methodologies Scrum is the most popular and is based on the Agile Manifesto:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- responding to change over following a plan
The values on the right are less important than the ones on the left. “The Agile Software Development Methods have the potential to provide higher customer satisfaction, lower bug rates, shorter development cycles, and quicker adaptation to rapidly changing business requirements.” Scrum has as an objective to organize people and deliver a high quality product on time. “Scrum is not a process or a technique for building products; rather, it is a framework within which you can employ various processes and techniques.”
The Scrum team consists of:
- Product Owner
- Scrum Master
- Development Team
The teams are cross-functional, self-organizing and have all the capabilities to accomplish their work.
The Product Owner is responsible for:
- Maximizing the value of the product
- Maximizing the team potential to work
- Managing the Product Backlog
- Interfaces with management and stakeholders
- Manages the change requests
- Assigns priority for work packages
The Scrum Master is responsible for:
- Ensures theory, practices and rules of Scrum are enforced
- Serves as a coach for the development team
- Removes impediments for the team
- Facilitates Scrum events
The development team is responsible for:
- Delivery of a potentially releasable product
- Responsible for the product
- Maximum recommended size of 10 people
All Scrum Events are time-boxed and have a maximum duration.
Sprint is a time boxed event no longer than 4 weeks at the end of which a potentially releasable product should be available. Sprint activities: sprint planning, daily scrums, development work, review and retrospective. Each sprint has a goal and they come one after the other, as soon as one is finished another can begin.
The Daily Scrum event is a 15 minutes long meeting held every day. Its purpose is to synchronize the team and plan the next 24 hours. The Scrum Master reviews work done since last meeting and approves work for the next interval. Every team member explains:
- What work they have done since the last meeting;
- What work they are going to do today;
- If they have any impediments that prevents the team from achieving the Sprint goal.The Sprint Retrospective event is a meeting that has the sole purpose of analyzing the results of the Sprint and create an improvement plan.
The Sprint Review event is a meeting held after the end of each Sprint to inspect the product that resulted.
“Scrum’s artifacts represent work or value to provide transparency and opportunities for inspection and adaptation. Artifacts defined by Scrum are specifically designed to maximize transparency of key information so that everybody has the same understanding of the artifact.”
The Product Backlog is a list of prioritized functionality items that might be needed by the product, and is the only source of requirements.
According to a case study research in six companies the following conclusion has been reached: “SCRUM works in any environment and can scale into programming in the large”. Furthermore, another study shows that use of Scrum can result in a productivity increase in comparison to the traditional methods. Scrum helps lower project complexity and brings order to the project by enabling teams to self-organize which allows for a productive environment to emerge.
However there are some shortcomings to Scrum:
- Scrum does not provide in depth design documentation for future development.
- Having put focus on bringing order to the development process it may not fit projects that require a high level of innovation.
- Testing and Quality Assurance need to be done different than in PRINCE2 and there can be challenges in implementing new testing methods and procedures.
- There can be a lot of resistance when it comes to Scrum adoption in the organization.
- Encourages team work.
- Maintains transparency of the development process.
- Breaks down hierarchies.
- Keeps a focus on user features. (this is a weakness also in some cases)
- It is adaptive.
- Encourages visibility of the development.
- Has built-in communication process – the planning and daily stand-up meetings. This forces and ensures the team is aware of everything that is happening. Continuous communication is key to a project’s success.
- Shippable deliverable. Most of the time the customer are not really clear of what is needed. But when the customer sees a working product, they can tell if that’s what they want or not. This is similar to prototyping. But prototyping can be just on paper or screen design and may not be good enough for customer to see what he/she will eventually get.
- Scrum expects team members to have multiple skills – design, coding, testing, writing user stories etc. The skills acquired will make a scrum team member to be able to contribute actively in future projects and any kind of discussion.
- Lean product backlog and sprint backlog management.
- Keeps a focus on user features: Focus on user features to some extent is ok but what if the process is totally in to it? A slow and clean approach always seems difficult to a team! Non functional requirements can be ignored since they don’t have any direct impact on the user.
- With scrum every team member needs to forget about his/ her area of expertise.
- Scrum is more useful to the companies that are product based rather than other aspects.
- Meetings are time-boxed. Its good to ensure we are focused. However, there may be more things to discuss and clarify especially during the start of the project or start of a sprint. Limiting time may result in some important discussion & agreements is missed.
- In scrum, the Product Owner is the key decision maker with regards to requirements (product backlog) and its prioritization. Unless the Product Owner has full and complete knowledge of all the requirements, which is a rare case, he/she will not be able to provide accurate and instant answers to the team members. This situation will cause some delays in the team’s progress.
- Some organizations are very operational in nature. They do not have dedicated project teams working on software development projects. Since operational support is always the number one priority for most organizations, it is going to be very difficult to assign a few members to be spending full time on a software development project as demanded in SCRUM.
- Effort estimation depends on each team members skill set, experience and familiarity with the system. Different estimates may be given due to lack of skill set rather than lack of understanding.
Can It Benefit You or Your Organization
Benefits From The Client Perspective
Even though clients don’t really care about the project management methodology the team uses they do gain some benefits from SCRUM. It provides some benefits over traditional methods and over other Agile methodologies:
- Scrum puts the control of the value stream back in the hands of the business
- Scrum delivers products more quickly
- Scrum allows clients to change priorities and requirements quickly
Benefits From The Organization Perspective
When it comes to adopting SCRUM as a new methodology for your organization take into account that people, processes, clients and management will be affected. It pays to see some benefits quickly and SCRUM shines here:
- Scrum keeps an organization honest and helps them to meet their commitments
- Scrum promotes transparency; you no longer need to hide the truth, you can be open and honest with everyone
- Decision making is shifted to the lowest level (line employees), to the people best able to understand all of the facts
Benefits From The Management Perspective
Predictable development process gives management benefits like:
- Better workforce management
- Enhanced customer and client relationships
- Visibility into the entirety of the project management process
- Motivated and inspired team members
Benefits From The Product Perspective
Well products don’t care about benefits but the product lifecycle will be improved by SCRUM resulting in some product benefits:
- Improved credibility with your clients due to a higher quality product
- More predictable release cycle with built-in testing processes leads to product stability
- Sprint Review leads naturally to a product that the client wants and is excited about
Benefits From The Team Perspective
Autonomy, self-direction, constant feedback and collaboration lead to benefits like:
- Unlock the true potential of the team
- Create a safe working environment where people can thrive
- The team learns to achieve a sustainable pace, so that they can continue to be productive over the long haul
What is your view on SCRUM, is it something you would like to learn, practice or implement? Post your comments below.