• Fri. Mar 29th, 2024

North East Connected

Hopping Across The North East From Hub To Hub

Agile vs Scrum: What’s the Difference Between Them?

Anyone who is familiar with the day-to-day practices of software engineering will have most certainly come into contact with a variety of development project management methodologies such as Agile, Lean, and Waterfall. Over the course of a project, you’ll make many big decisions. And one of the first decisions you’ll make is choosing which methodology to follow. Today we’ll be looking at the relationship between Agile and Scrum. Perhaps the most famous methodologies, Scrum is actually an offshoot of Agile, or at least that’s the common conception. Let’s look a little more closely at Agile vs Scrum. 

A closer look: Agile

Agile is based on an incremental, iterative approach. Instead of intensive planning at the start of the project, Agile (and its subset methodologies which we’ll refer to later) allows the changing of requirements over time and encourages constant feedback from the end-users. Cross-functional teams work on iterations of a product over a period of time, and this work is organized into a backlog that is prioritized based on business or customer value. The goal of each iteration is to produce a fully functional product. Established in 2001 by 11 software developers in Utah

Agile development methods

The 12 Principles of Agile Methodology

The Manifesto for Agile Software Development lists 12 principles, which go as follows:

  1.  Our highest priority is to satisfy the customer through the early and continuous delivery of valuable software.
  2.  Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
  3.  Deliver working software frequently, from a couple of weeks to a couple of months, with preference to the shorter timescale.
  4.  Business people and developers must work together daily throughout the project.
  5.  Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  6.  The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
  7.  Working software is the primary measure of progress.
  8.  Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9.  Continuous attention to technical excellence and good design enhances agility.
  10.  Simplicity — the art of maximising the amount of work not done — is essential.
  11.  The best architectures, requirements, and designs emerge from self-organizing teams.
  12.  At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. 

A closer look: Scrum 

Scrum is a subset of Agile and one of the most popular process frameworks for implementing Agile. So, it would appear they’re complementary methodologies rather than competing frameworks. Unlike some other frameworks, Scrum follows a more structured methodology. Like Agile, it is also iterative — and is used to manage complex software and product development.

It uses fixed-length, two-week periods known as sprints where stakeholders and engineers meet to share progress and offer incremental feedback. It’s a fast and effective subset of the agile framework that’s designed to deliver value to the customer throughout the development of a project.

Scrum methodology

Let’s look at how methodologies affect a project in real terms…

You can’t build a house without blueprints

Imagine you’re building your dream house from scratch. It’s impossible without architects and architecture. Software isn’t any different. In the context of Agile vs Scrum and how methodology makes a difference, we spoke with Information Systems professor David Wastell, who explained: ‘In simple terms, Software Architecture refers to the main components of a software system and how they relate to one another. An easily understood, orderly, and consistent overview of the system being developed ensures that every individual and team knows exactly what they’re doing and how their work fits into the bigger picture.

Fred Brooks, in his classic book on software engineering (The Mythical Man Month, 1975, 1995) refers to this as ‘conceptual integrity’. Conceptual integrity is critical to scalability, in other words to the existence of a direct relationship between manpower and output. Without it, simply deploying more developers will neither speed up a project nor allow a larger project to be accomplished; rather, it is a recipe for chaos. As Brooks pithily observed “adding manpower to a late project will only make it later”. 

Discover more about  agile vs scrum