I’ve considered writing an application for years. I’ve gone as far as sketching UI elements and even completing initial database design before getting distracted and moving on to other things.
It seems that my greatest adversary in completing anything I start is my own excitement. I don’t find it hard to get excited about new things. In fact, I am so easily excited by NEW that maintaining focus on projects already started becomes very difficult. As it is so often said, admitting it is the first step. My realization of this fault is due primarily to a new podcast by an old favorite—Merlin Mann. Back to Work is Mann’s latest endeavor, this time with co-host Dan Benjamin, of 5by5.com. Like many others, I follow Merlin on Twitter (@hotdogsladies) and Tumblr, and find myself clicking through just about every link he sees fit to share. So in January when he announced a new podcast, I couldn’t fire up my podcatcher fast enough to start listening to the first episode.
I started listening to Back to Work in the same way I listen to most podcasts, while doing other things. This time though, my reaction was different. I found myself caught up in the discussions and stopping whatever I was doing to listen. On one occasion, I was focused so completely on the discussion in my earphones, I found myself with pruny hands soaking in a sink-full of dirty dishes.
That first episode gave me a serious wakeup call. When Merlin talked about people who never ship anything, I realized he was talking about me. Not the part of me that goes into work five days a week, but the part of me that does little in the evenings and on weekends. He was calling bullshit on the part of me that is often content to watch hour after hour of television, browse the web aimlessly, and think of new ideas instead of acting on old ones.
The realization that my productivity at work did not extend to my home was tough to accept, but I couldn’t deny it. How else could I explain why I so enthusiastically implemented David Allen’s Getting Things Done methodology at work last October, but had still failed to fully implement it at home? I’ve spent years drawing a clear line between work and home in an effort to create the work/life balance that so many crave. While I’ve done a great job keeping work tasks from invading my home life, I’ve also ensured that productivity and accountability also stay behind at the office.
I had to do a bit of coping once I had admitted the truth about my home productivity to myself. That meant I had listened to another five episodes of Back to Work before I found a project that seemed like a perfect test.
I only follow 68 people on Twitter, and that is because I like to read every tweet. I have often wondered if I’m wasting time by being such a completist (comptweetist?) but this time it paid off. I was catching up on a few days of tweets when a high school friend of mine who is a game developer (@troygilbert) commented about RIM’s upcoming BlackBerry Playbook. He noted that RIM had decided to give away a free Playbook to every developer who submitted a qualifying application, and had extended their deadline to March 31st.
My first thought was about how desperate RIM must be to give away free hardware. Not only are their main tablet competitors giving away nothing, they are charging people just to register as developers. Then my second thought came: Can I even make an app in less than 30 days?
Cue the doubts and reasons not to try. Immediately I started thinking of all the reasons the answer to my question was no.
1. You haven’t written any code in six years, and that was some really lame VB crap for a college class.
2. There’s no way you have enough time outside of your real job to beat the deadline.
3. Whatever idea you come up with won’t be original and someone else’s version will be better.
4. You’ll never finish, just like most other things you start.
Even now, it’s hard to write these things and admit that’s what I was thinking about my own abilities. Most people who know me would say I convey a strong sense of confidence and self-esteem. They’re right. What people should realize is appearing to be confident and actually being confident are two very different things.
Lack of confidence aside, I decided to try. I had until March 31st to submit a final product to RIM for app review. Here is a breakdown of my experience:
March 9 - I brainstormed a list of possible applications to build. I ruled out anything too complex to build quickly given my limited knowledge of current programming languages. Then, I bounced the short list off my partner (in life and in app development) Michelle to pick the final idea. Winner - a simple app to track lists of chores, grouped by room of the house. We decided to call it Chorenography.
March 10 - I signed up as an official developer and started reading about Playbook development on RIM’s website. I discovered I had two options: develop in the Flash environment, or take an HTML5/CSS/JavaScript web app approach. I downloaded the SDKs and documentation for both.
March 11-14 - Based on some previous Flash development experience (Flash 8 to be exact), I decided to take the Flash route, though after a few evenings I realized this was not going to be simple. I also had no idea where to begin as far as data storage was concerned.
March 15 - Back to the drawing board, and the RIM developer website to take the HTML5 fork instead. Reading some of the WebWorks documentation nearly scared me off completely. The packaging process seemed very complicated (more on that later) and reading about it made me feel like an idiot.
March 16 - After a day of trying to talk myself out of this little project, I decided to stand my ground. I couldn’t walk away from another project without completing it. I just needed to ask for help. I did that in the form of an Amazon order, specifically “Building Android Apps with HTML, CSS, and JavaScript” by Jonathan Stark. This turned out to be the best move I could have made.
March 17 - Nothing. This was probably my lowest point in the process. I was just over a week invested with absolutely nothing to show for it other than a brainstormed list of features for an app that didn’t exist. I went to bed questioning a lot more than just this app idea. I was starting to believe my voice of doubt. No wonder I never finish anything I start—it’s because I can’t.
March 18 - Salvation arrived in the form of a UPS shipment. Stark’s book gave me the perfect HTML/CSS refresher plus the JavaScript primer I so desperately needed. I spent most of the evening reading through the entire book (it’s only about 150 pages) and setting up MAMP on my MacBook Air so I could serve up my web app for testing over my home network.
March 19 - I got up at 7am so I could immediately start building the app. I don’t normally sleep in on the weekend, but I also rarely get out of bed immediately and start working on something. I spent a little over six hours building the core functionality of the app, including the main interface (thanks jQTouch!) and the database for storing chores. I also made an important decision around mid-morning—I stripped out several features I originally thought were critical, but turned out to be less than simple to implement.
March 20 - Another six hours, mainly spent polishing the functionality and testing across multiple browsers and hardware types. Michelle also finished her contribution, the logo. By the time I went to bed, I had the application completed. All that remained was to package it and submit for approval. I felt awesome.
March 21 - I couldn’t wait to get home from my day job and wrap up my project. I quickly ate and then excused myself to the home office to package the app. That’s when I hit a major snag. Despite multiple downloads of the WebWorks SDK for Mac, I didn’t seem to have the necessary files to create my package. After reading the documentation for the eleventh time, I realized it seemed to be geared much more toward Windows, so I decided to give that a try. I fired up my VMWare Windows XP install and downloaded the SDK one more time. Sure enough, the files seemed totally different (and complete) when unzipped. Within 15 minutes, I had successfully packaged the app. With victory close, I had to stop for the evening and get to bed.
March 22 - Back in the Mac environment, I successfully deployed the package to the Playbook simulator and tested. Now just to sign the package…ROADBLOCK! Oh, I have to submit a request for code signing keys and wait one business day for a response? No problem. Request submitted. Used the rest of my evening to register chorenography.com and open a Twitter account @chorenography.
March 23 - Code signing key received! Final app package signed successfully thanks to some intrepid Googling for obscure message board posts from my equally frustrated peers. Now to submit to RIM for app review…ROADBLOCK! Oh, even though I’m already registered on the developer site, I have to complete a separate application to be an App World vendor? No problem. Request submitted. Used the rest of my evening to wonder why packaging and submitting this app was getting close to taking longer than the development.
March 24 - ROADBLOCK! Email from RIM (paraphrased): We need proof that you’re a business in order to approve your application. I respond in less than one hour, sending documentation of my LLC’s status from the Arkansas Secretary of State as well as my Federal Tax ID number.
March 25 - I happened to have a vacation day from my regular job, though I spent it in bed fighting a sinus infection. At 2:48pm, I received a message with this subject line:
*** BlackBerry App World Notification - Vendor Approved ***
Yes! I’m in! I spent the next hour uploading screenshots, a .zip with my packaged app, and of course the logo and description for the App World listing. I got the auto-response from RIM right after I hit submit. Now all I needed was approval of my app.
March 28 - After a long weekend of wondering, I got a message from RIM officially confirming receipt of my submission and confirming I had met the deadline to qualify for their free Playbook offer. I was assured that the approval process for the app was underway and would be completed promptly, though there could be no guarantees.
March 29-April 3 - A roller coaster of emotions. The official acknowledgment of my submission gave me a good feeling that lasted about 36 hours. Then the doubt came back with a vengeance. Why had I even bothered to submit? Why would a huge company like RIM give a damn about my ultra-basic todo list app? If a non-professional like me could write this app in a weekend, why would it be worth approving and giving me a $500 piece of hardware for? I could go on, but I think you get the point.
April 4 - By this morning, I had started to come to terms with the possibility of total failure. No approval, no free Playbook, no sweat. At least I finished the app, just like I said I would. Then at 3:49pm I got the best form letter email I’ve ever received:
Dear App World Vendor,
Research In Motion is pleased to inform you that release '1.0' of your product 'Chorenography' has been approved.
Regards,
The BlackBerry App World™ Team
EXCELSIOR!
I came up with an idea for an application on March 9th. Today, April 4th, my app was accepted into RIM’s app store for the new BlackBerry Playbook. That’s 26 days, only about 32 hours of which was actual work. Can I make an app in less than 30 days? You’re damn right I can. I can even jump through all the app store hoops and still make it with four days to spare.
Is Chorenography 1.0 exactly what I thought it would be? No. Did I ship it? Yes. Will the next version be better? Undoubtedly.
What I’m starting to realize now is that success is what leads to actual confidence. Only now that I’ve completed the app can I write about the doubts I had when I started. I know I can do it because I did it. Now I see the value of what Merlin always talks about. If you never ship, then you never know if you can ship. So ship something. You can always make it better later.