On Monday morning, I wrote that I realized was behind schedule for my next release of StoryTime. I claimed that I had gotten myself back on track merely by thinking it through. No one is watching me as I type away in my home office. I could easily be typing “All work and no play…” over and over into the computer. (Read or watch The Shining if you do not get that reference.)
Although I am not crazy (as far as I can tell), I may have been fooling myself. With the gaps that remained to be filled, it might have been smart to “call it like I see it” and move the date. As tempting as that might have been to coder-me, manager-me knows that a firm deadline is clarifying, forcing decisions and getting things to happen that are “good enough.” So the two sides of me agreed to go for it.
By Monday afternoon, I found my head in my hands, not knowing how to solve the next problem, and with a dozen more problems lined up behind it. Even if I solved a few of those and got things kind of working, there seemed to be no way to get things to a sufficient level of quality. The software has to do what it’s supposed to and not look too messy and disorganized for players.
Even if I finished all of the coding, I still would have to push it out to the cloud. Since StoryTime now involves external systems (identity providers and a database), pushing to the cloud would be different than the last time. Being different means I should expect problems, which means it probably will not go quickly.
And I only had three days left.
Those are some good reasons to give up, to push the deadline, to throw up my hands and say “I give.” In that moment of despair, however, one is willing to take desperate action. So the first thing I did was to take a nap.
The second thing I did was to cut myself some slack. I decided that getting things working on my own computer by the end of the week would be a pretty good step. I could always spend next week figuring out how to get it to the cloud. My overall schedule would get behind, perhaps, but that would be better than quitting.
In any case, the release after this one is about game administration—being able to see who is signed up, to help players unsubscribe, and to block bad actors), that would give me a chance to catch up, as well as rethink whatever wasn’t working.
By allowing myself a moment of despair and a chance to recover, I rebooted myself and became productive again. Tuesday was a good day when I solved my biggest database issues. Then I solved my issues with matching a player’s identity to her StoryTime account. Then I got the front-end client (the part that humans use) to display a real player profile, combining a social profile (from Facebook or Google) with game-specific information. Then I got profile updates to work. Finally, I cleaned up the user interface that lets players change their profiles. Before I knew it, after working for two full days, the coding was done. I even wrote a new introduction to the game, just to keep things fresh.
Lo and behold, by the end of the day on Wednesday, everything was working and ready for prime time. All I have left is to push this puppy to the cloud.
To those who say, “Don’t despair,” I say go ahead, despair. Then get over it by getting back to work.