I recently had the opportunity to speak to a group of software developers and project managers at Full Stack Toronto about agile estimating and planning, and the organizers were kind enough to record the presentation and post a video.
Years ago I struggled with a dilemma: should I sit down to figure out how long it will take to create the software product, or just start writing code? Often it felt like a waste of time to be estimating when I could just be doing it.
The problem was I really needed to create an estimate. The business needed to know. We needed to set customer expectations, plan marketing programs, and prepare for trade shows.
I tried a bunch of different software estimating techniques and the only approaches that seemed to work took way too much time. Only by breaking down each feature into individual tasks, then assigning hour estimates to each did I come up with any solid results.
Then I discovered planning poker, and my life changed. Weeks of estimating turned into hours, and the results were far more accurate than anything I had ever done before.
Bill and I were only ten minutes into our meeting when the question came up.
It always comes up, but today it was a little quick.
"So...how much does it cost to create an app?" he asked.
I smiled. "It depends on how sophisticated it is, but a good rule of thumb is the first version of an app with any substance will cost between $300,000 and $750,000.
"Then there's supporting your customers and adding new features as you get feedback. Over the lifetime of the app your total investment will be between $750,000 and $5 million or more, depending on how aggressive you are about releasing new versions."
He paled a bit. "But I just got an e-mail from an offshore company that said they can build me an app for $25,000!"
You've read about user stories, story points and "planning poker," but how do you put it all together? How do you quickly create an estimate for your next project and provide a projected time frame to your higher-ups?
You may be overwhelmed, concerned about getting buy-in from your team, and feeling pinned down by the boss saying, "This seems pretty straightforward to me. Don't you think you can get this done in six weeks?"
"So...how long do you think this will take?"
It's the most-feared question of anyone who's in charge of a software development project.
I've been kept up nights by this question. Broken out in a cold sweat. Lost my appetite.
I've spent hours breaking features down into tasks. I've locked a team in a room for days to create time estimates.
I once spent an entire month creating an estimate for an eight month project.
"Why the hell does estimating software have to be so hard?!"
It's not hard.
I just didn't know the right process back then.