
The last ThinkRefresh article covered simple specifications for client work. In this post, we’re concentrating on simple ideas for personal projects and startups.
Everyone has at least a couple of ideas which they’d like to pursue; the problem is, which one should you work on? You only have so much time in the day, and even if you’re the best developer out there, you’re always going to be limited by what you can achieve around current commitments, be it to friends, family, existing employment, or client work. As we’ve previously discussed, working all hours of the day can negatively impact your productivity.
Based on my limited experience with founding & developing start-ups, and nurturing them from the crazy ideas stage through to production, I’m now hedging my bets on web apps that are geared towards solving simple, tangible problems. You know the ones I’m talking about; they’re the sort of ideas you don’t need a rehearsed speech for because “The Problem” just rolls off your tongue, subsequently justifying the follow-up explanation of the potential solution whilst making it sound simple (potentially to the exclamation of, “why hasn’t somebody done this already?”) and undeniably attainable. If you have a web app idea that fits the bill, drop everything, and start coding. That’s the idea you want to pursue.
Example
I really wanted to use someone else’s project as an example of a simple idea (please post one in the comments if you have one of your own), but Notipal, an application that Ryan and I started hacking on just before Christmas, just works so well:
My dad was trying to access his online banking. I was sat next to him. The bank’s website was unavailable. He kept clicking refresh in a vain attempt to access his bank account. This process quickly became tedious, and as soon as it did, I slapped my forehead and decided that there needed to be a web application that offered an email collection service for error pages. As a ‘webmaster’ you copy/paste a line of code in to your website templates, and if your site goes down, an email form (as provided by the line of code) can collect the email addresses of the people that hit your website’s error page during the outage. And when your website is back up again, the service emails all the people who left their email address for notification.
That’s the Notipal problem & solution in a nutshell.
Saying ‘No’
Aside from the fact that simple ideas sound great to other people, there’s a second, albeit no less important benefit for building an application which solves a problem – it’s much easier to say ‘no’ to anything but the core feature set required to solve the problem you’ve diagnosed. This point is particularly topical for ThinkRefresh readers; along with naming things and cache invalidation, feature creep is a programmers worst enemy. More info about feature creep is available on Six Revisions and Wikipedia. Simple ideas empower you to say ‘no’ to feature creep, unlike ideas which target a ‘gap in the market’ – if the feature doesn’t help you to solve the original problem, it doesn’t make it in to the spec.
The later breed of idea, which target a ‘gap in the market’, are usually conjured up whilst observing existing players in the market place, deciding that their market share can be eroded by a product with a slightly different ‘fit’, and only then trying to work out the required feature set. If you’re considering pursuing one of these ‘opportunities’, think very carefully about doing so, unless, once again, you have specific use cases of exactly how the product works/functions differently, or how it solves a problem in a different way. By now, though, this post should have convinced you that you just want to start with a small problem and to create a simple solution – something which you’re much more likely to launch within the time you have available for personal projects.
Finally, as an aside, does anyone have a new year’s resolution related to personal projects, or are you planning to launch a personal project in ‘09? We’d would love to have the scoop, especially if it’s a Rails app, so please let us know in the comments.