Agile Anti Patterns

When traditional organisations and managers embark on an agile journey they often apply agile with a traditional mindset that leads them to violate the agile values and principles. This article describes some of the fundamental agile anti-patterns so you can avoid them. An antipattern is a common response to a recurring problem that is usually ineffective and risks being highly counterproductive.

While it is possible to give a list of common violations of the scrum rules as others have done, I will take a more fundamental approach and look at anti patterns from the point of view of the agile manifesto which defines what agile is.

Agile value anti patterns

Agile is a philosophy based on working together to uncover better ways of delivering value to customers. A good agile implementation is an evolutionary process tailored to the organisations context. Over time it may require major changes to the organisations structure, culture and processes.

One common anti pattern is to apply agile locally in the development team without the leadership support required to change the rest of the organisation. When the agile team is blocked by structure, culture, funding or waterfall processes the agile implementation stops and is often rolled back by command and control managers.

Another anti pattern is to take the agile ways of working developed by another organisation and apply it in a big bang, top down, cookie cutter change focused on cutting costs. This is a very disruptive, high risk approach that can cause a lot of damage before it pays off. If there is no real change in the way the work is organised those costs will come back somewhere else, usually as expensive consultants and contractors.

Processes and tools over individuals and interactions

Good agile teams focus on individuals and interactions. A common anti pattern is for Managers to use JIRA and daily stand ups to micro manage the team. Coaching groups become the new methods police dictating agile processes and tools. Real agile is about removing blockers and empowering teams with new ways of working so they can continuously improve.

Comprehensive documentation over working product

Good agile teams focus on creating valuable products instead of documentation. A common anti pattern is for agile teams to be embedded in a waterfall process that requires comprehensive documentation for downstream teams. If you want to get the benefits of agile you have to change your structure to allow teams to deliver a value stream from idea to implementation. Agile teams produce just enough documentation, just in time.

Contract negotiation over customer collaboration

Good agile teams co-design solutions with customers and partners throughout the product life cycle. But many agile teams never talk to a real customer. They rely on managers to tell them what the customers wants and they lock customers and vendors into fixed price, fixed scope contracts that cause adversarial relationships. Open up to collaborate.

Following a plan over responding to change

An agile organisation makes change easy so that teams can learn and adapt. A common anti pattern is for managers to demand that agile teams commit to a fixed scope, design, time and cost developed up front. Often organisations apply agile in their development teams and leave the rest of their waterfall process intact. Adversarial contracts and annual budget commitments prevent change and increase time and cost. Real agile teams do just enough planning, just in time.

 

Agile Principle anti patterns

Deliver value slowly

Good agile teams deliver valuable product features early and often. Unfortunately its still common for organisations to spend many months designing and planning a project before the agile team starts and then to deliver releases in big blocks every six to 12 months. To get the benefits of agile you need to apply it to the whole product development life cycle from concept to cash.

Prevent change or don’t control it

Agile teams work with stakeholders and partners to get the best business value possible from the time and budget available. A common problem is for managers to demand that agile teams deliver a fixed scope in a fixed time and budget. This forces teams back into waterfall delivery to defend themselves. On the other hand new agile teams can get confused about how to manage scope and end up going over budget trying to give stakeholders every little thing they asked for. This isn’t agile either.

Big bang delivery

Good agile teams deliver valuable products to customers every few weeks. A common anti pattern is for organisations to make agile teams deliver to downstream test, deployment and operations teams. This forces teams back into a big bank waterfall deployment every six to 12 months. In an agile organisation teams do their own test, deployment and operations so they can deploy to production every day if necessary.

Departments prevent collaboration

In an agile organisation stakeholders, partners and delivery teams work together in cross functional, co-located, client focused teams that deliver valuable products to production.

A common anti pattern is to implement agile in the software team while leaving everything else the same. This leaves all the traditional conflict, delays and costs created by a department structure and waterfall process in place.  It’s common in this situation for technical teams to appoint their own product owners because business people aren’t available to work closely with the team. As a result stakeholders lose confidence that the team are delivering what they want.

Command and control

Agile managers trust and support their teams. They explain the mission and ask the team to work out how to achieve it. They provide resources and remove blockers when asked.

An anti pattern is for managers to use JIRA and the agile processes to micromanage teams. Micro management forces people to spend a lot of time providing updates and justifying their approach when they could be doing work. It forces them to work at an unsustainable pace leading to serious quality issues and burn out. It turns teams into passive, stupid machines unable to take responsibility and  improve the way they work. Agile managers coach and support their teams, they don’t command and control them.

Poor communication

In an agile organisation people work in cross functional, collocated teams so they can have face-to-face conversations. If people are remote they are on persistent video conferences with the rest of the team.

A common anti pattern is for teams to be made up of people from different departments and companies with different interests and different values in different locations. Most communication is via documents, email, phone and video conference. The ball is dropped a lot. Leaders manage perception and hide issues so that things look better than they really are. Issues get worse until they blow up and cause serious damage.

Focus on tasks

Agile organisations measure progress by how much value they deliver to customers. Often organisations don’t understand or measure the value they deliver so they focus on measuring the number of features and stories produced. This turns the agile team into a factory mindlessly churning out features that managers want but customers don’t. Ultimately executives question the value of the team and remove funding because they cant see the value delivered.

Unsustainable pace

In agile organisations the work flows smoothly and people work normal hours. An anti pattern is for managers to drive the team to work long hours to meet impossible time frames developed up front. Product owners don’t prioritise the backlog and managers focus on maximising utilisation. High pressure, bottle necks and long hours lead to conflict, mistakes, poor quality, rework, long delays, high costs and burn out.

Technical Debt

Good agile teams invest in excellent technical practices and good design because it increases their speed, efficiency and flexibility.

An anti pattern is for agile teams to sacrifice design and technical excellence to rush through stories as quickly as possible. Often teams resist agile technical practices like XP, OODD, Refactoring, BDD and DevOps because they don’t understand them. This leads to rigid, poorly designed solutions with lots of defects, rework and technical debt.

Overly complex solutions

Agile teams deliver high value quickly by focusing on delivering the features that deliver the most value to customers. When they have tested these in the market they develop the next most important features.

A common anti pattern is for Product Owners to insist that 80% of features are must haves. Then designers and architects create a complex solution that delivers everything in one big, complex, expensive solution. The team doesn’t find out what customers really want until they have invested a considerable amount of time and money. Only then do they find that a considerable amount of their investment was wasted on things customers didn’t care about.

Micro management

Agile organisations structure teams so that they can take responsibility for designing solutions and delivering value to stakeholders. A common anti pattern is for teams to be set up so that they cant take responsibility for end to end delivery. In these organisations managers drive the team, run the meetings and manage dependencies. Managers use agile and JIRA to micro manage the team. Team members become passive, defensive and demoralized, robotically producing mediocre results.

Ignore important issues

Agile organisations continuously improve by collaborating regularly to identify blockers and resolve them. If the team cant resolve the issue themselves they ask managers to resolve it at the organisation level.

It’s a common anti pattern for managers to refuse to allow teams the time to hold real retrospectives.  It’s also common for major organisational blockers to remain unresolved because senior managers don’t want to admit there is a problem or do anything about it.  If individuals or teams raise issues to management they are ignored or punished. This often happens in organisations that have a culture of manipulation, favoritism and perception management. Eventually issues get so bad that they cause serious damage to the organisation. Real agile organisations discuss sensitive issues openly and honestly, resolving them quickly and rationally. If you’re organisation isn’t prepared to be honest agile may not be the right fit.

 

Conclusion

There are a large number of fake agile and bad agile implementations out there that don’t deliver the benefits expected. Often this is a transition stage from traditional ways of thinking to agile ways of working. The solution is to go back to basics and work together to uncover better ways of delivering value to customers using the agile values and principles. You can do it if you try.

Contact me on murrayr3128 at gmail dot com if you want some help.

 

Further reading

What’s Missing In The Agile Manifesto: Mindset

Breaking bad agile transformations in 5 minutes

Better outcomes in software development


https://dzone.com/articles/agile-antipatterns
https://ronjeffries.com/articles/016-09ff/defense/

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s