What is Agile – Demystifying “Agile”

What comes to your mind when I say the word “Agile”?

It is Software development Methodology. So, let’s say we treat it as a definition of “Agile”.

Everyone’s golden period in life is their Schooling. Specifically, the 11th and 12th grade and I am no exception to that. So I am going to use a the “basis” of Mathematical Induction to proof the definition of “Agile”. Don’t worry, I won’t go into full blown mathematical induction proof and bore everyone around here. But for people who are not familiar with what Mathematical Induction is then here is a very layman definition for it:

It is a mathematical proof technique and is used to mathematically prove a statement. Long story short, Mathematical induction proves that we can climb as high as we like on a ladder, by proving that we can climb onto the bottom rung (the basis) and that from each rung we can climb onto the next one (the step).

Considering our “climbing the ladder” analogy, we should be able to first climb the bottom rung only then we will be able to climb higher. We can say that we must first establish that the base case holds true only then anything else will be possible.

Let’s assume that the definition of “Agile” is a software development methodology.

What is the actual dictionary meaning of “Agile”? (I usually tell my younger brother and sister that whenever you hear Buzz word in Computer Science, the first thing you should do is lookup the dictionary for its meaning)

  1.    Marked by ready ability to move with quick easy grace or able to move quickly and easily. Ex: an agile dancer
  2. Having a quick resourceful and adaptable character. Ex: an agile mind

The key words here are move quickly and easily and adaptable or flexible so to speak. Now we can derive our own meaning of “Agile” ability to move quickly and easily and also being adaptable or flexible at the same time.

Let’s focus on what do we mean by methodology:

A methodology is a body of methods, procedures and rules for a particular discipline. Set of steps are defined or dictated to be adhered to. – Not so flexible, true?

If we look “Agility” with our Software Development Hat on, we will realize that “Agility” is the ability to continuously adapt and make improvements to the way we work.

Therefore, if “Agile” specified any methodology then, well it will be “Less Agile”.

We can clearly see our initial assumption falling apart. If our initial assumption turns out to be false then it means we can’t mathematically prove any statement. If you can not climb on the first rung then you cannot climb the ladder.

Coming back to our starting question What is “Agile”? (if it is not a software development methodology).

The actual definition of “Agile” is found in the “Agile Manifesto”. The manifesto makes it clear that “Agile” is not

  • Methodology
  • Specific way of developing software
  • Framework or Process

Agile is a set of Values and Principles.

Agile is really a collection of beliefs that teams can use in making decisions about how to do the work of developing the software.

If we truly understand what “Agile” is, then we will learn that it is truly flexible. “Agile” does not make decisions of us but it gives us a foundation that teams can use to make decision that result in better software development.

I urge you to quickly skim through the Agile Manifesto and learn what is valued more.

There are 12 principles behind the Agile Manifesto and they are also a good reading material. Trust me it will hardly take more than 5 mins.

Both the values and principles of manifesto are very general and are less about telling us what to do, than they are about giving us the ability to make good decision in a particular situation. Agile values and principles explicitly avoid prescribing any methods and procedures.

Therefore, Agile is not a methodology but guidance on how to choose to methods and procedures that will work best for one’s team. Now if we consider the fact that if “Agile” specified methodology then it would have resulted in less agility. Less able to adapt to the specific circumstances of one’s team. So instead of giving us what should be done, “Agile” gave us “Values & Principles” which our teams can use to decide what we should do.

Then next obvious question which comes to our mind is that if “Agile” is not a methodology then what are daily stand-ups, product demo, retrospective etc?

While “Agile” is not a methodology, there are a number of methodologies which teams can use to follow agile principles and values.

SCRUM: specifies a number of specific ways for teams to work. This includes having daily stand-ups, fixed length sprints, product demos, retrospectives etc.

Many teams find SCRUM as a very good way to follow “Agile” values and principles. It provides powerful methodology which assists in following “Agile”. But it is also important to know that just following these methodologies doesn’t makes a team “Agile”. They have to know that they are following these principles because it helps them align with the “Agile” values and principles.

Extreme Programming (XP): is another methodology which includes number of practices like Test Driven Development, Pair Programming etc. The extreme programming methodology gives teams methods and processes that can be used to follow “Agile” values and principles. For example, Agile principle says that team should leverage change as a competitive advantage. XP practices give methods for writing software that enables it.

If your team is truly trying to follow “Agile” principles and values, your methodology will evolve over time as your team grows and adapts. After all, that is what it means to be “Agile”.


To view or add a comment, sign in

More articles by Najeeb Arif

  • Kubernetes and Java EE 8: Cloud Native Java EE apps on k8

    In the current era of Cloud Computing, it is extremely important to build cloud native applications and when we talk…

  • Spring Boot and Weblogic JMS – Part II

    This article is the continuation of the two part series on Weblogic 14c JMS and using Spring Boot to send and receive…

    10 Comments
  • Spring Boot and Weblogic JMS – Part I

    If you are building Spring boot applications for Weblogic, then one obvious solution for your messaging needs can be…

    2 Comments
  • Spring Boot on Weblogic 14c

    Running Spring Boot Application on Weblogic 14c and Weblogic 12c If you are here, then that means you are already…

    9 Comments

Insights from the community

Others also viewed

Explore topics