What to build? A dilemma
How do you choose which of your many ideas to pursue? Do you choose the one with the interesting technologies that you want to explore, or do you go for the one that you think would be the most useful?
I am currently suffering from this dilemma in relation to which app I concentrate on as my ‘signature’ app. If you’ve got time to build one app, in this case an iPhone app, to demonstrate your skill as a programmer to future potential clients, how do you decide what to do? I have 3 choices in this regard:
- Hikers footpath planner. A really complex and difficult app that will take a long time to put together but that demonstrates all my skill as a back end developer while also showing an ability to do some nice things with the front end. This app, although sounding ideal, is a risk. I have limited time and the app is complex enough that it might not meet the App Store requirements on stability within the time frame and, with my current dev time limited to evenings and weekends, might not get be completed to the final most impressive stage by the time my (admittedly self imposed) deadline come around. This app has, I believe, a wide audience, but only if done exactly right.
- OCR Menu reader and translator. An app that allows me to explore some really interesting technologies and demonstrate some skills with both backend and front end work. The app, however, would be trying to compete directly with another app, Google Goggles. Do I really want to develop in my spare time an app that could potentially be utterly eclipsed by a company who have million of dollars to spend on getting it right?
- Open Plaques. An app that demonstrates some back and front end skills and that solves a specific purpose for a group of passionate individuals. This app would provide a service to this group of people that would not only ease the lives of the owners and developers of the Open plaques site but also make is much easier for users of the site to add content. This also will use some of the technologies that would be used in the OCR menu reader.
So I guess the question is, is it better to make something that is popular and useful, or something that shows off my skills but with an uncertain audience or competing against a much more powerful opponent? I can’t help thinking that the popular app, if I add lots of bells a whistles, would be the way to go. I can always work on the hikers app at a later date, for if nothing else I want one even if it never makes it as far as the app store. Maybe I should just take a well learned lesson from Software Development, KISS (Keep It Simple, Stupid). If anyone has any opinions, I would really like to hear them.
I would say an app that people can use is always better as it gets you a wider audience of people who actually use it, give you feed back and encouragement. As it’s a group of passionate people you know they will really appreciate it and that in itself can be really good for motivation to keep at it and push for future enhancements.
There is nothing better than having people use an app out in the “wild” and have people you don’t know using and passing on the word. Your name will be on the app store and people can always review and contact you.
I think future potential clients will appreciate an app that is out there and being used.
So the question is – is this for you or future work? If it is to promote future work then I say get the Open Plaques app out and then work on enhancements and after that have fun
There is nothing worse than having a half completed app when trying to demo to get new work.
Hope that helps.
Well I personally want all three but I’d settle for the hiking map app and the plaque discovery app for starters. The OCR version of the plaque app would be awesome but I need to write you a backend first…
The popular app is probably the way to go to get good feedback and a useful reputation. The Open Plaques simple app (discovery and map) would probably make for a nice taster app that lays the groundwork for the bigger hiking app (using the map).
i.
Given everything else then the more popular app would make sense.
However you’ll probably create a better app if it’s something you will actually use and/or care about. The world doesn’t need another crappy mass-market app.
To be honest I’m guessing you’d be more interested in the hiking app? I’d suggest boiling it down to the essential features. Think about the minimum needed to make it useful and implement that and nothing else – then get it out there. Anything else mark as v2.
Consider the fact the 37 signals sell a $9.99 app that lets you draw a sketch in a choice of white or red on a black background and share it with other people. That’s a really minimal app:
http://productblog.37signals.com/products/2010/06/launch-draft-for-ipad.html
I wholeheartedly agree with John. Do whatever app *you* feel more in touch with. It doesn’t matter if the market is five people, whatever it is you do for yourself will have that extra little bit of polish you don’t even think about but it will shine through. Dogfooding, etc.
And you don’t have to get everything perfect in version 1, half of Google’s stuff is still in “beta”.
So I would say sure, KISS but for what it is you want to do – and if there’s any of those bits you can use for the other projects all the better
I’ve been having similar dilemmas recently. My thoughts:
* Do the simplest thing as quick as possible – while the initial enthusiasm lasts. If you’re busy next weekend, and then it’s two weeks since you wrote an initial backend library – motivation will likely be gone. Instead, get very high level scenario done in 3 days to keep excitement alive, then iterate.
* So that sounds like the popular app, as it seems the best defined. But maybe you could make a defined scenario on the hiking app to focus on.
* I’d try not to confuse building up your portfolio/learning new skills with making lots of money.
* OCR+menu app will look awesome on your portfolio even if it’s #2 in that category; hey, you just went up against The Goog!
* Rubbish, you wanted an answer… as a random blog reader, I’d say Open Plaque as if you’re a sociable developer, feedback from passionate users is the best kind of motivation there is.
Here are the pertinent questions :
How much time do you have?
How much time can you afford to devote to this?
What skills do you absolutely need to prove? (I assume you can already prove your back-end skills)
How much do you want to make the app?
I find that there comes a time at some point during a personal project where it stops being fun and becomes actual hard work. It’s even harder than paid work as there are no external stimuli pushing you to finish it.
For me it’s usually about half way through. So how many days of painful hard work can you force yourself through? Work that out, double it, and you got your project timeline
All of these apps seem to have some difficult challenges, but I don’t know how far you’ve got yet (with tech like OCR). But put it this way, my first iPhone app is going to be super simple: It’s called Kitty Conveyorbelt. It shows photos of kittens moving past on a conveyorbelt. With elevator music in the background.
Sounds easy right? But even a simple (and pointless) app like this will take me a week to make. And yes I’m at that point now where it’s pure hard work and I’m questioning why the hell I’m making something so ridiculous.
But when it’s finished, and released, I’ll have had my first app on the appstore = awesome!
That’s where I’m at though – you may be way ahead of me, and there may be one of your ideas that could only take you a week. If so, go for it! If not, I’d think up some simpler ideas.
hope this helps!
Seb
If we take the Open Plaques example as my first app then, given I am working only in evenings when I am not busy, and weekends, it will probably take about 7 man days to put together right, with the simplest use case finished within 5 man days. You say that your Kitty Conveyorbelt is a simple 1 week app, but for me with strong back end skills and with my main hurdle learning front end and graphics skills, it sounds incredibly difficult. OCR seems simple in comparison! However this is one of the things I am hoping to address and intend, once I have a bit more experience, to find some courses on graphics and animation that would help me understand how to do these things.
So for my first app I am playing to my strengths. Strong back end with a simple, usable interface that maybe I can add some nice transitions or flashy graphics to to make it shine at a later date.