Most software development professionals have at least heard of Agile development, and likely utilize one (or a combination) of its methodologies. Although Scrum is arguably the most popular implementation of Agile development, many erroneously consider Scrum and Agile to be one in the same. We know this can be confusing, so this post will help you better understand what Agile development is, and what differentiates Scrum from other Agile frameworks.
Agile is a philosophy of software development based on the Agile Manifesto and the related 12 principles. Agile development takes an iterative approach to designing and completing work with regular feedback intervals; it prevents the “big bang” product release, which often generates “critical paths” that prevent a project from moving forward when a blocking issue arises. In Agile frameworks, testers get their hands on a build well before development is complete, allowing them to provide critical feedback early in the process, and give developers time to adapt to changing requirements.
Frameworks for Agile development include: Kanban, Lean, Scrum, and combinations such as Scrumban. Kanban is focused on visualizing work and avoiding overburdening the team by only picking up work from the backlog as capacity allows. Lean focuses on providing value through regular prioritization and open feedback from customers. Scrumban is a combination of Scrum and Kanban that utilizes the small, focused teams of Scrum, but takes advantage of the more flexible just-in-time philosophy of Kanban.
Scrum is unique in its commitment to short iterations, specific roles on small teams, and a set of ceremonies. A product is built in a series of fixed-length iterations called sprints, typically lasting 2-4 weeks. Regular milestones provide tangible and reportable progress, and require a workable piece of software at the end of each iteration. Over time, this framework lends itself to more accurate forecasting and faster feedback from testers.
Scrum includes three roles: Product Owner, Scrum Master, and Scrum Team. The Product Owner sets the vision for what should be built, and conveys the vision to the team. The Scrum Master acts as a servant leader, never dictating what the team should do, but instead, helps them become autonomous and complete their best possible work. The Scrum Team is a group of “cross-functional” developers, testers, and documenters. To complete the cycle of develop>test>document in such short iterations, each team member must be flexible in assisting others to complete their collective commitments. For example, if testing falls behind, the developer and documenter have a commitment to pitch in and complete the work in its committed cycle.
The ceremonies of Scrum are based on a cyclical process of planning and refining. A product will start in release planning, during which the Product Owner outlines their vision for an incremental release. During sprint planning, the Scrum Team commits to completing a set of work based on their capacity and effort estimates, as well as the Product Owner’s priorities. The Scrum Team meets with the Product Owner and Scrum Master every day for a 15-minute Daily Scrum standup to refine their goals and ensure commitments are on track. At the end of each sprint, the team reviews the work they have completed and takes a retrospective look at what they can learn from the Sprint to improve for the next iteration. The team also regularly grooms and refines the backlog to make sure it only contains items that are relevant, detailed, and on target for the project’s objectives.
While Scrum is very popular for a reason, there are many agile approaches to development that may be better or worse for an organization, or even a specific project, depending on available resources, customer needs, and scope. New Century Software has a Certified Scrum Master that leads teams in utilizing the Scrum Framework, but we continue to test new and improved frameworks for higher quality products with a quicker turnaround. For more information on Agile and Scrum, visit Agile Alliance and Scrum Alliance.