Monday, September 25, 2017

Quote of the Day – The Optimism of Software Developers

Software developers at all levels tend to be optimistic – you have to be to build big things

Chris Roberts, EuroGamer interview

In my experience, developer optimism is the true state of affairs on every software project, big or small, and I can think of a few on which I have worked that wouldn’t have been started had we known up front how long they would take.

One of the tricks in managing software projects is understanding that the estimates that software developers give often need to be decoded to understand what the real number is likely to be.

There is an old saw about software project estimates that says you should take the time a developer says a task will take, double it, then go up a unit of measure.  So if your dev says it should take a day, you should assume it will be delivered in two weeks.

Of course you can’t develop a project plan that way.  If all your developer time estimates add up to a month and you say the project will take two years, you’re going to get fired.  And, in any case, with any software project you’ve probably been given the feature list and the deadline in advance, so you really have to start stack ranking features by importance to know where to focus.  Of course, marketing will rank every feature as a “1” so good luck there.

Still, if you know your team you’ll know how to interpret estimates.  You’ll know who chronically underestimates and who has other tasks that might interfere with the project.  I used to work with one dev who was always spot-on with his estimates of how long it would take him to finish any task.  The problem was that he was the key database guy on a product that was completely database driven, so spent more than half his time debugging field issues and helping out with new installations, tasks always deemed more critical than project work.  So his estimate of a day of effort for a task would be correct, you just wouldn’t know when he would have a day to focus on it.

And don’t even get me started on having a dependence on third party libraries and such.

Anyway, this is why most companies keep their projects vague and under wraps until they get close to launch.  Maybe a company will put out a road map with some general milestones, but even those tend to fall over beyond a six month window and get swept under the rug to be forgotten.

So running a project where you’re trying to do everything out in the open in front of customers… that way lies madness.  It would be nothing but outsiders kibitzing, asking for updates, and holding you to account for everything you’ve ever said would be a feature.

I am not sure why anybody would subject themselves to that.

No comments:

Post a Comment