This post originated from an RSS feed registered with Agile Buzz
by Martin Fowler.
Original Post: FlaccidScrum
Feed Title: Martin Fowler's Bliki
Feed URL: http://martinfowler.com/feed.atom
Feed Description: A cross between a blog and wiki of my partly-formed ideas on software development
There's a mess I've heard about with quite a few projects
recently. It works out like this:
They want to use an agile process, and pick Scrum
They adopt the Scrum practices, and maybe even the principles
After a while progress is slow because the code base
is a mess
What's happened is that they haven't paid enough attention to the
internal quality of their software. If you make that mistake you'll
soon find your productivity dragged down because it's much harder to
add new features than you'd like. You've taken on a crippling
TechnicalDebt and your scrum has gone weak at the
knees. (And if you've been in a real scrum, you'll know that's a Bad
Thing.)
I've mentioned Scrum because when we see this problem, Scrum
seems to be particularly common as the nominative process the team
is following. For many people, this situation is exacerbated by
Scrum because Scrum is process that's centered on project management
techniques and deliberately omits any technical practices, in
contrast to (for example) Extreme Programming.
In defense of Scrum, it's important to point out that just
because it doesn't include technical activities within its scope
does mean it doesn't think they are important. Whenever I've
listened to prominent Scrummers they've always emphasized that you
must have good technical practices to succeed with a Scrum
project. They don't mandate what those technical practices should
be, but you do need them. After all projects get into trouble for
poor internal quality all the time, the fact that a lot crop up
under Scrum's flag may be more due to the fact that Scrum is so
popular at the moment then anything particular to Scrum. Popularity
and SemanticDiffusion tend to go together.
So what to do about it?
The scrum community needs to redouble its efforts to ensure that
people understand the importance of strong technical
practices. Certainly any kind of project review should include
examining what kinds of technical practices are present. If you're
involved or connected to such a project, make a fuss if the
technical side is being neglected.
If you're looking to introduce scrum, make sure you pay good
attention to technical practices. We tend to apply many of those
from Extreme Programming and they fit just fine. XPers often joke,
with some justification, that Scrum is just XP without the technical
practices that make it work. Sniping aside, the XP practices make a
good starting point - and are certainly going to be much better than
doing nothing at all.
I always like to point out that it isn't methodologies that
succeed or fail, it's teams that succeed or fail. Taking on a
process can help a team raise it's game, but in the end it's the
team that matters and carries the responsibility to do what works
for them. I'm sure that the many Flaccid Scrum projects being run
will harm Scrum's reputation, and probably the broader agile
reputation as well. But since I see SemanticDiffusion as
an inevitability I'm not unduly alarmed. Teams that fail will
probably fail whatever methodology they mis-apply, teams that
succeed will build their practices on good ideas and the scrum
community's role is to spread these good ideas around widely.
Many people are looking to Lean as the Next Big Agile Thing. But
the more popular lean becomes the more it will run into the same
kind of issues as Scrum is facing now. That doesn't make Lean (or
Scrum) worthless, it just reminds us Individuals and Interactions
are more valuable than Processes and Tools.