Getting Started

I’ve had a personal project on my mind for some time. I’ve been talking about it with my close friends who would be potential users. I’ve thought about it a lot. I know a ton of features that I want to put in. I’ve played with putting it on Google’s App Engine, and even started a small Eclipse project using the App Engine and GWT plugin. I read a book about GWT at safaribooksonline and started playing with it in my project and got some simple interaction working. Everything seemed to be going great.

Then, I stalled.

I’ve come up with several reasons why I’m stalled. I’m too busy with my extra curricular activities after work to sit down and work on the app. I’m not sure I want to use Google’s Big Table as my data store. App Engine is still in beta with Java support, and while I’ve been invited to participate, I’ve also been following the message boards and there’s still some issues. Of course, that’s to be expected in beta software. I’m also not sure I want to use GWT as the interface.

In the end, I realize these are not reasons. These are excuses. What I’m really missing is direction. I sat down to write one small portion of the website, focusing on functionality, and I just couldn’t do it. Why is that? I finally realized what the problem is, while I have all of these grand ideas for functionality, I don’t really have any idea of exactly what I’m going to do. Designing with Eclipse open on a .java file isn’t the way to go.

I finally decided that I need to write a specification for my application. I didn’t think I needed such a thing since I’m the only person working on the project, but I think I was wrong. Now, after being stalled for 3 months, I’m excited about my project again. I’ve only got a VERY rough and incomplete outline of the specification in place, but already it has helped me to have a much clearer vision of what it’s going to be and how the user will interact with it. I find that I’m trying to make time to work on it rather than trying to find excuses not to work on it.

I’ve read specifications at work, but never really written one. I had a bit of a hard time figuring out where to start. Fortunately for me, there are plenty of well educated people out there that have spent their own time to educate the masses. One particular web page I found interesting was which has a great tutorial on writing a specification.

For my small, single developer web app it may be a little bit of overkill, but it has given me a lot of questions to consider while thinking about my app, especially the the stuff in the “Define the Application” step.

Starting to code an application without a specification is like starting a cross country trip without a map or itinerary. Yeah, you can probably do it, but chances are you’ll take a lot of side tracks, detours, and wrong turns, and it will probably take a lot more effort to get all the way through it, if you make it at all before you run out of gas. The difference is, in a cross country trip, the detours can be fun and interesting, whereas in a development project the detours are mostly just annoying and costly.

3 thoughts on “Getting Started

  1. The next thing you need to do is decide, of that spec, what is the absolute minimum you need to ship with. Getting this list has multiple benefits: it helps you prioritize, it keeps you working on stuff that you know is high value, it reduces initial scope so you don’t get overwhelmed or burned out, and it gets your product in front of people sooner, who will give the real feature direction moving forward.

    Good luck!


    1. Excellent points Travis. If I were to put in every feature I want before release, I would never be “done.” Thanks!

  2. I’m really excited that you got re-excited about this application. I would really love to continue to be a specialist or contact on the app or contract developer. Whatever I can do to support ya.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s