There's a proposal that we rewrite a big part of the system I work on. We'd take advantage of a new risk engine that scales up much better than the old one we use. We'd use a better source of trade notifications. Everything really would be better.
So what's my problem?
They want estimates.
Oh boy.
Now, I've been doing this software writing thingie for 30 years. I've got better every year at every aspect of my job, learning new languages, new techniques, improving domain knowledge, recruiting, training and retaining staff, keeping customers very happy, reducing delivery times (2 week schedule at the moment). In short, doing everything I can do to stay top of my game.
So what's the problem?
I can't estimate.
I see Dead Projects (apologies to Bruce Willis and the Sixth Sense)
I know exactly how many people it will take and for how long, I have my own sixth sense about that. But I also know how many people it will take to go to the meetings, to update JIRA, to write User Stories, to build a Confluence site.
I know how many people we will need to add inprocess monitoring, testing, metrics collection. To create the batch jobs, to create and maintain the SQL, to convert that old Ant build to Maven/Gradle.
I know how much of my time it will take to train new people, to pass on my domain knowledge, to put the new guys in touch with the right people.
I mean, writing software can be the easiest thing in the world: think, code, test, deploy. How hard can it be?
Well, building something that will run for 10 years with barely any change ( like the last rewrite) is really hard. It's like Brain Surgery on roller skates.
I know how many people it will take to do this, I guess I am not so good at telling people the bad news.
I can't estimate reliably how long all the above will take if priorities change. Or people move around. Or we suddenly have to do some regression testing.. Or upgrade Apis.
So I suppose.. I should say; I can estimate, but I won't. Not unless the world stops moving and changing.