5 Lessons Learned While Being a Freelance iPhone Developer
- May 18th, 2010
- Write comment
I’m doing freelancing full-time this summer. Here’s a brief summary of what I’ve learned so far.
Lesson 0: Be good.
The key to being a successful freelancer is being good at what you do. If you are bad, no amount of business wisdom will save you. In the iPhone business, this means:
- Write a half a dozen or so apps and get them through App Review. Kind of obvious, really
- Troll the official and unofficial developer community hangouts and follow what is going on, especially with regards to new “unwritten” app review guidelines and practices
- Stay up-to-date with the latest beta SDK documentation so you know what’s coming
- Spend a lot of time trying out iPhone apps
- Spend a lot of time learning new SDKs and APIs
Lesson 1: Say “no” a lot
Apple wins by saying “no” to features. It makes sense that in Apple’s market, you win by saying “no” to clients. Some examples:
- Client wants to add lots of really complicated features. But you can solve 80% of the problem with a simple solution. Simple solutions are easy to maintain and can always be extended later to recover that last 20%. If the client can’t understand this, perhaps they shouldn’t be partnering with Apple, the king of simple.
- Avoid visual overload. This is a design aesthetic, but it’s key on Apple platforms. Again, if the client doesn’t get it, what other parts of the HIG is the client going to fight you about?
- Don’t negotiate on estimates. I’ve had dozens of people who want me to come down 5%, 15%, or 50%. If it was going to be less, I would have quoted less. If the start of the relationship is a spat about $500, what does that say about the rest?
Lesson 2: Filter clients fast
If you are good (see Lesson 0), the amount of work available to you is effectively infinite. Every person who has held an iPhone has an idea for an app and dreams of riches. The number of people who can take that idea and convert it to a product, on-time and on-budget, however, is vanishingly small–perhaps 10,000 good developers at most. So only take the best clients.
This concept is a lot more counterintuitive in real life than it is on paper. You are looking somebody in the eye who is offering you $5k (for a $6k app), and turning them down, because you know that next week somebody will call you who is willing to pay full price. It means turning down a stellar multi-app repeat client who pays on time but is extremely picky about the background color of unchangeable Apple UI controls because you know that right behind him is another stellar client who trusts your (and Apple’s) professional design judgment and will be a lot easier to work with. Turning down a deal in-hand that’s “ok” but less than stellar simply goes against all intuition.
As soon as I have any idea at all what the project will be, I quote new clients a price with a margin of error of a couple of thousand dollars. I do this before investing any work into writing an estimate or even hearing much about the project. I need to weed out the “revenue sharing” people instantly, not after even one hour of my time. There are simply too many of those guys out there.
Lesson 3: Don’t bid
There are a lot of bidding war sites out there like iPhoneAppQuotes.com and GetAppQuotes.com. Leads from them aren’t worth the time it takes to write an estimate. Here’s why:
- Competent developers already have plenty of work. So the number of competent developers on those sites are pretty small. So if you’re a developer, you’re bidding against incompetent people.
- Those incompetent people you’re bidding against? They will quote a lot less than you. It doesn’t take much money to not deliver a project.
- All those clients (speaking from experience here) are either clueless or penny-pinchers. The reason they’re putting projects up for bid is because they want it done (or not done, as evidenced by the responding developers) as cheaply as possible, even if it sucks.
Fast food is cheap. It’s the same everywhere. Any fool can be taught to make it.
I am not in the fast food business. I am a chef. I juggle Apple, clients, changing HIG guidelines, changing SDKs, tools, documentation… I design good layouts. I think through small-screen UI design. I pay attention to battery life. I look at what the client wants and I see past the requirements and into the real business problem. I anticipate what they really want, and I find the right balance between features and complexity. Those are specialized skills. They’re not cheap. They’re not replicable. They’re not scalable. And if you give that speech to somebody who’s trying to order a burger at McD, you’re never going to get anywhere.
A lot of people are worried about lowball foreign developers “stealing” all the work. I’m not concerned, any more than the 5-star chef is concerned when McD opens next door. It’s not within 100 miles of the same market. I will solve the problem for you and bill you a price to match. Fast-food developers will copy and paste something off a forum somewhere and you’ll be stuck in revision hell forever until you give up and hire someone new.
Lesson 4: Revenue sharing is only mostly evil
In the past, I’ve come down pretty hard on revenue sharing:
If you’re going to offer something stupid like “revenue sharing”, just walk away. Developers are going to laugh at you. I have a “revenue sharing” deal already–I do development work, and Apple sends me a monthly check. The only way to compete with that is to pay actual money up front.
I still think this is mostly right. I have all the revenue sharing agreements I want already: with Apple. And there’s still no shortage of people offering me a 50/50 split for their “app idea”.
However, I have begun to offer a 5% discount for a 3c per copy royalty for certain projects where the clients are known to be reliable/honest and the product is sound. This gives me a little bit of residual income and a little bit of risk. The smart clients realize that it keeps me invested in their projects.
Conclusion
I’m learning more this summer than I’ve ever learned in a classroom. Being forced to make actual money is perhaps the best teacher of all. Why don’t we expose students to something like this before they enter the workforce?