publish" it, so it stayed in draft mode quite a while until I later discovered it and pressed "publish"]
Sung to the tune of Gee, Officer Krupke! from West-Side Story -- Music: Leonard Bernstein, Lyrics: Stephen Sondheim (see video of the movie performance)
For about a year now, I believe there has been a greater than usual amount Agile-related blogging and mail-list discussion on the subject of the shortcomings of what is currently the most popular agile development method: Scrum. Some of them are legitimately about Scrum, others are really more about the kinds of problems one encounters introducing Agile methods without appropriate emphasis/execution of the technical practices (especially Refactoring and TDD).
Its seems much of it may have started around the same time that Alan Shalloway (and later others, including Ron Jeffries, below) were banned from the ScrumDevelopment list for “going meta” and discussing problems with and/or additions to Scrum itself instead of how to apply/use it. Alan subsequently created the Lean-Agile list for such discussions (and is also working on a book).
As of this writing, more recent examples include the following:
- James Shore, The Decline and Fall of Agile
- Two specific threads on the ExtremeProgramming list: What about Scrum + CI + Automated-Tests? and What if Code Smells were counted as …
- Robert (”Uncle Bob”) Martin, presentation on Craftsmanship and Ethics, and a follow-up blog-entry on Quintessence: The fifth element for the Agile Manifesto
- The thread from the Lean-Agile list on Controlling Say (was Definition and Scope of Scrum / PO Role)
- Ron Jeffries, Context My Foot! and Quality-Speed Tradeoff — You’re kidding yourself
- Jurgen Appelo, The Decline and Fall of Agilists
Cast of Characters: You will need individual actors portraying the following roles!
- Alan Shalloway, www.netobjectives.com
- Ron Jeffries, www.XProgramming.com
- Peter Alfvin,
- Brad Appleton, blog.bradapp.net
- Uncle Bob (Robert C. Martin), www.objectmentor.com
- RON (spoken): Hey, you!
ALAN (spoken): Me, Officer Jeffries?
That’s Scrum Master Jeffries to you! Gimme one good reason for not draggin’ ya to the scrumdevelopment list to answer for blamin all yer troubles on Scrum. What’ll you say to Schwaber, ya punk!
Dear kindly Scrum-Lord Schwaber, You gotta understand,
It's just our agile nature that gets us Scrum-list banned.
Our management is clueless, our backlog’s full of junk,
Golly Moses, that’s where Scrum has flunked!
ALAN with BRAD & PETER:
Gee Scrum-method owners, we're very upset;
Your method doesn’t scale and we’re in technical debt!
We ain't no extremists, Our motives are clean,
Deep down inside us there is Lean!
ALAN: There is Lean!
There is Lean, there is Lean, There is untapped Lean,
Deep inside XP and Scrum there’s Lean.
RON (spoken -- imitating Scrum list-owner):
That's an off-topic discussion!
Lemme tell it to the world!
RON (“Scrum list-owner”):
Just tell it some place else!
ALAN (singing, while creating the Lean-Agile list):
Dear Lean-Agile list-readers, The Scrum-list is too closed.
Despite their Agile leaders, the truth must be exposed:
They didn't want discussion of what Scrum oughta add.
Leapin' lizards, that's why I'm so “rad!”
Hey Scrum-method owners, you're really deep-fried!
There’s plenty wrong with Scrum that needs Lean-thinking applied!
PETER: Those darn product-owners have gotta be curbed!
RON: They’re pathologic'ly disturbed!
BRAD: They’re disturbed?
They're disturbed. They're disturbed, They're the most disturbed,
Like they're pathologic'ly disturbed.
ALAN (spoken, imitating Mary Poppendieck):
Hear ye! Hear ye! In the opinion of Lean-thinking, these POs act depraved on account of they ain't had a proper “frame.”
BRAD (spoken): Hey, they’re depraved on account of their dis-functional context!
RON (spoken): Lemme to introduce ‘em to my fully functional foot!
BRAD (singing, to Ron)
My PO is so dastard, da coach won’t hear my plea,
da team’s code ain’t refactored, ‘cuz PO won’t agree.
They add it to the backlog for later to address,
Goodness gracious, dat's why it’s a mess!
Please! “Bad product-owners!” that reason’s so lame!
You shouldn’t even ask them, (and you should be ashamed)
It’s really yer context that oughta be changed,
It’s economic’ly deranged!
BRAD: We’re deranged?
We’re deranged! We’re deranged! We are so de-ranged,
We're so economic’ly deranged!
In my opinion, Scrum don't need to have its head roles re-thunk at all. Use of RASCI matrices is surely a management disease!
BRAD (spoken): Hey, I got a management disease!
ALL (spoken sarcastically): So go buy an agile management tool.
BRAD (singing to "Agile tool-vendor"):
Dear kindly Scrum-tool master, they say go use your tools.
They’ll save us from disaster, ‘cuz they’ll enforce da rules.
And for our retrospectives, they’ll generate nice charts
Glory Osky, that's why our code smarts!
UNCLE BOB (with RON):
Yikes! Stupid tool vendors, you've done it again.
This team don't need a tool, just index cards and a pen.
It ain't just enough to inspect-and-adapt;
UNCLE BOB: Value craftsmanship over crap!
BRAD: Ship 'er crap?
Don’t ship crap! Don’t make crap! Craftsmanship over crap!
Craft clean code as if you give a crap.
UNCLE BOB (spoken):
We hereby declare this project’s code to be crap on account of its ignerantive and excremental development. Failure to write clean code is professionally irresponsible! TDD and refactoring are not optional!
RON: The problem is your context!
ALAN: The answer is go Lean!
BRAD: The problem is design debt!
BOB: The answer is code clean!
PETER: The problem is Scrum's growing!
ALAN: The answer is Scrum's grown!
Scrum Lords we got troubles of our own!
To all unclean-coders We just have to yell,
“Your projects can’t be agile if your code-bases smell!”
Gee, Scrum method-owners, What are we to do!
Dear Scrum method-owners, SCRUM YOU!!
I credit Ron Jeffries with my inspiration (obsession?) in crafting the above! Ron quoted a line from the West-Side Story song “Gee Officer Krupke!” in one of his email replies and I couldn’t get the song out of my head all that day and began piecing together the above (which I developed iteratively & incrementally using TDD and refactoring – of course :-).