QSM is hosting a new free advice column for software professionals who seek help to solve project management, communication and general software project issues. The first few scenarios are based on questions we receive all the time. Carol Dekkers is a QSM consultant and IT measurement and project management expert who speaks internationally on topics related to software development. Send your questions to Ask Carol!
I am a seasoned software project manager who continually gets blamed when my projects come in late and over-budget. I’ve worked the last 8 weekends with my team to deliver software for my customer and no matter what we do, we can’t seem to catch up or curtail the spending. Now my team is even turning on me saying I should have known that management would get angry, when they were the ones who imposed unrealistic deadlines and keep changing their minds about what functions they want delivered first. We’re all ready to throw in the towel, but we love our jobs and are doing the best we can. Help!
– Overworked and Frustrated in IT land
The first thing I can tell you is that you are not alone! I know that this might not make you feel better, but even the best and highest paid project managers face the same issues on a day-to-day basis. The best piece of advice I can give you is “if it’s important (as IT projects are!) – always get a second opinion.” This is what we do in life – if you go to a doctor and he tells you that you need knee surgery, you always get a second opinion. We need to apply the same life lessons to our work life!
Having said that, your first estimate (the first opinion) was probably done long before your customer even knew what they wanted and yet it morphed into the budget and schedule for the work you are now committed to doing. I can tell you that if we built houses this way, no one would be a builder (can you imagine being stuck to a mortgage amount before the homeowner chose a floor plan or location?)
We both know that the software industry is different – the business expects us to read their minds (and we sometimes pretend we can) and provide estimates way ahead of time so they can budget the money. When we end up over budget and late (that’s a no-brainer) – we look bad. We need to get a second (and maybe third) opinion of how big, how much ($$) and how long (schedule) before we commit to an estimate. Likely you did a bottom up estimate based on figuring out tasks (not a bad approach) but then that was it. Can I recommend a second opinion based on doing a top down (scope based) estimate that brings in history as part of the equation?
Software projects are, as proven by past completed projects, laden with predictable “surprises” (like missing requirements), plagued by rework (doing it right the second time), more complex (seldom are projects easier than anticipated), and yet, exciting! Since we have to estimate “before” requirements, why not start using past projects to guide us? There are reliable and industry proven estimating tools that come pre-loaded with completed projects that you can use if you don’t have your own history. You’ll need to come up with a project size (kind of like assuming a standard 1000 square foot floor plan in construction.) There’s a bunch of ways to do this early, and this becomes the base “line in the sand” on which your estimate is based. Compare this to your original bottom up estimate to make sure you didn’t miss anything in either case. If the two opinions don’t match, you may want to seek a third one.
You’ll feel more confident going forward and when requirements change on the project (users want to be able to change their minds) you can increase the project size and show your customer it impacts the budget and schedule (like a builder would do with a change order on a house.)
Overworked, I hope that you can see your way through your current project and stick with it. Your customers and your team are worth the effort. Next time before you start a project, make sure you get a second (and maybe third) opinion so that you won’t feel so targeted on the project.