The Hard Part, the Fun Part, and The Details

Kiril Savino
2 min readDec 5, 2014

--

I’m not a big fan of estimation. It’s hard to get right, and in software, today’s “easy” is tomorrow’s “more complicated than I thought.” But we still have to estimate from time to time, and I’ve started to notice a pattern to one form of estimation error:

When a software engineer is looking at a project, she immediately grasps The Hard Part, and The Fun Part.

The Hard Part. When a programmer first starts to grapple with the problem, she looks for the complicated bit that’s full of gotchas. This is where she starts muttering for a whiteboard, and after an hour (or a few hours) of thought, there’s this AHA moment when she’s figured out a strategy through the crux of the problem. Once you’ve done this a few times, you start to recognize ahead of time The Hard Part, and you’ll have a quickly formulated strategy for solving it.

The Fun Part. There’s some cool new piece of technology to incorporate, a chance to use that algorithms class you took in school (I swear my degree was worth it all now!), or an opportunity to finally refactor that ugly code that the previous developer wrote. This part is easy to see and reason about, and so it factors into your estimation early.

So all thats left is The Details, but give me a couple of days and I’ll bang out 90% of it… we’ll be done in no time!

And that’s exactly where it all goes wrong. When you’re building something real, something that integrates with a database, an API, an existing flow, a user’s expectations, The Details aren’t the last 10% of a project. They’re more like the last 75%.

So what I encourage anyone to do when trying to estimate how long a project will take, or how much is left to do, is sit down and try to catalog the details. Tests, usability, copy, design, integration, backwards compatibility. You’ll find that the list of things to do beyond The Hard Thing and The Fun Thing might dwarf both of them.

The Details are where things actually get done. Ignoring them ensures that you’re going to be unhappily surprised when things take longer than you hope, or you’re going to shove something unfinished out the door, and both results suck.

Originally published at aurum.tumblr.com.

--

--

Kiril Savino

artist, storyteller, 2x tech founder, student of culture, brand strategist, hacker, tattooer; past founder Leap, GameChanger