A lot of people, who are new to Agile, often doubt its applicability and relevance to their organization and projects. Those who take the leap of faith, often find it difficult to embrace it because ‘an agile project did not deliver “expected results” of speed, quality and customer satisfaction’. Reasons like, lack of trust and support from stakeholders and unwillingness to change from ‘what is working’ are also cited by many. ‘Failure’ is perceived negatively, and as human nature goes, if something has failed once, we tend to do everything to avoid it.
The most common questions that are asked, while I conduct Agile workshops are:
“What are the Agile Best Practices that can be implemented right away?
“Will Agile (and you) guarantee success upon implementation?
“What are the most common areas of failure for agile that we can avoid, and ensure success?”
There isn’t a correct answer to these questions.
As a firm believer of agile values and principles, I always speak about the success that agile can bring, along with work-life balance. The Agile Values and Principles are so basic to our existence that I call them “common sense” and “a way of living”.
Agile does not ensure overnight success; rather it helps to remain positive even in the face of failure. When I am asked about the time since I have been practicing agile, I often respond by saying “Since the day I was born”. And this is usually the case with most of us. We unknowingly follow a lot of agile principles in our day to day lives. And in my opinion extrapolating them to our work-life is the next logical step.
In my opinion “AGILE does not fail; more often than not the implementation does”. Knowing the difference between the two is what I believe to be the crucial point in understanding of agile. Agile philosophy emphasizes upon reflecting on failures (retrospection) and striving for continuous improvement
Having said that, here are the primary causes, which I believe hamper a team and an organization from achieving true agility:
1. Key stakeholders (sponsor, customer and users) do not understand agile:
There is no point in talking about (and trying to do) things which your customer does not understand or relate to. Mostly in such cases, you end up implementing agile within waterfall. It leads to more overheads and suffocation while executing projects, and teams end up reverting to waterfall.
It is always better to make sure that the customer and key stakeholders know agile and speak the same language as you. Training key stakeholders; which might seem time consuming in the beginning, will reap rewards in the long run.
2. Start with bottom up approach and not top down:
Your team members might be great agile practitioners, and the team might get initial success by following all the good agile practices. But after the initial success, there might be some roadblocks and/ or unsuccessful sprints or deliveries. To bring about true sustainable change, a strong coalition is necessary.
The “Top-Down” approach ensures that leaders and managers are clear about what kind of change they need to bring about to be truly agile.
3. Traditional Mind-set:
Having a “Traditional mind-set” handicaps agility. When I say “traditional mind-set”, I mean one or more of the following:
A. “I am the Hero!” syndrome: A traditional team usually comprises of individuals with certain specific set of skills. In this scenario, one individual might tend to think he or she would be able to pull-off most of the work. More often than not this is usually a senior team member. An agile team has to learn to think and operate as one entity and not individuals. A team will feel as one only if individual heroics are avoided. Success of a delivery would be success of the team and not one or two people.
B. “Command-and-Control”: “Team Leads”, or “Managers”, are the people in a team who like to have complete control over the team. They love it when their instructions are followed. In some way we have also gotten used to this culture and we like to believe that following instructions is the best way to operate in a team or organization. Being agile means to do away with this kind of mind-set, and it is a two way street. Managers need to shun their traditional views, that “They have to tell the team what to do, or it won’t happen”, and teams need to shun the attitude of “I was not told to do this, so this is not my responsibility”
4. Insufficient engineering infrastructure and practices
Just the right mind-set and agile process framework are not sufficient to sustain your agility and speed. Yes, the process framework is critical, and the agile mind-set even more so. But you also need good and solid software engineering practices in place.
This is an era of continuous deployment (DevOps). Traditional engineering practices will not take you very far. You might get a very good start with just a good agile process framework, but, you will not be able to sustain your speed. To be able to maintain acceleration, practices like Continuous Integration, Test First Development, Test Automation, DevOps, etc., are essential. Lack of such engineering practices will only make the team slower and rigid.
5. Fear of failure
In case of agile, fear of change is often misconceived as a fear of failure. All the above reasons culminate into this one major reason – Organizations do not want to change at a fundamental level. Current processes may have loopholes but, they would rather have a risky process than actually start from scratch.
The traditional waterfall method is plan driven. Project teams plan endlessly to avoid any risk they think might hamper the scope of the project. Agile can be thought of as a complete opposite of this. It is value driven, and welcomes adaptation at any stage.
Organizations that are afraid of taking risks would never know if the risk would pay off. This could mean that the value of their product could decline in the long run as they were afraid of “pushing the envelope”.
- Agile does not talk about only taking risks, but it helps to have a mind-set of taking each failure as a stepping stone to build flexible teams and a responsive organization.
To summarize, Agile can fail anywhere, but it can also succeed everywhere. Incorrect implementation of agile is the biggest enemy here. ‘Failure’ is failure if we do not learn from it. Continuous adaptation is the key. Many people try to practice Agile; to “do” Agile. However it’s more important and correct to really “be” Agile.
“Be Agile” and keep improving. Scale Up!