Skip to content

10 Ways to Save a Slipping Project

November 19, 2008 by Peter Stevens

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):

  1. 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.
  2. Ask the team. They know what problems they are having and can help identify solutions.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. Prioritize. Decide what functionality is most important and get that finished first, then move on to lower priority features/issues/bugs.
  8. 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.
  9. 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.
  10. 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.
  11. 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?

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 11 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 11 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 10 weeks ago
Comment id: 2062

Manage Progress with a big, visible task board

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 8 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 8 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

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <b> <i> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <br> <blockquote>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters (without spaces) shown in the image.

Best of AgileSoftwareDevelopment.com