Is Agile Simple or Complex?
In this article, we take a look at the paradoxical nature of Agile, and why such a simple concept can be so hard to implement.
Join the DZone community and get the full member experience.Join For Free
What Does Simple Mean?
Simple is anything which is easily understood with no difficulty.
What Does Complex Mean?
Not simple=complex. It is something which presents some complication. It is fairly predictable with less knowledgeable sources, but it’s still doable.
How Is Agile Simple?
Agile is not simple if you don’t have the Agile mindset. Doing Agile and being agile is different.
How Is Agile complex?
Agile is not complex if you have self-managing people. People who do not need micromanagement.
This is exactly what I don’t like. Diplomacy. So I rushed to my savior here in Quovantis.
“Pankhuri, why do you think Agile is simple and complex at the same time?”
“Ah, Agile! ummm….” *typing*
*still typing after five minutes*
“Come on, you can do it.”
“According to me, Agile simplifies stuff by helping us build the product step by step and not everything in one go. We pick things one by one. We have a working end result after each iteration which gives a full feel of the product. Also, Agile has its own rituals/practices to make life simple.
On the other hand, we can call it complicated! Agile practices can’t be followed blindly. It has to be molded for each and every team or product.
Also, to break the whole product into full-fledged working chunks is itself a challenge. And the main one – in Agile you can’t anticipate anything. You will never know in which direction product will digress. It’s the “market trend” which drives the application in Agile.”
Here we go! I have a lead. I move swiftly with that in my mind and approach our Scrum master, Sumeet.
“What do you say about Agile being simple and complex at the same time?”
They probably hate me for bringing this up during lunch time, but nevertheless, it’s an interesting topic. More interesting than how Trump is gas-lighting America?
Sumeet told me that according to him “Agile is simple if we perceive it as a mindset, we complicate it by forcefully trying to do some practices.”
By now, I have acquired some knowledge of the subject, so I quickly add a cross-question.
“That means it’s a matter of experience. Anyone who has just started following Agile is bound to feel the friction. But if we follow it as a practice, it becomes a habit. Is that what you want to say?”
A moment later, I realize the stupidity of my question. But the moment is gone. Maybe he took a deep breath on this one and then he replied:
“No, not really. We think Agile is complicated because we start doing some practices blindly. Understand the need, develop an Agile mindset, adapt to changes over following a plan, value interactions more than processes and tools, collaborate with customers, get a working software out there and not just a comprehensive documentation.”
*gulp* Whoa! My chest feels heavy.
I need to take this pill with some water. So I say a quick ‘thank-you-for-your-time’ and move on.
I need one more opinion. Set target- Bhuwan Jain. Scrum Master.
“Why is Agile simple and complex at the same time? What do you think, Bhuwan?”
I think he was prepared. Pops his answer in a minute:
“Because Agile does not define the list of rules, which makes it simple (it gives you freedom to decide) and where rules are not defined, people need to be more conscious, they need to be self-organized and self-responsible to make a good decision for the success of the Sprint (that makes it complicated).”
“But Agile does lay out some principles. Principles are not rules?”
Another stupid one.
“Yes, those principles are the expectations. Those are the guidelines, that every project should follow, but it doesn’t define the scenarios that if this happens, you should do this. Team members need to take self-decision to make the project successful.”
Sounds legit. Thank you, Bhuwan.
I think I have it sorted out now. But I need to understand it from a person who just started practicing Agile. And I found him. I asked him for his take on this topic and he agreed to answer me on the condition of anonymity.
*fake news alert*
I said: “Okay. Wish granted. So, what do you think?”
“I think it looks complex when you are introduced to it. In practice, it makes things a lot simpler, processes a lot smoother.”
“Better than waterfall? Is it simple? Is it complicated? I am getting good at this.” *smirks*
“Waterfall has its uses but for the majority of projects, Agile is good. Better. I would say it looks complicated with all the meetings, task complexity estimation concepts, etc. But once you work in a few Sprints, you start appreciating how much simpler it makes things. Client interaction is definitely better, everything has a structure to it. I feel that more time is consumed in meetings, backlog refinement, and retrospective.”
There you go! We got a complication here, Captain.
“Thank you for your time.”
So this is what I found out. Thinking Agile or doing Agile is not enough. You have to bring agility into the processes. This is exactly what the Agile Manifesto said.
- "Individuals and interactions over processes and tools."
- "Working software over comprehensive documentation."
- "Customer collaboration over contract negotiation."
- "Responding to change over following a plan."
Agile is not a stopgap arrangement for everything going wrong. Do not weaponize Agile. Agile is not just about standups, iterations, retrospectives, and a bunch of other fancy terms. It’s about following them with discipline and improving along the way. Your goal should not be to follow Agile. Instead, use Agile practices to achieve your goal, faster and better.
Agile works best if it is integrated into the culture of your organization, where people are self-driven. It can be effectively implemented only if the organization supports innovation and collaboration. Following faux Agile rules or not being flexible to change can do more damage than good. If you wholeheartedly believe that Agile is just a passing fad, then you will need no guidance on how to fail with Agile.
Your requirements are simple. Implementing them is complex. Driving a car is simple. Getting a parking location (in India) is complex. Adopting a pet is simple. Taking care of that pet is complex. Life is simple. Thoughts are complex.
In a similar way, Agile is simple. Being agile is complex.
Published at DZone with permission of Shruti Sharma. See the original article here.
Opinions expressed by DZone contributors are their own.