If anyone is looking for proof that agile and waterfall
are from different planets, you just need to check out this article
by Tom Mochal at TechRepublic, 10
ways to get a slipping project back on track. Overtime was top of
this list, even if the deadline is months away! My first reaction was
to roll my eyes. But this raises the question, what do you do to save
a slipping project, especially if you are trapped in a waterfall?
Some of my "favorites" from TechRepublic's
list were:
#6. Crash the schedule
#7. Fast track it
#8. Prevent all scope
change
#10. Scale back the scope
of work
"Crash the Schedule" and "Fast track
it" — They sound like something Dilbert's manager would come up
with. Actually they amounted to adding people. Brooks told us long
ago in the Mythical Man Month that this is a sure recipe for
making a late project even later. "Prevent Scope Change" —
That's what the change management system has been trying to do all
along. Why should it work now? "#10. Scale back the Scope" — you mean you are going to be honest about not being able to
deliver every whim of the customer for the time and money he
authorized? When all else fails, tell the truth! Better late than
never!
Is there a better way to get (even) a non-agile
project back on track? Absolutely. Even non-Agile projects can apply
agile principles! Here is my list (and yes, this is how I approach
challenged projects):
- Be there for your team.
Nothing is more demotivating than a project leader who finds subtle
ways to remind his team how much more important he is than they are.
So come to meetings on time and stay until the end. Answer requests
for information quickly, uphold your commitments (i.e. promises you
make to the team), and look for ways to make yourself useful to your
team. Recognizing and removing impediments to their progress is a
good place to start.
- Ask the team.
They know what problems they are having and can help identify
solutions.
- Focus.
Get everybody to agree on the priority of getting a release out,
especially people outside the project. These people may have other
priorities, in which case you will have to stand up to them, refuse
work and eliminate distractions which is not related to getting the
project done.
- Fix the target.
What are the stories ("work flows" in waterfall-speak)
which are really needed for the release? This is not quite the same
as freezing the scope, because you might still eliminate features to
make the deadline.
- Hold a Daily Stand-Up Meeting.
15 Minutes, 3 Questions — What happened yesterday? What is your goal
for today? What's getting in the way? Ask, don't tell. This helps
your team focus on what they are doing and helps you recognize
impediments to progress. Don't criticize people for their
answers and don't tell them what to do. Otherwise it's
micro-management and your team may not tell
you the truth. Let them identify the need to communicate with each
other. Identify impediments that need your attention. Don't discuss
issues during the stand-up, but let people (including yourself)
discuss things bilaterally afterwards as the need arises.
- Manage Progress with a big, visible task board
Forget the electronic stuff. Use cards and corkboard. Put the
highest priority functions at the top of the board. Make a card for
each task needed to complete the feature, including testing and
customer sign-off. Track the progress of each task from "Waiting",
to "In Progress", to "Task-Finished." When all
the tasks are done, then the feature is "Really-Done."
Update the board daily. This gives you and everyone else an
immediate, obvious picture of the state of your project.
- Prioritize.
Decide what functionality is most important and get that finished
first, then move on to lower priority features/issues/bugs.
- Make features, not inventory. Demonstrate finished (really-done)
functionality at least every two weeks. Finished means tested and
production quality code. After each demo, plan the functionality to
be delivered in the next iteration.
- Leave the team alone.
Once you have agreed with them what is to be delivered in the next
two weeks, let them do their work. Don't disrupt them with unplanned
work, requests for new estimates, changed priorities or other
distractions.
- Streamline decisions.
Reduce the number of people empowered to make decisions about what
should be in the product and what people should be working on. The
closer to 1, the better.
- Build quality in.
Get every function *really* done before handing it off to QA for
acceptance testing. QA should confirm that the program works, but
finding actual bugs should be the exception rather than the
expectation. This way you don't waste time fixing it later. The more
time remaining until release, the more this one will pay off.
Well, that was eleven points. But
making a project successful is not about satisfying the bean
counters. It's about producing value for your
customers and users. It's about producing a success for your company.
Bonus Points
Bonus point one: upgrade you engineering practices. XP
offers an extensive tool box which can be applied to any software
development project. Test Driven Design, Test Driven Development,
Continuous Integration and Pair Programming head up a long list of
engineering practices which you can use to build better software.
Bonus point two: upgrade your management practices. My
experience has been that projects which start to adopt Scrum (even
without changes in the overall project structure) see positive
results almost immediately. These improvements become visible to the
customers within two to three months.
What About Overtime?
Let us remember the Maxwell Curve: Peak productivity in a Waterfall project occurs at around
60 hrs/week. In an Agile project, the peak productivity is much
higher and occurs around 35 hours/week. So I guess Waterfall project
management really does live on another planet. But given that
agilists can be substantially more productive, shouldn't you be
trying to make your waterfall projects more agile?
Bookmark/Search this post with:
About the Author: Peter is an independent Scrum Trainer and Coach. His mission is to help you realize complex projects. He provides coaching, training and project management to help you get started with Scrum, save projects in crisis and make your IT operations leaner and more effective.
Originally from the US, Peter now lives in Zurich. He studied Computer Science at Colgate University, started his career at Microsoft, and is now a Certified Scrum Master (Practitioner). He speaks English, German, French and Italian. An Instrument rated private pilot, his current hobbies are sign language and Sudoku.
Comments
Glad You Didn't Say Add More People!
November 19, 2008 by Elijah Manor (not verified), 1 year 17 weeks ago
Comment id: 2011
I am so glad that you didn't include adding more people to your list of items, because that is a very bad idea :) Good article!
Thanks
November 19, 2008 by peterstev, 1 year 17 weeks ago
Comment id: 2014
I think there is a time and a place to consider how many people should be on the project -- the beginning.of a release.
The effect of adding resources in an agile context should be very transparent -- you wouild see its effects in the velocity, positive, negative or neutral. Does anyone have an experience, how long does it take to integrate someone into a new team? What is the impact on velocity during the transition?
Manage Progress with a big, visible task board -- really helpful
November 28, 2008 by Sudarsan Srinivasan (not verified), 1 year 15 weeks ago
Comment id: 2062
Even we had a tough time in our project. Under such situations we followed most of the above mentioned points. I initially wondered why, "Manage Progress with a big, visible task board". Later found that to be really working well.
Great article
December 9, 2008 by Andries Inzé (not verified), 1 year 14 weeks ago
Comment id: 2096
Maybe 11 should be: know what is ahead. Understand by heart what is asked and how it should be implemented. "Unknowns" should be handled as soon as possible.
Projects which are slipping tend to postpone the unknown, doing everything that can be done fast without taking into account some small but very important details can be very dangerous.
Re: Know what is ahead
December 9, 2008 by peterstev, 1 year 14 weeks ago
Comment id: 2097
Hmm, How are you going to do that?
My experience with "challenged" projects has been that neither management nor the development group knows where they are, what they should be working on, nor do they have a realistic idea of when they are going to produce anything. Small wonder that the project is having trouble! So the whole project is one big pile of unknowns.
I guess, when you clean up your room, you never really know what's in the mess until you find the floor.
Cheers,
Peter
Post new comment