Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
May 10, 2021 11:31 pm GMT

What is Agile Demystifying Agile

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

It is Software development Methodology. So, lets say we treat it as a definition of Agile.

Everyones 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. Dont worry, I wont 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.

Lets 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.

Lets 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 cant 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

  1. Methodology
  2. Specific way of developing software
  3. 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 values does it promise.

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 ones 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 ones 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 doesnt 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.


Original Link: https://dev.to/najeebarif/what-is-agile-demystifying-agile-2b9o

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To