On Getting Started

Posted on by Michael Orr

I wanted to build an application where I could log my comic book reading habits to replace the paper system I was using. I had been mulling the idea over and just talking about various aspects with people for a month or two. On the second time I started to talk to Corey about my idea, I asked him what he thought about which user authentication gem I should use.

“Don’t worry about it. Start. Begin,” he replied.

He was right. I had made a classic mistake and in doing so I was ignoring our work processes with my own pet project idea.  I had 'gone huge' with the idea from the very beginning. I was planning user accounts, graphs, how to handle variant covers (a recent favorite variant for Green Lantern 51), and complex relationships for keeping a single master library of existing comic issues that would be separate from each user’s collection and reading log. Don't get me wrong, it is good to be passionate about your idea and to know what challenges may be in your future but do not let that get in the way of getting your project going. Start small. Do the simplest thing possible. Constantly adapt your plans to your application's needs. Be Agile.

That day I stopped mulling about things like how to order numbers that sometimes had letters on the end (see Batman 700U) and took my project agile. I started by building the simplest thing possible. I got going with no users, just an entry form with blank fields for comic title, issue number and date. Since then I’ve added a pop-up date selector, notes fields, the ability to enter ranges at one time, different collection views and a few other features. It has been almost a month but I’ve only worked on my application for 15-20 hours, at least 10 of them in the last couple of days. The ComicReads application is usable. It rocks! You could clone the ComicReads github repo, rake create & migrate your database, run ‘script/server’, and be ready to log your own collection but I don't expect you to do so.

The most exciting part is that I have stopped logging my comic reading on notecards this past weekend and am now exclusively using my new application on my virtual machine. I haven’t added users yet, switched to mysql or solved several sticky issues— but I’m on my way. By starting with the features I needed— the ability to log the simplest and most essential parts of my comic book reading— I’ve made my project more exciting. Now that I have a working version, I find myself trying to work on it more and more. One day I will add user support, grab a URL, get a better design, and throw the system up for public use. Not this week though, I've got too much else to do.

Go ahead and get started. Begin! Throw out the users, forget connecting your application to twitter or facebook accounts, don’t worry about which database you are going to need, just go for it. Start by solving the problems that make your application interesting.

Reblog this post [with Zemanta]
 
comments powered by Disqus