Whilst I’m no stranger to the business world I’m still a new player when it comes to developing usable products for a wide audience. My years of training as an engineer and short stint as a project manager gave me a decent amount of insight into designing products and services for a customer who’s shovelling requirements at you but when it comes to designing something to requirements that are somewhat undefined you can imagine I found myself initially dumbfounded. It’s one thing to have an idea in your head, bringing it kicking and screaming into the real world is another.
For the most part I began with an initial concept and started to flesh it out as best I could. The original idea behind Geon was (in my head) called “What’s Going On?” whereby you could plonk down an area on a map and send a question to everyone running the application in the area. The people in the area then could, if they so wanted, respond back via their phone client with some text, image or video. The main idea was to get people communicating and secondary to that would be supplemental information from other sources. After socializing the idea a bit people seemed to think it would be an interesting service (although most declined to make serious comment until after they saw it in action) and the closest competitors looked to be throw-away applications that probably took the developers a couple weeks to slap together. Things were looking good, so I started hacking away.
Behold the horror that was my first attempt, something that I almost foolishy went ahead to try and promote amongst my favourite tech sites. The first iteration was a horrible compilation of ASP.NET and various client libraries that I managed to scrounge from all over the Internet. For the most part it worked as intended, being able to pick up information from various sources depending on your location. The problem was however it was ugly, unintuitive and relied rather heavily on my poor little web server to do all the heavy lifting. Additionally after walking a blogger friend of mine through using it he immediately suggested a couple features that had just never crossed my mind and upon consideration would be absolutely essential in high information density areas. They were so good that even the latest incarnation of Geon incorporates his suggestions.
Looking back over all my experience in designing solutions I realised that I had always been spoiled by having the problem handed to me on a silver platter. When you’re working for a client it’s pretty easy to figure out what they need when they’re telling you at every turn what they want. Sure it might be a hassle to make sure that they properly define their requirements but at least you have a definitive information source on what will constitute a successful outcome. When you’re working to develop something that you’re not quite sure who your client will be the game changes, and you find yourself looking around for answers to questions that might never have been asked before. Right now I find the majority of my answers through other people’s web services, hoping that emulating some of their characteristics will bring along with it some of their success.
At the core of all this is the software development philosophy of release early, release often. Whilst my product isn’t probably ready for prime time the more I show it to people who will (hopefully) end up as my users the more insight I get into what I should and shouldn’t be doing with it. Even better was discussing it with some of my proper software engineering friends who suggested different ways of doing some things which not only simplified my code (to the order of hundreds of lines, thanks Brett ;)) but also opened up services that up until now seemed baffling in the way they returned their data. I guess the lesson to take away from this is that the more you collaborate with others the better your end product will be which is hard for someone who’s as protective of his creations as I am.
I know I harp on a lot about Geon on this blog (and I’m sure you guys are sick of hearing about it!) but it has been the source of many eye opening moments and its all too easy to get caught up in the excitement of sharing something I created with the world. I was never that creative (I can’t draw, I’m not a very sporty person and my music creation skills have been in hiding since my debut song Chad Rock (that’s an anagram of the real title, FYI) has earned me unwanted infamy in my group of friends) and apart from this blog I’ve never really had any other creative outlets. I guess I just want to let the wider world how exciting it is to create something, even if I sound like a hyperactive 2 year old with a new toy 😉
Plus the more I talk about it the more likely I am to work on it, since I feel guilty for being all talk and no action.