Blog Archives

How to come up with ideas

Some people seem to have all the cool ideas. I’m not really one of them. Until recently, I used to find it hard to come up with ideas for apps. So I got curious: where do those people get all their product ideas from? And more important, how can I get more ideas of my own?

3263976449_0f346371df

It might be that some of us are by nature better than others at finding new ideas. Maybe so, but I also believe that these “idea people” have trained their minds to become better at recognizing problems and possibilities.

Here’s a thing that you can do to train your own mind:

For the next 30 days, come up with at least one app idea per day.

Write your idea down in a file somewhere. It doesn’t have to be a fully fleshed out idea, one sentence is enough: “An app that finds recipes based on what food you have sitting in your fridge.” That’s all you need.

It also doesn’t have to be a good idea, or an original one, or even something that is actually possible — it just has to be something that you came up with.

More than one idea per day is fine too. In fact, once you get started with this exercise you will find that ideas start to pop up everywhere.

Don’t get disheartened if the ideas for the first ten or so days are pretty bad or if it turns out that they have already been done before. If you keep at it, you might surprise yourself with how many good ideas you will have in addition to the bad ones.

The point here isn’t really to have only great ideas, but to generate ideas in the first place.

I did this exercise in September last year and of the 100 or so ideas that I wrote down over the course of the month, about 20 were actually pretty decent, and two or three were really good ones. I wouldn’t have discovered the good ones without going through the bad ones first!

There are many small annoyances in our lives that we are unaware of and have learned to accept or ignore or work around. We no longer question these issues; they have become blind spots. But when your mind starts actively looking for things that can be improved, you’re slowly becoming aware of these annoyances again. They are excellent candidates for app ideas (or other inventions).

For example, I often view recipes from American or British websites on my iPad while cooking. The problem is that they have measurements in cups, ounces, lbs, Fahrenheit and other silly units. I’d love to have an app that scans the web page with the recipe and converts all the amounts to the metric system, so I don’t have to do each calculation by hand.

How often do you think, “I wish I had an app for that?” If you are an idea person you probably think this all the time.  The point of this exercise is to get yourself thinking like this too.

Give it a shot. It doesn’t have to take more than five or ten minutes a day, and you’ll never be without app ideas again.

Photo Credit: Diego Dalmaso

How to make apps if you’re not a good programmer

The other day I received an email with the following question:

“I have this great idea for a game, but I’m new to iOS development and this goes way over my head. So I’m wondering if you could help with the development or know anyone else who can? Of course, we’ll split the profits.”

Since this isn’t the first time I’ve received such a request, I thought I’d put up my answer here.

It’s not easy getting started, that’s for sure. It can take a long time to go from noob to someone who can make quality apps. Also, not everyone is cut out to be a programmer.

Having a great idea is only the beginning, but the money is in the execution. If you don’t know how to execute, then you might need to take another approach to get the app made.

Even if you can pull off the programming part, that is not enough to make your app a success. You also need to get it to the right people, in the right place, at the right time. That also takes certain skills.

Sell your idea to find your team

Here’s what I would do: To find someone to work on this with you (for a part of the profits rather than work-for-hire), you’ll have to convince them of the potential of your idea. The best way to do that is to make a short demo video. Appsterdam’s Mike Lee wrote a good blog post about that.

With that video you can set up a project on Kickstarter or a similar site, that allows you to raise money from small-time investors and at the same time attract attention from developers and even potential customers. With that money you can hire a professional programmer, designer, and anyone else you need.

Let’s say you raise only $5,000. That by itself won’t be enough to pay for the development of the app, but it will serve as a decent down payment for the people you will hire. With some up-front cash and a convincing demo video, professional developers might be more willing to work for profit sharing.

In other words, if you don’t have the programming or design chops to make the app by yourself, you will have to play the role of a producer (like a movie producer) instead of a programmer, and gather a team of people who are willing to work with you.

Most of these people — if they are any good — aren’t interested in working for profit if you’re not also bringing something to the table. Asking someone to work on your project for a share of the (hypothetical) profits is asking them to invest their time and talent into your idea — and by extension, your leadership — at their expense, based on nothing but a promise of a fat payday. You’d better be ready to deliver on that promise!

But what if someone steals my idea?

You’re putting your great idea out there for the world to see in order to attract investors and talent, so what’s to stop others from simply copying it?

Here’s the thing: it is incredibly hard to make a hit game or app. If your idea is something anyone can build in a handful of days that is guaranteed to sell itself without any effort, then keep it to yourself. These are one in a million ideas and chances are yours isn’t one of them.

Your idea will take many months of dedicated effort to turn into something real and many more to find its way to customers. No one will steal it because no one else will care about it as much as you do or is willing to put in that kind of effort.

It’s not the idea that is worth money, it’s the execution of the idea. Most of the hit games on the App Store are not 100% original ideas — for example, Angry Birds and Tiny Wings are both based on other games — just very well executed versions of those existing ideas.

The idea isn’t really yours to keep

Now personally, I believe that you have to let go of the notion that you can “own” an idea. An idea by itself is nothing. That’s why you can’t really “steal” ideas. On the other hard, you can certainly own the execution of the idea, and that is protected by copyright laws and by the fact that’s it’s just a lot of hard work.

The only way you will ever profit from your idea, is to make sure you are the one with the best version of that idea.

If your idea is truly good but you put out a very basic, average implementation of the game that you programmed and designed yourself, chances are that hardly anyone will care about it. But it might inspire some other developer and a few months later some other team makes a lot of money from your idea but done better. You will have blown your opportunity.

So if you want to be the one with the hit app, you need to be the one making the most amazing version of it. And that requires programming help if you’re not a very good programmer, design help if you’re not a good designer, and marketing help if you’re not a very good business person.

So start working on that video!

Illustration by Oscar S.R. / miutopia (from openclipart.org)

Freelance iPhone Developer, One Year Later

A year or so ago I wrote a blog post about starting out as a freelance iOS developer. A lot has changed since then. I have no shortage of work and I was able to recently bump up my hourly rate to €150. Because of this, my fiancee and I can afford to take a three-month vacation in Australia soon and I don’t intend to do any work while we’re over there. Of course, I worked hard to make this possible.

If you pay peanuts, you get monkeys

Every day I get inquiries from potential clients, much more work than I could possibly handle. Some of these inquiries are quite unrealistic, but the 150 Euro per hour price tag is quite effective in scaring off the dreamers with a hundred bucks and an idea. (It’s also basic economics: If you can’t keep up with the demand, raise your prices.)

My hourly rate may seem high but one thing I learned over the past year is that I’m a really good developer and that I’m worth it. Asking for big money obviously drives away a lot of potential clients, but the clients that I do get are serious about what they want, their projects are interesting, and they understand what it takes to make a quality product.

As any creative professional can tell you: “The more you pay me, the more you can expect of me, and the harder I will work to make the end result really wonderful.”

Inspired by this excellent rant, I also decided to take on only the really hard projects, the ones that are too hard for other developers. Simple apps are boring — I need challenges that allow me to make the most out of my skills!

How to find work

I received an email today from a fellow freelance developer who found himself in the same spot I was in a year ago:

“I was wondering if you had any more luck finding work via internet resources since your post was written? I figured I’d look around at a couple of the big freelancing sites and see what I can find, but I think it’d be so much better if it was more personal.”

There are two things I did that made all the difference. First off, I started blogging. There’s always a need for good information about any topic in your field, so if you write quality posts you’ll build up a name for yourself and people will come to regard you as an expert.

With a blog full of quality material, you’re no longer some anonymous developer but someone who has already demonstrated his skills. It makes it easier for clients to trust that you can actually deliver.

Putting some of your own code on Github is another way to pull that off. I have created some open source components that people find useful, and that gets my name out there too.

The biggest thing I did, however, was to write for www.raywenderlich.com. That is a popular site with tons of great tutorials and my contributions seem to be appreciated. I also wrote a 750-page ebook called The iOS Apprentice that is sold through Ray’s site, and contributed to the ebook iOS 5 By Tutorials.

A lot of this is hard, unpaid work, but it pays itself back in building up your reputation. I’m probably not as well known in iOS circles as Matt Gemmell or Marco Arment, but I’m working on it. ;-)

Not what you know, but who you know

The second thing is to get in touch with other developers. Networking is a great way to get referrals for jobs. Many developers have too much on their plate so they’d be happy to pass on work to other developers they know and trust. Some will also subcontract out certain parts of their projects.

There are many ways to network. You can get in touch with other developers that are local to you through groups such as CocoaHeads and meetings such as NSCoder Night. If no such group exists in your area, you might consider setting one up yourself.

You don’t have to restrict yourself to just meeting iOS developers, of course. Mobile developers, web developers, designers, start-up founders, these are all useful people to get to know.

Face-to-face networking is probably best, but on the internet there are plenty of places to get in touch with other developers as well: forums, blogs, IRC, Facebook, LinkedIn, you name it. Hanging out with your peers has never been easier…

Developing Software is Expensive Because It is Hard

If you have an idea for an app and are looking to get it developed but you have no programming experience yourself, it might be wise to learn a bit about the difficulties of developing software so you can avoid the common pitfalls:

  • not getting the app you want,
  • paying more than you budgeted,
  • not getting your deliverables on time.

There is a reason why software takes a long time to develop, is expensive to make, and often isn’t very good: programming computers is hard!

It’s easy enough to learn the basics of programming. There are only a handful of building blocks and by themselves they are easy to understand. However, knowing how to combine them into a larger application is the real trick and that takes many years to master.

If you’ve never programmed before, or never went beyond the trivial programs you had to write in school, the difficulty of the task may be hard to appreciate. In this article, I’ll try to give some insight into why writing software takes so much effort and why it fails so often, and some tips on how to avoid disappointment. Continue reading…

Life as a Freelance iPhone Developer

Four months ago I quit my job to become a full-time freelance developer. I set up my website, registered the business, and set out to find work. My current interest is in iPhone and iPad software so that is the kind of work that I looked for.

It wasn’t hard to find iOS-related development jobs because currently there is a huge demand for mobile developers. However, I found it challenging to find jobs that pay enough to make this endeavor worthwhile.

I have been programming for a long time but I still am a bit of a newbie when it comes to being a freelancer. As an employee I have worked for big, medium-sized and small companies, including a startup that went bankrupt after I had been working my butt off for three years. In between, I have worked for myself for several years as an independent shareware author, writing my own software product and selling it from my own website. Now I’m self-employed again, writing apps for the iPhone and iPad on a freelance basis.

In this blog post I’d like to talk about my experiences so far, in the hope that it will be useful to other aspiring freelance developers, and maybe to pick up a few tips from more experienced contract developers – any advice is welcome! Continue reading…