|
In a
recent Dilbert comic strip, Pointy Haired Boss (PHB) tells Dilbert and Wally
they will start using agile programming. He explains:
"[Agile programming] means no more
planning and no more documentation. Just start writing code and complaining."
All of us
who have made the transition from waterfall, RUP, or other gated process to
agile can chuckle at this definition. As few as five years back, agile was often
seen as a ‘license to hack' rather than a disciplined approach to software
development. We've come a long way, but some perceptions persist. One implicit
assumption made by Dilbert's PHB is that ‘going agile' is all about
programming. He couldn't be more wrong. Moving to agile has effects that ripple
through the entire organization, from sales to IT Operations. Some of these
effects can be managed through good training. Some are more political than
technical in nature, and will require, dare we say it, the delicate hand of your PHB.
What
happens when teams adopt agile techniques? How will the rest of the
organization react? Maybe you work in a small or idealistic organization with
little or no political back-biting or infighting. If so, you are to be envied. Most of us don't live
in a perfect world. We are human, and even the best of businesses have a bit of
dysfunction here and there. Internal politics, infighting and turf battles will
emerge. Your PHB needs to understand and be prepared for this eventuality. PHB
can run, but he can't hide from the ripple effects of going agile.
There isn't
enough space here to list every organizational pitfall. A lot of them can be managed
through education, expectation setting, and the application of basic political
know-how. Some, such as changes in funding models, interactions with IT Operations
and the clash over availability of the product owner have been documented in
previous journal articles. But one issue, the side effects of pull versus push
project management, is less well documented but just as potentially damaging.
While there are many side-effects of pull versus push, the two I want to
discuss are the lack of a master project plan, and reporting status in a
mixed-methodology environment.
In waterfall
or other gated processes, Project Management (PM) publishes a project plan based
on exhaustive up-front analysis and design. PM then ‘pushes' the tasks to the
project team. "Here's the tasks, now get to it." We know agile teams don't work
that way. There is no master project plan detailing all the work because
planning is done just-in-time rather than up-front. The team ‘pulls' work from
the backlog for each iteration. And while you might have a master iteration
plan, it will be at a much higher level of abstraction than the plan created by
the waterfall team.
Why does this matter?
You may
not know it, but other parts of your organization use the project plan as a
sales tool. If your software is externally facing, you can bet sales will schedule
demos to prospects in order to keep sales on the table. Marketing will plan analyst
briefings. The executive team will take the plan on the road to talk to
important customers. Even if your software is strictly for internal use, your
customers will schedule events and executives will make tactical decisions
based on your project plan, despite how much it resembles a work of fiction.
When you move from a push model to a pull model you take away this important
tool. In a pure agile environment, you will never know when, or even whether a specific
use case will be satisfied. When sales, marketing or someone from the executive
team starts asking for the availability date of a specific feature, the accurate
answer is a shrug. Too bad that's not going to be an acceptable answer.
What's to be done?
PHB should
engage organizational leadership up-front to set expectations that there will
not be a master project plan. He's got to let them know they are going to change
the way they make plans, engage customers and deal with analysts. If you can
afford it, have PHB bring in an agile consultant and have them run a ‘get
prepared for agile' workshop for the executive team. If you can't afford a
consultant, have everyone read the Gartner "fact or fiction" report on agile
software development.[i]
It does a reasonable job of explaining that agile software development changes
the entire business, not just IT.
Unfortunately,
these your PHB's arguments might fail and you could end up being asked to do
up-front planning.[ii] Yes,
this is wasteful, but the political reality may require you to start out with
some waste, and lean out as your organization gets more agile experience. Have
your PHB negotiate again next project, and the project after that, until you
come to a workable compromise. As Brent Barton from Solutions IQ says, "Agile
is a journey."
Let's
assume PHB gets the sales and marketing teams on board. What other problems could
you face? If you are in an agile-only environment, the next issue probably won't
be troublesome, but if you are in a mixed methodology environment, look out.
You have to face The PMO project status meeting. Here's problem: On a
Waterfall team, because your tasks are pushed to you, you report on how closely
you adhere to a published plan. On an Agile team, because you pull tasks, you
report how much is left to do, and how much you can do. About halfway through the project, when waterfall projects
start to get derailed, these differences will become political.
When you
are on a waterfall team and you fall behind, you generally go through a
re-scoping effort with lots of gates and visibility across the business. If you
have to re-scope several times, this on-going negative visibility will do your
team no good. Your PHB may start getting defensive and sniping at the PHB of
the agile team. "His team is cavalier about requirements. When they get behind
they just throw stuff into the backlog. There is no discipline! There is no
accountability!"
He's
right, of course. When you are on an agile team and you have too much work, you
de-scope as part of the agile process. You don't need to execute a change
document. You don't need to get permission. The rest of the business may not
even realize that your project scope has changed. At project status time your agile
team looks forward to what can be done rather than backwards to whether or not you
have adhered to plan. This causes a lot of friction and backbiting between the
project teams. We don't like getting negative feedback. We especially don't
like it if we think others are held to a different standard.
To restore
good order and discipline, both waterfall and agile teams must report on an
apples-to-apples basis. We already know that agile teams can't report against a
project plan. Can a waterfall team report work remaining and velocity similar
to the agile team?
I believe
so. In an agile environment we calculate velocity based on the project's
history to predict how much work we can expect to get done over time. We can
take a similar approach on waterfall development teams. As each task is
completed in a waterfall world, we can calculate the percent overrun. We can
average the overruns over the project to date, and use it as a predictor for
future tasks. It isn't perfect by any means, and just as with agile velocity,
it will need to be revised and refined as the project proceeds, but it will
give the waterfall development team the means to determine, not just how far
off plan they are at the moment, but how far off they are likely to be at the
end. Nobody likes to de-scope or push dates back, but if you're going to give
bad news, it's better to give it early and give it once rather than having to
give it over and over again.
Now the
teams can be on a similar footing. If you are on the agile team you report on
what you've accomplished, what is left to do, and how much you can actually get
done in the allotted time with the allocated resources. Now, if you are on the
waterfall team, you report pretty much the same, with the understanding that
you don't have the choice to re-scope at will. It's not a perfect solution, but
if your PHB confronts the issue up-front, he is likely to avoid some nasty
confrontations later.
What's
the take-away for your PHB? People can be mean and petty. Politics and
infighting can hurt or even derail a project. Handling touchy issues up-front,
to include the ripple-effects of pull versus push project management, will help
defuse potentially destructive situations and allow you to roll up your sleeves
and get to work, coding and complaining.
About the Author
Dr. Kelly Shaw has been in the software business
for 25 years as a developer, development manager, and architect. She currently
works as an analyst for Serena Software,
researching over-the horizon trends in software development.
[i] Agile Development: Fact or Fiction, Gartner
Research, October 2006.
[ii] This approach is also tied up with the problem of
funding projects in organizations employing both waterfall and agile
techniques. Funding discussions are on the list of "Things Pointy Haired Boss
Should Know." Unfortunately there simply is no room in this article to discuss
the issue.
Comments () |
 |
|
|
|
Tags:
Click to add your tags...,
|