Understanding Agile: Beyond just a methodology
The short answer to this frequently asked question is: no. Agile is not a methodology, nor is it a framework.
In essence agile is a set of values and principles guiding your way to being agile. A way of thinking, so to speak; a philosophy leading towards agile behaviors that produce specific results.
It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages flexible responses to change.
Within the Agile philosophy, frameworks and methodologies have been developed over time. Scrum probably being the most well known to the larger audience. We have listed the most popular ones here.
Agile vs Scrum
What is Agile?
Agile philosophy is based on iterative (product) development, where requirements and solutions evolve through collaboration between self-organizing cross-functional (multi-disciplinary) teams. Agile methods or Agile processes generally promote a disciplined process that encourages frequent product inspection and adaptation, it is also a philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices intended to allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals. Agile development refers to any process that is aligned with the concepts of the Agile Manifesto.
What is Scrum?
Scrum is a subset of Agile. It is a lightweight process framework for agile development, and the most widely-used one. It consists of a set of rules, conducts, roles and behaviors described in the “Scrumguide”. Originally Scrum was only used in software development, but nowadays Scrum is used much more widespread across different industries.
- A “process framework” is a particular set of practices that must be followed in order for a process to be consistent with the framework. (For example, the Scrum process framework requires the use of development cycles called Sprints, the XP framework requires pair programming, and so forth.)
- “Lightweight” means that the overhead of the process is kept as small as possible, to maximize the amount of productive time available for getting useful work done
A Scrum process is distinguished from other agile processes by specific concepts and practices, divided into the three categories of Roles, Artifacts, and Time Boxes. These and other terms used in Scrum are defined below. Scrum is most often used to manage complex software and product development, using iterative and incremental practices. These increments, little bits of user functionality called user stories, are prioritized, and then continuously delivered in short two week cycles called iterations or sprints.
Scrum significantly increases productivity and reduces time to market, whilst increasing adaptability relative to classic “waterfall” processes.
Scrum vs Waterfall
Waterfall methods use a subsequent step by step approach where design, planning, development and delivery follow up on each other. Scrum also uses the same flow, yet chops this process up into many short iterations: sprints. Every sprint the team delivers a working product or product increment. This way adaptability is ensured and it’s much easier keeping everyone involved.
Scrum processes enable organizations to adjust smoothly to rapidly-changing requirements, and produce a product that meets evolving business goals. An agile Scrum process benefits the organization by helping it to
- Increase the quality of the deliverables
- Cope better with change (and expect the changes)
- Provide better estimates while spending less time creating them
- Be more in control of the project schedule and state