Fake Agile: How to Stop the Darkness Creeping Into Your Agile Processes
Protect yourself from the dark abyss of fake Agile.
Join the DZone community and get the full member experience.Join For Free
To recap, the goal of Agile, as in true Agile, is to promote a disciplined project management process. A functioning Agile process embodies the philosophy of being agile as well as adopting and using an Agile framework, such as Scrum or Kanban. True Agile is adaptable and easy to assess and improve upon, it relies upon a leadership approach that encourages teamwork and self-organization.
Now, with true Agile covered, let’s take a look at fake Agile.
What Is Fake Agile?
In simple terms, fake Agile is an unsuccessful attempt at being agile. The phenomenon has become so widespread that it has attracted some interesting synonyms, these include:
- Fake Agile.
- Agile BS (yes... BS as in bulls***).
- Agile theater.
- AINO (Agile in Name Only).
- Dark Agile.
Be it Agile BS, dark Agile, or any of the other metaphorically offensive terms used to refer to fake Agile – there is one denominator throughout… a focus on doing Agile rather than being agile.
Did you see what I did there?
Being agile, rather than doing Agile, relies upon the core values and philosophy behind agile process implementation.
Truly agile processes embrace Agile philosophy, Agile values, and an Agile framework like Scrum or Kanban, rather than solely focusing on the methodology/framework itself.
How to Detect Fake Agile
The U.S. Department of Defense, the brains behind the term “Agile BS,” created the “DIB Guide: Detecting Agile BS.” The document outlines how to detect fake Agile practices within your organization.
As per the document, these are the key points to look out for:
- Nobody on the software development team is talking with and observing the users of the software in action.
- Continuous feedback from users to the development team (bug reports, user assessments) is not available.
- Meeting requirements are treated as more important than getting something useful into the field as quickly as possible.
- Stakeholders (development, test, ops, security, contracting, contractors, end-users, etc.) are acting more-or-less autonomously
- End-users of the software are missing-in-action throughout the development process.
- DevSecOps culture is lacking if manual processes are tolerated when such processes can and should be automated (e.g. automated testing, continuous integration, continuous delivery).
The document offers heaps of actionable advice on how to detect fake Agile and which questions to ask your leaders and/or your customers and users.
How to Avoid Fake Agile
Put Emphasis on Values Over Practices
In a framework or methodology, each step is clearly defined, and each practice is predetermined and inflexible. This is why the value of being change orientated and the philosophy of adaptability is so important within an agile approach.
When putting the emphasis on values over practices, the important thing is to focus on the objective and overall goals of the business as a whole. The important thing to remember is why you do what you do, rather than which practices you use/don’t use.
This is not to say that agile practices are not valuable, because they most certainly are. They just aren’t where the emphasis should lie.
If You Aren’t Actually Agile, Don’t Pretend to Be
Labeling your team an “agile team” should not be the overall goal, and often, when it is used excessively it is a sign of fake Agile.
Companies that are truly agile are unlikely to preach about their agile-ness as they have nothing to prove.
Perhaps you are wondering why so many companies would lie in the first place?
Although I can’t answer the question for all companies – I have an idea as to what may push them to make these false claims: time. The transformation to being agile is a long and timely process. This is perhaps why many companies end up cutting corners and start just going through the motions and calling themselves agile before they truly merit the label.
“They are sort of like flamenco dancers who wear flamenco costumes and talk about flamenco but don’t know how to actually dance flamenco dancing. They don’t have the spirit or sense of what it is to be a flamenco dancer.”
To sum up, avoid being fake Agile, and don’t pretend to be agile when you are not. Instead, go back to the corners that have been cut, find the problem, and solve it.
Do Your Research Before Implementing Agile
Remember how I said that Agile is not simply using a methodology or framework? It’s a mix of philosophy, values, and yes… a framework.
The philosophy, values, and frameworks are all focused on one thing: adaptability. However, this adaptability means that true Agile is impossible to measure and quantify.
Understandably, this can be scary for businesses who are used to traditional and easily measurable approaches such as Waterfall. Businesses choose to make the move to Agile because it is more efficient than the traditional approaches… provided it’s done right.
The problem here is that although these businesses may be ready to sign up for the benefits of doing Agile, they are not yet ready to embrace being agile.
So… in a lukewarm attempt at agility, they implement an agile framework without researching and understanding the philosophy behind it. Without adhering to Agile values and philosophy, a company is only doing Agile and not being agile. This will likely mean that the agile practices and processes they implement will be unsuccessful.
Resources for True Agile Development
With fake Agile covered, allow me to close off this post by offering up some useful tools. Check out the tools below for help and guidance on building and maintaining a truly agile team.
- Git: The modern development standard for version control.
- GitHub/BitBucket: Repository hosting, tickets, application integration tools.
- Jenkins: An incredibly powerful integration server.
- Process Street: Rapid process deployment. It also integrates with some of the tools above, like GitHub and Jenkins.
- Ansible/Puppet: Configuration recipes and tasks for server support.
- Docker: Virtualization (containerization).
- Kubernetes: Container orchestration.
- Jira: Tickets, monitoring, and management.
Opinions expressed by DZone contributors are their own.