The Difficulty of Planning Software Development Timelines

As a project manager, my job is often to bridge the gap between the business or client on the one hand, and the development team on the other. Business users define what functionality or features they want in software, and developers are tasked with building it. The business wants it all — NOW! — and developers want time to think carefully, to build strategically, and to approach challenges flexibly.

They’re both right, of course. Software needs to move at the speed of business. And, good quality software takes time and effort to build.

I can make the process simpler by generating detailed, high-quality requirements. I force the business to really think through how they want the software to work, to put their needs into a broader context, and to always “ask the next question” until there aren’t any more questions to ask.

Requirements written this way help ensure developers have full information before they begin designing solutions. Good requirements take a long time to document — but they shorten the development cycle and result in less rework and higher-quality code.

Still, business users want to know when they’ll have access to all the great stuff they’ve conceived. They want predictable timelines, understandably, so they can plan their own work including all the tasks that surround deploying new software, like process change, training, and, oh yeah, revenue.

Geeking out this evening with the top-notch blog written by the folks at Assembla, I came across this quote:

“The best that has worked for us is that we say we’ll do something and then we start doing it – as it gets closer to completion, we know if it’ll be out this month or next. It may sound funny but in reality, that’s how it always ends up! Bugs are different – but with features, the reality is that you don’t really know until 80% into the task how long it will take to finish it.”

This really does sum up the developer perspective on the issue, and I think it may be something I’ll use regularly with business users to help them understand why I’m so…squishy…when it comes to committing dates, especially several releases down the timeline. Software development is as much an art as it is a science, and great art doesn’t deliver on a schedule.

When Michelangelo was painting the ceiling of the Sistine Chapel,

“…he was hampered by the urgency of the pope, who asked him one day when he would finish that chapel, and when Michelangelo answered, ‘When I can,’ the pope, enraged, retorted, ‘You want me to have you thrown off the scaffolding.'”

While it’s generally the business users who are paying the bills, I have to admit that my heart generally lies with the developers.

Clueyness

The Internet is the world’s greatest procrastination machine.

I’m sitting here on a Sunday night, knowing I really need to build a workplan and line out some requirements and do a weekly report and plan out my week and and and…so I pull up my email and see what interesting reading material I can find, and bingo — the Internet comes through and allows me to put it all off for another 20 minutes or so.

This one comes courtesy of Tim Ferriss’ 5-Bullet Fridays email. He refers to a favorite blog by Tim Urban called “Wait Buy Why”. I click on over and sure enough I stumble across a post called “Clueyness“, which describes that aching feeling of regret you have about some incident in your past where you did something self-centered and jerk-y, and even though you stew about it years later, the person you wronged has probably never even given it a second thought.

His goes all the way back to when his dad and siblings left their father sitting in front of a freshly-laid-out Clue board to play outside with some friends who just showed up. The grandfather was probably pretty happy that his kids decided to get some exercise outside instead of sitting down to a board game, but his dad had guilt for years over abandoning that family game night for some mindless physical fun.

This brings to mind an incident I’ve regretted for years. Way back in college, I invited a girl I had just started dating to the movies, and I was determined to be chivalrous and pay for the movie. As we approached the ticket counter she started rummaging in her purse, so I blurted out something like, “I’ll get the tickets, and you can get the refreshments.” Crisis averted — I was paying for the movie so it was a date. We had a few minutes to kill so we wandered down to the other end of the mall where she pulled some cash from the ATM and then she bought the popcorn.

It was only years later, on reflection, that I realized the fact that she didn’t have cash meant that she hadn’t intended to pay for the movie at all. (This was back in the dark ages when we actually used cash.) She was probably just looking for her ID so we could get into the R-rated movie — and I had gone and stuck her with the bill for the refreshments. Cue the guilt, and the admiration for the grace she’d shown that had avoided me even noticing the faux pas at the time.

She probably promptly forgot about it, and she certainly never mentioned it to me, but LJ if you’re reading this, I apologize for my clueless behavior.

Phew. That’s off my chest, and thank you to Tim Urban for helping me articulate that awful “Cluey” feeling I’ve been carrying around ever since.

Okay, back to the workplan. Or maybe I’ll take a look at the second bullet in this week’s 5-Bullet Friday…