What is Agile?

It is not possible in some projects to gather all the requirements upfront because of their extreme uncertainties. So we use an “adaptive” method instead of a “predictive” one, in which we only define and plan a short period in the future, create a working product, and use the product to understand the needs and use the feedback to plan further and add more functionalities to the product.

Adaptive methods are called Agile.

What is Scrum?

There are many Agile methodologies and frameworks. The most famous Agile framework is Scrum, which is a very simple, lightweight one.

These are the concepts defined in the core framework:

When do We Need to Use Agile?

Agility is helpful when it’s hard to define the product upfront, because we can’t understand it entirely, or the customer keeps changing its mind. In those cases, if you try to use a predictive method with upfront plans, you will have many change requests, and it will decrease your productivity and increase time and cost.

When Can We Use Agile?

Agility is based on adaptation, which in turn is based on the capability of producing pieces of working product throughout the project and using that for receiving feedback from the end users or their representatives. The interim outputs should be working product, because otherwise we won’t be able to receive real feedback.

The working product is always “incremental”, which means we keep adding new features to it. The development should be “iterative”, which means we should repeat the development processes (e.g. design) for each Increment.

We can only use Agile when the product has the capability to be developed iteratively and incrementally. Unfortunately, not every product has it. The best case for Agility is software development. It’s also used in some research projects, and many programs (e.g. organizational change initiatives).

Professional Scrum Master™ (PSM™) Certification

There are inconsistencies on Scrum concepts in different resources. This wiki tries to stay compatible with the way Scrum is defined by scrum.org, and the PSM™ (Professional Scrum Master™) Exam.

External Resources

View edit history of this page.