Secret of 9 To 5 Software Development? Learning how to Manage Murphy’s Law!
Things that can go wrong, will go wrong! Never Fails!
Well laid plans of many a software development effort are thwarted by Murphy’s Law than any other single factor. Not the availability of people, tools or skills.
You allow a single day in your schedule for someone to approve something or your supplier to send you that license. Of course, that person is on vacation and no one else knows what you are talking about. Not even remotely!
Your chief programmer’s kid caught a bug from preschool and is barfing up everything she ate. Of course, the woman is worried and software development is sort of, way down in her priorities.
There’s a transportation strike in the city where your remote team is today and Monday is a religious holiday that none of them can miss. Unless you want their domestic life to be so disrupted, on Monday, they are of little use to you at work, anyway.
Murphy’s law is a terror that strikes fear at the heart of most Project Managers.
It doesn’t have to be that way.
Make Murphy’s Law your friend, think of him while you are doing your planning and you can beat him at his game. How, you ask?
Here are a few ways you can do that.
a. Pace Yourselves — Get the more difficult things scheduled up front. Risky, unknown features go first. Easy ones later. This way if things go wrong you have slack time with tough nuts that need cracking.
b. Plans B,C, and D — Be very pessimistic in your planning. Most plans suffer from a everything-will-go-according-to-plan-every-dang-time syndrome. Do you have shit-happens-time planned in? Being very pessimistic in your planning accommodates for those unpredictable but inevitable things that happen in every development effort.
c. Interleave Independent Sequences Upfront — If you don’t need component C until three months down the road, don’t wait three months. See if you can get them started earlier. That way you build in slack for things to go wrong. You can argue that you use Agile methodologies and there are only so much capacity available for any sprint. Of course, don’t make your promises tight. Always Schedule things that are a bit below your capacity. You know Mr.Murphy will eat that slack in no time!
d. Anticipate and Manage External Dependencies — External dependencies are the bane of any kind of sane planning. Do not plan for your business partner to be ready with what you expect at November’s end for you to start your stuff that depends on it December 1st. Never Happens! Tight dependencies over things you have control over are hard enough. Building in such dependencies, Mr.Murphy cackles and rubs his hands in glee!
e. Monitor and Expedite Dependencies even when you don’t need to — Call that partner up and ask about how their development is going. Find out where the approval is for that critical software license needed a month from now. Can we get that done sooner, please? Whether we need it today or not. Get one more thing that can fail out of the way if you can.
Managing software development efforts is all about people, skills and tools, you think! They are all important but are nothing, nobodies compared to Murphy’s Law. Mr.Murphy is a demanding boss and unless you keep him in check with a lot of pro-active moves, he’s going to get you!
On the other hand, you learn how to anticipate and manage things that can go wrong way ahead of time, you have him in a box and you can go home at 5 pm and spend some time playing with your kids, nephews, nieces or go on that date that’s been eluding your significant other!
9 to 5 software development is possible,. If you know who the REAL boss is!
“The chance of the bread falling with the buttered side down is directly proportional to the cost of the carpet.”
― Murphy’s Law