Last night my daughter Athena reached out her arms for me. I helped her to stand, and then I reached out my arms, inviting her to walk into my arms. She broke her previous record by taking two steps before she crashed landed into the foam mat, and it made me ponder the meaning of 1.0 as a software milestone.
Time plays tricks on the mind. It was just a few months ago that Athena began to crawl, but it wasn’t an immediate event, but rather a gradual process. Back in June, a hair short of seven months, she would go in circles on the mat because she hadn’t yet figured out how to coordinate her arms and legs. Before and after there were lots of milestones on the path to crawling. Somehow, I was expecting walking to be different. That she would just wake up one day and start walking. But it hasn’t been like that.
Last night, after she took three steps towards me, and we all applauded her, I stood her up again, inviting her to repeat her new record. Instead she stood there with those beautiful blue eyes and radiant smile, applauding her achievement and inviting us to do the same. But instead of clapping, I just held out my hands, inviting her to walk the two feet that separated us.
And this caused me to think about what exact my app needs to do to move from alpha to beta status. Ask twelve develoers what 1.0 means and you’ll probably get twelve different answers. Ask Facebook, TypeSafe, & NodeJS what /good enough/ means, and again you’ll probably get very different answers.
So, as I’m working on the MagicNotebook, I ask myself, “When will it be good enough?”
When is good just not good enough? When does that change?
There’s a sticky note pasted to my monitor. It says, “When will it be good enough?”. I have an old- fashioned windup clock that goes “tick-tick-tick-tick”, reminding me that I need to go faster. And the sticky note reminds me that sometimes /good/ is good enough and sometimes it isn’t. And now I have a memory burned into my brain of a little girl taking her first three steps, reminding me that the there will not be an event that clearly delineates the transition from version 0 to version 1, when my app transitions to a state of “almost but not quite good enough” to “good enough”.