21 August 2011

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.

20 August 2011

Agile Adaptations

I've been following the Lean-Startup movement since I wrote about it in Framing Product Development. In the Spring of 2010 I was jazzed up about Lean-Startup following a gathering at DevJam with a small group of friends where we viewed a simulcast of the Startup Lessons Learned Conference --the brain child of Eric Ries.

Yesterday I tweeted:

Several RT'd. Others commented about this distillation of ideas.

My Admission

 My Tweet was cribbed from Abby Fichtner's (a.k.a., Hacker Chick) screencast Pushing Agile to the Next Level. The side by side comparison of Agile and Lean Startup (below) is a concise and helpful representation of an evolution of thinking in the Agile software development realm.

Of Hacker Chicks's excellent slide and presentation, I pass on Alan Cooper's tweet - ostensibly directed at her vision of the evolution of the Agile movement...
Most accurate, succinct, and wise demarcation of the two disciplines.Alan Cooper
Agile 2.0

I share Hacker Chick's vision. For me Lean-Startup has become Agile 2.0. True to the spirit of Agile, movements must adapt and adopt, or die. I recognize that Hacker Chick has shown the Agile community a bridge to the future. The challenge for any ponderous old-paradigm organization producing custom software products is
How to behave like a startup?
Lean-Startup teaches us to create the infrastructure necessary to test our business models (our products). That means getting it into the hands of the users, testing hypotheses (fail early / fail often), and pivoting toward viability -- like a heat-seeking missile follows heat.

Previous Posts About Lean-Startup For those new to Lean-Startup, I've written several posts on my understanding the constituent principles: