Agile and Scrum – What’s the Difference?

Agile Checklist
3 Ways to Use the Agile Methodology at Home and Stop the Chaos
June 16, 2014
Why Microsoft Should “Go All In” – Takeaways from the 2014 Microsoft Worldwide Partners Conference (WPC)
July 29, 2014

Agile software development is a general term that represents a group of software development methodologies including Rational Unified Process (RUP), Extreme Programming (XP), Scrum and others.

The hallmark of all Agile methodologies is iterative and incremental development. These methodologies are the polar opposite of the traditional Waterfall methodology in which all requirements are analyzed and documented and fleshed out before development begins. With Agile, requirements are developed and evolve as the actual software development progresses in each short iteration.

The advantage of this is the flexibility of being able to react quickly to changes in requirements and the priorities of the business. Agile solves the problem of waiting long periods of time before development can begin. It also solves the problem of adjusting large development schedules and budgets when inevitable changes come.

So, with that introduction, what distinguishes Scrum from other Agile methodologies? Scrum is a particularly simple and flexible Agile methodology. Actually, Scrum may be used as a methodology for producing any product and has been used in the manufacturing process as well software development.

Simplicity, flexibility, and close communications and collaboration are the major distinguishing attributes of Scrum.

Simplicity

There are only three major roles with Scrum development:

  1. 1. Product Owner
  2. 2. Scrum Master
  3. 3. Development Team

 

There are other ancillary roles (called “chickens”), but these are the three “committed” roles, called “pigs” in Scrum (from the “The Chicken and the Pig” story – for breakfast, the chicken is “involved”, but the pig is “committed.”)

The Product Owner represents the customer or the business for product or system requirements and priorities. This is the role with the most authority and responsibility.

The Scrum Master is a facilitator on the project. He does not manage the team like a traditional Project Manager. His primary job is to motivate the team and remove any impediments preventing the Development Team from reaching its goals.

The Development Team or Team Member is the last of the committed roles. The Team is self-managed. For a software development project, the team is made up of developers, architects, analysts, QA analysts and testers, and UX/UI designers. The Team works together to determine what will be delivered with each development sprint, and then they take the responsibility for delivering to their commitment.

Development is done is sprints. These sprints are 1, 2, or 3 weeks in length. The Team commits to a certain amount of work to be completed during a sprint. Because of their commitment to work together and accomplish a certain amount of work during the current sprint, they are expected to deliver to their commitment.

Flexibility

Unlike the seemingly endless documentation that results when business and technical requirements are documented and detailed in the Waterfall methodology, user stories are used to describe the functions to be developed in the Scrum methodology. These user stories are stored in a backlog using a tool like Pivotal Tracker and prioritized for development. Any user stories that are recorded but deferred for development are stored in the icebox.

If the business decides to change or add stories to the backlog and prioritize to the top of the list, the Team can adjust as early as the next sprint and develop the new stories, instead of what was originally planned. This allows the business to change their minds and the team to adjust on the fly to the changing needs and desires of the business.

The ability to change and turn on a dime is one of the most powerful attributes of the Scrum methodology. Business is change, and if your software cannot be changed rapidly, then change in your methodology and processes is overdue. In the current business environment, your development team must be flexible. You must be able to change your software systems quickly and effectively.

Communications and Collaboration

I honestly do not know why we used to develop software according to the Waterfall methodology. We spent several months meeting with business users, documenting requirements, and then we went away and developed the software for 3-9 months, before we ever talked with the business users again. What were we thinking!? The result of this was always something like, “No, that’s not exactly what we wanted. Can you change… X, Y, oh… And Z?”

Instead, we now communicate with the business users daily and weekly and every 2-3 weeks, all of these, according to sprint schedule. This close communications and collaboration is the main thing that makes this methodology successful. It is all about communications. Even if you decide to vary from the strict tenets of the Scrum methodology, close communications and collaboration will make your development efforts successful.

Rugby

A scrum is the name for the method of restarting play in the game of rugby. The two teams are in a closely interlocked group in the field and then the ball is thrown into the middle of this tightly knit group. Each side must then work closely together to move the ball to the goal.

The same is true of the Scrum team in software development. It is a messy grouping and collaboration, but if everyone works hard and pulls together, the ball can be moved closer to the goal with each sprint.