Agile Anti-Patterns

A few Agile anti-patterns I have experienced as a developer are:

  • Business Allowed to be Lazy. A counter-productive friction exists between highly productive developers (held accountable by process metrics) and largely unaccountable business proxies. Often the business proxies abuse the flexibility of discovery in Agile and some use it as an excuse to be lazy or disengaged.

Why are developers asked to estimate a story if the business can’t articulate clear acceptance criteria or fail to deliver a simple sketch or wire frame?

  • Over-Emphasis on Velocity. Speed is mistaken for velocity. Velocity has two components – speed and direction. I’ve been on teams who were delivering working software iteration after iteration only to find we were building a product that was unusable, inferior, or somehow missed the mark because direction from the business was misguided or lacking. We focused on delivering, not on the product.

When the burn down shows “done” and the business has a product they couldn’t use or don’t want, it’s the business’ fault. Because the only way this could happen is that they didn’t show up to the demos, didn’t ever walk through the lab, didn’t talk to anyone building or testing the system. If there was no mechanism to make sure the blame was spread there, this is just pure corporate oncological dysfunction.
~Colonel Nikolai, post comment Oct 28, 2011 08:04AM.

  • What to do with Project Managers? Traditional PMs are too often shoe-horned onto Agile teams because the organization can’t figure out what else to do with them. Traditional Project Management is an extension of old-school Command & Control that savvy developers can’t abide. It is based on hard estimates and Gantt charts. I have observed PMs using Burn-down charts like a blunt instrument to flog developers.

Dear PM,
When you continually ask ‘Is it done yet?’, the veracity of the answers rapidly degrade to pure lip service.

  • Process Over Pragmatism. Teams often feel compelled to follow process for process sake or because it’s been decreed by the organization. The most effective Agile teams I have been on discovered what worked in the prevailing conditions. There is no one-size fits all.

Dear Process Cop,
Developers welcome process when it makes sense, but gratuitous ceremony is a waste of everyone’s time.

  • Standup as Status Update. Standup meetings seem to have devolved from the imagined intent to be informative and consequential to tedious status updates.

Dear Teammate,
If you don’t have something wildly informative or marginally consequential to say, please cede your turn. Standup is not CYA.

Do these seem familiar? Which anti-patterns have I missed? I welcome your feedback.

The Filler Anti-Pattern

There aren’t enough killer apps to go around. Most software developers perform a daily slog making information massaging applications or information shuffling applications.

A developer I know worked on a project for the now defunct Minnesota Brewing Company. MBC occupied the former Schmidt Brewery in Saint Paul circa the late 90s through the early 2000s.

The Filler

To software developers, abstractions like inventory, workflow, content management, contact management, and so on, soon become a monotonous blur. Slinging code for an unscrupulous hedge fund manager or a head-strong brew-master — after a while, it begins to look the same: massage or shuffle.

The difference in the story of our intrepid MBC developer was something known as The Filler. Our buddy would regale fellow-programmers with stories about The Filler. Filler stories involved the plant loudspeaker and a plant employee warning everyone about the dreaded Filler.

Our buddy might be VB-Scripting a jury-rigged ETL between Microsoft Access and Microsoft Excel when over the loudspeaker, he would hear:

Shut The Filler Down!….Shut The Filler Down!

Since we’d never been inside MBC plant gates, the meaning of this plea was left to our collective imaginations. We’d imagine massive beer vats packed like copper sardines into a steamy, industrial-aged factory.

Pot-bellied vats would be over-flowing with boiling wort. And because we’d imagine the floor drains were clogged, swells of pre-fermented swill would be roiling down corridors gushing into windowless chambers where unsuspecting programmers were mindlessly toiling away on Microsoft Office automation.

Shut The Filler Down Metaphor

In the intervening years I have wondered how Shut The Filler Down might be a useful metaphor for a few repeating software development scenarios.

Perhaps the best application of the Shut The Filler Down metaphor might come at the moment we detect an anti-pattern in code, or an anti-pattern in team behavior.

Anti-Patterns in Code

Custom software developers frequently weigh the client’s value with either the seemingly laudable tendency toward gold-plating, or with the seemingly laudable tendency to get stuff done.

I have coded myself off-the-rails many times by hacking together something marginally useful in haste simply to complete a user story within the confines of an iteration.

Last week I recognized one of my off-the-rails moments. “Super Dave” Osborne looked at the stinking pile of MVVM and Silverlight ooze I had made, then offered a couple of suggestions so that I could then see my way toward turning my malodorous ooze into something tighter, simpler, and better aligned with established patterns in the rest of our code base.

Not every team has a “Super Dave”, but when you’re coding yourself off-the-rails, remember the mantra

Shut The Filler Down,

then ask someone for a second set of eyes.

Anti-Patterns in Team Behavior

Shutting The Filler Down
by reversing caustic anti-patterns in team behavior (or in corporate culture) might take months (or years). So I suggest starting with the first retrospective. Call out the anti-pattern – respectfully. Rinse and repeat. Be tenacious, but be respectful — because you’re a professional!

Imagine clinging to an over-sized monkey-wrench with like-minded team-members as you incrementally inch the shut-off valve to its closed position. To Shut The Filler Down when it involves human egos is delicate. It requires patience and finesse.