I’ve been working with various developer communities for several years, and there’s a common question I encounter regardless of the platform:
Q: “What should I work on?”
This isn’t always easy to answer specifically, because a great deal depends on the skills and interests of the person asking. But there is an easy general response:
A: “Solve a problem for yourself.”
I’ve found that the developers not asking that question tend to do exactly that. They have a need, see no available solution, and jump right into solving it for themselves. Often enough, that tends to work for others as well.
I’ll demonstrate with an example that’s close to home for me. My youngest son was riding with a friend who got stuck at the edge of a lake in his truck, well away from any paved roads. He was unable to tell me exactly where he was, so I needed his geocoordinates. Unfortunately his phone’s battery was low and he was reluctant to do anything else to drain it; calling me was cutting it close. But eventually I was able to figure out that he was at a park I’d been to, and headed off to get him.
I also checked the Windows Phone store for location-sharing apps, for future use. Something like that would be handy for teen drivers and their parents. But while I found several that provided coordinates, I didn’t see any that provided routing. As I drove to pick my son up, I sketched out in my head how I could address that. Back at home, I immediately got to work.
When I talked to others about it during development, I kept encountering the same response: “I’d love to have that for my kids!”. As I got further into the project, I thought of other modalities: meetings, deliveries, even macro gaming. I incorporated many, but kept the basic functionality simple and focused on emergencies, so that someone needing urgent help need only use a few clicks to get it.
The result is my first published app (after 30 years of coding!), Here You Go. I’m pretty pleased with the outcome and have several ideas on how to make it even better.
Point is: I had a problem, checked out what was available, and then solved the problem. That sort of process tends to result in apps that resonate with others. It works for hackathons too: time and time again I have seen clear, simple, monofunctional solutions take the big prize away from more complicated projects.
So, at least for your first app(s), forget Change The World type solutions. Look at your own needs, and implement something simple that solves them. The odds are very good that there are many, many potential customers with the very same needs.
Now go code!