“Hofstadter’s Law: It always takes longer than you expect, even when you take into account Hofstadter’s Law.” – Douglas Hofstadter
Last week, I sent an email to the alpha list saying that I’d be done with the website and trailer today at noon. With six hours to go, it’s fair to say that I won’t make that deadline. The website yes, the trailer no.
I’ve been making software for 33+ years. You’d think in all that time I’d have developed a finely tuned sense for estimating how long things take, but instead I’ve learned that software is a stubborn beast that balks at every step.
The only accurate way I’ve found to estimate software is called “timeboxing,” where you make a list of things you want to do, order them by priority, then commit to a set amount of time to do them. If things go better than hoped, you get more things done, otherwise you get less things done. Another way of describing this is “slip features, not deadlines.”
Unfortunately, this requires a large enough chunk of time to allow mid-course corrections. A single week isn’t nearly enough, which is why deadlines like the one I set for myself last week are a bad idea. “These things are never certain,” say the doctors, and so should we. My deadline was more of a “that’s how much time I have” estimate than a realistic prediction.
And yet there’s still value to Impossible Deadlines, providing they’re short-term and infrequent. While I may not have finished by today, I did manage to do more work than I might otherwise have done. Such short pushes are called “sprints” in my world. For some reason, they work better when you imagine the finish line is very real and very necessary.
They’re stressful though. Unsustainable. Each day I’m swimming in delay frustrations, reminding myself over and over, “It’s okay. This is good work. Just keep moving forward.” And yes, I end up doing three weeks in one, which at this point is needed.
But the sprint ends this week. I need to get back to my sustainable schedule. Slow and steady most certainly wins the longer race. I can’t wait.
In the last four weeks, I’ve pushed myself to describe a dream. First with the business plan, detailing not only what we want to do, but why and how as well. Writing those fourteen pages was difficult, requiring an unusual amount of stare-at-the-ceiling time and long thoughtful baths. The writing itself was equally slow. I averaged something like a paragraph an hour, with breaks every few hours. It was tough going.
Each morning I read the whole thing aloud. My enthusiasm increased as the document took shape. I knew the writing was taking too much time, time I didn’t have, but I allowed things to unfold anyway, reverent of the ineffable source of thoughts not fully my own. After two weeks, I sent the plan to my list of 84 conspirators, quite unsure of myself and fearing their reactions. Though the document was likely the best I’d written, I still felt the usual panic as I clicked Send. Such a brazen thing to say, “Listen to me,” never mind “Believe in me” too.
When the first few positive reactions came in, I was thrilled. People that knew more about startups and business plans than me were saying “Good job.” The few that read the whole thing seemed enthusiastic and ready for more. Even my wife, who had a dim view of the whole enterprise, began to get excited. As I read her passages from the plan, she kept asking questions, at last feeling hope enough to quell her financial fears.
Exhausted from writing, I took a few snow days off with Paula and Isabel, introducing them to Minecraft for the first time. I’d bought it years ago, but never spent more than ten minutes playing it. Knowing that Tidepool would have the same kind of open-ended creative nature, I figured it was a good time to get the girls doing “research.” Two days turned into five as the three of us became enthralled with our creations. Watching eight-year-old Isabel use Minecraft was especially inspiring. I’ve been talking about sustained creative engagement for years. To see my own daughter glued to the screen, narrating her thought process continually … I was thrilled.
Since then, I’ve been finishing the website and trailer, both more concise versions of the plan. While I’m quite familiar with making websites, the trailer has been a real trip, requiring hours upon hours of counting Flash frames and fixing little details. A few days ago, I decided to include 90 seconds of actual 3D gameplay, which has me learning Sketchup and Blender for the first time, which is a non-trivial detour, let me tell you.
Yes, I’m spending time I don’t have. Not a day goes by without feeling the ever present creative juxtaposition of “this is taking too long” and “just one more thing.” For now at least, I’m letting my artist side win out over my manager side, though as principal software development resumes, this will change.
What can I say? Seeing the first rendering of 2D Isabel sketches within a 3D explorable terrain was just too cool. If Minecraft has taught me anything, it’s that designing the overall look of Tidepool is paramount. Creating it now with my wife and daughter is about the coolest thing I’ve ever done.