We can all agree that Agile is currently the default delivery framework for over
half of the tech companies worldwide.
Many people and companies have built various Agile delivery
frameworks due to widespread adoption and corporate interest.
But if that's the case, why do we hear so much about how ineffective and
difficult it is to work with Agile.
While scrum, maybe a helpful framework for various projects,
it's important to remember that it's not a cure for all of them.
This video will explain how different frameworks such as a scrum may fit within
your organization, depending upon the type of problem you are trying to solve with
the software products you are developing.
I will describe how Cynefin framework may assist you in identifying the
most appropriate delivery approach for your specific use case.
Hey friends, welcome back to the channel.
And if you're new here, my name is Vibhor, I am an Executive, Agile
& Leadership Coach, and as part of my profession, I train and teach executives
how to develop an Agile mindset.
And one question that I frequently get asked is, "Vibhor, do
we even need to be Agile"?
As I ponder this question, I am left
wondering if people have a clear understanding of what Agile truly is?.
Do we even understand what we are getting ourselves into?
So I returned the question by asking, "What is Agile"?
Most executives begin by mentioning Agile frameworks, such as a Scrum or
Kanban while others cite practices such as daily stand-ups and the
usage of JIRA within their projects.
Now I consider myself an Agilist who is not bound to any single Agile
framework, and I appreciate people who are dedicated to a specific frameworks,
but it is not the frameworks or tools like JIRA, that make us Agile.
Those are just some means to an end.
So then what exactly is Agile?
And don't worry, I won't regurgitate the Agile Manifesto's values and
principles since in my opinion, that doesn't make us Agile.
For me, Agile is that mental state that enables me to maneuver around
well-known or previously unknown impediments, restrictions or constraints.
Let me say that again.
Agile is that mental state that enables me to maneuver around known, like bad
weather, or previously unknown impediments restrictions or constraints, like for
example, a tree falling on the road.
If there is a fire in the room, I run out of the room, if there is a
tree blocking the highway, I exit the highway and take a different route.
And if a plan isn't working, I change my end goal.
Wrong!
I change the plan and keep moving towards the same end goal.
Being Agile is nothing but applying common sense to the current situation you are in.
It is about doing the next right thing.
just do the next right thing.
That's being agile.
Coming back to the executives question, "Do we need to be agile?
In my opinion, I don't think there is any other way to live.
You either be agile or wait for that tree to be removed, which might take a while.
I've discussed more about what is Agile, and how to pitch Agile to executives
in this three-part video series right here, which I highly recommend as
many people have found it helpful.
So if Agile makes common sense, then what is the problem?
The problem lies in the question.
Instead of asking, do we need to be Agile, the right question to
ask is, "Do we always need Scrum"?
And the answer is a big, capitalized, NO!!
We do not always need Scrum.
Every business has to have an Agile mindset and culture.
An Agile framework on the other hand, isn't always required.
There are a lot of scenarios, situations, and problems where
waterfall or a different linear approach may produce excellent results.
The challenge then becomes how do we choose the best approach?
Is there a way to select between waterfall and an adaptive framework?
And the good news is that there are multiple ways to select
between different approaches.
The one I frequently use was proposed by Dave Snowden in the year 1999.
It's called the Cynefin framework.
Cynefin was initially developed to better understand how informal networks
and systems such as humankind and supporting technologies such as the
internet enable better connectivity when compared to formal systems such as
companies, businesses, and organizations.
Nowadays the Cynefin framework is often used as a categorization model
for systems, problems and situations.
Some people even call it the sense making framework.
According to Cynefin framework an individual's perception of a particular
problem, and it can be a problem that a software product solves, might
fall into one of the four domains.
Clear, Complicated, Complex and Chaotic.
It then offers a strategy that is most suited to solving
problems in those domains.
Let's look at the four domains and see how the Cynefin framework can
help us pick the correct delivery slash decision-making approach.
Let's start with the chaotic domain as most, if not all problems start
with a chaos, but what is chaos?
Chaos in simple words is nothing but a state of complete confusion.
Physics define chaos as some random, unpredictable behavior.
Chaos the realm of unknowable unknowns.
And the reason why it is unknowable is that in this domain,
Time, is a scarce resource.
So there is no time to probe or experiment to figure out, the unknown,
making the unknown, unknowable.
The strategy Cynefin suggest to face chaos is to first act.
Act to stabilize the situation, make things calmer.
Then Sense the failure or success of that action and respond only
after deciding what to do next.
To understand this better let's use the analogy of a real life firefighting.
Suppose there is a building on fire.
There is confusion everywhere.
People are panicked.
They need someone to tell them what to do next.
In this case, the first firefighter on the scene would set up a perimeter around the
building, issue evacuation orders and use water and chemicals to put out the fire.
Applying constraints on people's behavior and firm boundaries
helps to stabilize the situation.
Once they find fighters, regain the command of the situation, they
may relax the restrictions, allow individuals to return to the area
and remove the protective gear..
All while scanning the environment for other potential hazards.
In a software context, another example might be, production defects.
Your initial action is to quickly fix the defect and then investigate.
This quick solution
doesn't correct the underlying cause, but it prevents the
business from losing the customer.
When your project enters the chaotic domain, you are in the midst
of crisis that you must resolve quickly to avoid more damage.
Scrum is ineffective in this situation because you do not have the luxury
to prioritize backlogs and select the work to be done in the upcoming sprint.
Number two, the complex domain, when a chaotic scenario is managed
effectively, it naturally leads to a situation that is complex in nature.
Complex is the second domain as described by the Cynefin framework.
It is the realm of unknown unknowns, where cause and effect relationships
may be identifiable in retrospect, but cannot be predicted with any certainty.
And were both what is needed and how to get there are not obvious.
But the good thing about this domain is that
unlike Chaos, in this domain, you have the luxury of time.
You can spend time probing the unknowns and figuring out what you're dealing with.
Weather forecast, stock markets, technology companies, and other systems
that are considerably more than the sum of their parts are the example of the
things that fall under the complex domain.
To deal with complexity Cynefin recommends first probing and conducting experiments,
then sensing the failure or success of those experiments by gathering feedback
and then responding to determine what to do next.
Either increasing or decreasing the action taken during the experiments.
In complex scenarios, we learn as much as we can about the situation, evaluate what
is working and what is not working, and then adjust depending on our findings.
This is also the domain we encounter when we attempt to develop new products
or improve existing products that demand
more functionality.
Now because complex scenarios that need you to explore the
problem and look at what you can do in a limited amount of time.
This is the area where Scrum really shines.
Number three, complicated domain.
Complex problems when handled correctly transition to the complicated domain.
This is the realm of known unknowns and is the third domain in the
Cynefin framework where we know the questions that need to be addressed,
but may not know the exact solution.
Sometimes referred to as the domain of experts, it is at this
time that we consults our experts.
Experts like engineers, specialists, and architects who can correctly analyze the
situation and propose the right solution.
A complicated problem is solvable, but not by me.
This is why I hire people to do my taxes, fix my car, repair my
appliances, or maintain my dry cleaning.
Such issues, have a relationship between cause and effect, but it
may not be obvious to everyone because the problem is, well...
Complicated.
Complicated issues have several correct answers.
There might be numerous signs and symptoms.
An example of a complicated situation could be building a mobile app that
requires a brand new technology.
The strategy Cynefin suggests to face complicated problems is to first
sense and see what's involved, then analyze and investigate using expert's
knowledge followed by responding and deciding on the appropriate solution
using good practices.
Bytheway, did tell you that this domain is also called the domain of good practice.
Well, now you know.
Now we may use Scrum to resolve scenarios like this, but it may
not always be the best approach due to it's time-boxed nature.
Since in-depth analysis and workflow of work items are most important here,
lean agile frameworks like Kanban, make more sense.
Number four, Clear domain.
Over time, complicated issues and move into the clear domain,
as previously unknown specialist knowledge becomes more widely known.
And more individuals learn how to perform complicated jobs.
Pair programming is one practice that helps convert a
complicated job into a clear one.
Clear is the domain of known knowns where the link between the cause and
effect is obvious and known in advance.
There are often processes already in place to address issues
fitting in this domain and best practices are already established.
To deal with the problems in the clear domain Cynefin recommends that we
first sense and observe what is going on, then categorize and make it fit
predetermined categories followed by responding using the best
practices or the techniques that have been shown to work in the past.
This type of domain is best for reproducing products over and over
again, since there are steps that you can repeat to solve existing problems.
While scrum can be a way to address this kind of scenario,
you can achieve faster and more
certain results with a traditional waterfall approach.
Since you can find legitimate best practices that are documented everywhere.
It's worth mentioning that Cynefin highlights the cliff between the
clear and the chaotic domains.
And this is because there's always a risk that even well control and well-managed
systems can devolve into chaos
due to indifference, carelessness, or any number of other factors.
These are the four domains in the Cynefin framework, but there's more.
Cynefin framework talks about a fifth domain.
The domain of disorder.
Disorder occurs when we're unsure which of the other four domains we are in.
And as a result, we fail to respond in an appropriate and timely manner.
Disorderly state resembles a state of inaction and paralysis and can
destroy significant value if sustained for an extended period of time.
According to Dave Snowden disorder is the state we are in, most of the time.
The Cynefin framework was designed to help leaders identify their
situation and apply the appropriate approach to minimize the time spent
in these damaging disorderly states.
They Cynefin framework is an excellent model to assist in approaching different
situations, scenarios, and problems.
However, the only way to move through all five domains of the Cynefin framework is
to have an open mind to new and innovative solutions, create a feedback loop and most
importantly, avoid analysis paralysis.
So there you have it.
If you liked the video, then don't forget to give it a thumbs
up, subscribe and leave your valuable feedback in the comments.
I'll see you in the next video.