I'm hiring a freelance programmer for the first time...what pitfalls should I watch out for?
June 8, 2012 7:21 PM   Subscribe

I'm hiring a freelance programmer for the first time...what pitfalls should I watch out for?

I have an idea for an iPhone app, and I've decided to invest some of my savings into making it and putting it up for sale in the app store. I was thinking of hiring a freelancer on a site like Freelancer or Elance to do the coding.

How can I reduce the chances of winding up with a freelancer who is sketchy or unreliable? If the low bid is from overseas, doesn't that mean any contract I have with them is, from a practical standpoint, unenforceable?

What other risks are there that I'm not thinking about, and how can I minimize them?

PS - On a more specific note, what does the "budget" line in a Freelancer/Elance post mean? That's not how much you'll pay them, is it? That's determined by their bid, right?

Thanks everyone!
posted by internet_explorer to Work & Money (11 answers total) 18 users marked this as a favorite
You get what you pay for.

An iPhone app might cost you a lot more than you expect. You should expect to spend 10s of thousands of dollars to create a good application even if it is really simple.

How ever long they tell you it is going to take, apply a multiplier. Maybe 4x, sometime people say multiply by 3 and chance the value for days to weeks (e.g. they say 2 weeks, make it 6 months). It's a black art, and the buy side of these equations is almost always disappointed in the timing.

You should ignore anyone who is giving you an unrealistic estimate, that's a sign they have never done this before.

Questions to ask:
Who is going to do the artwork?
Who will end up with the source code, where will it be stored?
What happens if it takes them much longer to build the application? Do they get paid?

Good luck!
posted by bottlebrushtree at 7:41 PM on June 8, 2012

Derek Sivers (founder of CD Baby) has an excellent article on this: http://sivers.org/how2hire.
posted by zanni at 7:53 PM on June 8, 2012

To start with check refererences and their portfolio, what projects have they worked on before-- if they're a ios developer, then do they have client's apps in the appstore? Download them, try them out-- are those projects of a similar complexity to yours?

Build a storyboard! The developer may make some choices but you should expect them to be largely in control of the feel of the application, they're hard work is on the invisible back-end of the app. You need to have a really solid idea of what they're going to be making.

Draw out every screen that will be visible to the user, make notes on which buttons take you through to each screens, what animation effects you expect, what colours, do lists have pull-to-refresh?, what happens if 'net connection drops? By the end of the process you should be able to 'use' your paper application, you press a pencil sketch of a button and flip to page 6 to see the result. Your goal is to clearly define the scope of the project, reduce the variables, stop the feature creep.

Deliverables are so important, don't accept the bid, then just wait for the final app, keep involved. Install Xcode on your Mac and get them to send the project files, with a short guide about how to run them in the simulator, give them feedback. Keep involved, keep talking.

And sadly, be pessimistic, I forget the stats, but it's something like 87%+ of software developed fails to solve the problem it was designed for, unfit for purpose. Software is hard, and to find the programmers and developers experienced enough that know how to talk to you clearly, to code well, test and deliver on time are normally paid to reflect that.
posted by Static Vagabond at 7:59 PM on June 8, 2012 [6 favorites]

bah, I meant to say, 'you should largely be in control of the feel of the application' rather then the exact opposite...
posted by Static Vagabond at 8:27 PM on June 8, 2012

Write in to your initial contract what will happen if you choose to sell the product...who owns the code?

My partners and I sold a business that had an app developed for it and had a misunderstanding with our developer as to who owned the source code. We came to an amicable arrangement in the end, but it would have been better for all involved if we'd thought it through in the early stages.
posted by man down under at 8:38 PM on June 8, 2012 [1 favorite]

iPhone dev is notoriously tricky,

We've just release an update to a major application that has hundreds of thousand users - we used a freelance guy who built the initial - here's some thoughts:

Develop a functional spec - and get all the agile done in the FS, don't leave it to the build Someone said storyboarding.

Get a test case written that ticks off all elements in the FS as well as environmental stuff like OS.SDK etc.

If you don't have a valid test plan that you can execute each time your dev gives you a build then you are shooting in the dark with regression issues. Apple releases a new SDK whenever they feel like it - seemingly - and they don't backwards support. test plan is crucial. iPhone dev can be regression hell.

if your app REALLY doesn't needs to be native iPhone /Objective C - There is no really compelling reason - the use phonegap /jquery mobile instead. Much less painful.

Make sure your dev has done lots of iPhone - get examples of their work and validate that it's their's. Heaps of people are setting themselves up as iPhone devs, but they have doen some hello world stuff.

Get the sourcecode early, and get the sourcecode every delivery milestone and try to have it validated.

When you get a dev, make sure that they stay on the job. Our guy was always disappearing for other work. Our upgrade took two years to get finished. Get some good payment and delivery milestones in place. This still won't protect you, the dev may have written 60%, you think it's awesome, but a better deal comes along, and they will leave you hanging - you get to a stage when you "need" them.

Manage the crap out of the project. Be a good PM, be a good accurate tester. Get that test plan written early.

Good luck. You will need it.

Different OS/Platforms and versions of the SDK are a nightmare to manage - get this right early on

iPhone developers are in great demand, so make sure your dev gets you regular builds
posted by the noob at 8:40 PM on June 8, 2012 [8 favorites]

>I'm hiring a freelance programmer for the first time...what pitfalls should I watch out for?

The major pitfall is your own lack of experience. Be prepared to write off your first project as a learning experience, so keep it simple.

>I have an idea for an iPhone app, and I've decided to invest some of my savings into making it and putting it up for sale in the app store. I was thinking of hiring a freelancer on a site like Freelancer or Elance to do the coding.

This has been discussed to death on various sites. Summary is that ideas are a dime a dozen and the real trick is implementation.

Start with a simple "Proof of Concept" project that leaves out all the fancy UI and Ease of use functionality, but does a core part of whatever your idea is. This is often only 10 - 30% of the total effort with the remaining bulk of the effort being in the making a user friendly product

>...any contract I have with them is, from a practical standpoint, unenforceable?

yes, you're SOL. If you end up in a dispute, the sites will typically favor you if they can, as this is where the bulk of their financial interest lies.

Make sure that everything important is documented on the site. Anything done directly via voice, email or IM did not happen as far as they are concerned. And you can't blame them.

It's so easy for the other party to simply walk away, that you should ideally be dealing with someone who has invested a lot of effort in building a reputation, something they don't want to walk away from.

NDAs are worthless in this context.

If your idea is that great, if it can be stolen, it will be stolen. Not necessarily by your developer, but there are a bunch of talented guys out there looking for interesting projects to implement.

There are often ways to disguise the real intent of the project, but this is probably getting more complicated.

>What other risks are there that I'm not thinking about, and how can I minimize them?

On freelancer sites, reputation is probably the best indicator.

I have a simple rule. Never make any payment up front. Use the escrow system, and only release payments when you have received something of tangible value. With your lack of experience, this is going to be difficult to determine.

If you want a successful project, you have to do a lot of up front work. Two things are necessary, - a detailed set of technical requirements and the acceptance test plan. Have this before you start. Sounds great in theory but no one does this because its too much work. It's simpler to wave your hands in the air, describe a few fuzzy concepts and hope that the developer has good ESP. And there you have the seeds of failure.

>PS - On a more specific note, what does the "budget" line in a Freelancer/Elance post mean? That's not how much you'll pay them, is it? That's determined by their bid, right?

Don't know. I use both sites, and I can't recall seeing this.
posted by w.fugawe at 1:03 AM on June 9, 2012 [1 favorite]

>PS - On a more specific note, what does the "budget" line in a Freelancer/Elance post mean? That's not how much you'll pay them, is it? That's determined by their bid, right?

Ah, sorry. Brain Freeze. On Freelancer, this is your budget range. So with say $250 - $750 you expect bids to be made in that range. On FL, no one can bid less than the lower limit while Elance is the lower limit is about a third less.
posted by w.fugawe at 1:13 AM on June 9, 2012

(Disclosure: I am a web designer/developer who has come in after a lot of off-shore programmers to clean up messes. I have been hired to do iOS/android GUI work in conjunction with off-shore programmers, also cleaning up messes along the way. I am not a fan of elance-style sites except in the simplest of use cases.)

I'd suggest staying away from elance-style sites and look around for local/more established devs, even if the initial price looks like it'd be more. One of my iOS clients had her app developed (poorly) by 3 different overseas groups before she brought it back locally for a fourth and final time.

The problem with a lot of offshore devs is that they want you to do all the real hard work -- the storyboarding, functional requirements/user stories, etc.* They will work with exactly whatever you give them and go no further. Left out a "forgot password" function in your login process? That's an obvious need, right? Well, if you didn't document it, it may as well not exist.

An app is something that needs an agile/iterative approach. You want to attract a developer who will contribute ideas to the design before a line of code is even written. And you want this developer to be with you for the inevitable round of updates (and ideally the entire lifecycle of the app) -- bug fixes, changes in response to customer feedback, etc.

>Never make any payment up front.

While it's true that it's notoriously difficult to find good, reliable programmers, the same can be said of clients. Any client who refused to pay a deposit sends off red flags to me and I've learned from experience not to bother with such.

The time to be an immediate hard-ass is to insist on an initial call before signing off on the project. (If the dev doesn't offer to do a call, I'd take it as a red flag.) This call will benefit both parties. By the end of it, you should know:
  • References. Where are their live apps? Did they do their entire app, or just a portion? How similar is your app to others they have done?
  • Skillset. Are they doing both code and graphic design? UI is extremely important!
  • Developer's workflow. Are they agile or waterfall? How will scope be nailed down? How do they respond to change? How often are milestones? When can you see a proof of concept?
  • Timeline. Is it reasonable? Do you know what items you will be responsible for?
  • Payment. This should be a deposit + additional chunks when a deliverable is given. But also - how will hard costs be handled? Are there any special considerations, such as CDN hosting, etc?
  • Code. Who owns it? How will it be supported? Is there a warranty?
My rule of thumb for a project management is to have a call with the client at least once a week on project status (ideally with a deliverable to review), with additional short updates via email. Ultimately, you're looking for someone who has both excellent development and communication skills. This is rare. Treasure it.

Good luck!

* While it's good advice for you to take a stab at this to get your thoughts in order, your developer should be providing the final scope documentation.
posted by Wossname at 9:45 AM on June 9, 2012 [1 favorite]

If your app magically appeared in the App Store tomorrow, how much would you pay for unlimited copies of it? Unless that number is a large fraction of a realistic budget (and since you tagged this "NDA" I'm guessing it isn't), the main pitfall is not selling enough copies of your app to make up the difference.

The problem with just having an idea is that, if it's is any good, someone will copy it, NDA or no NDA. In the end, the spoils will go to whoever executes better. This is why people say that execution is much more important than ideas, but execution has several facets, only one of which directly involves programming.

Design If you're going to use a freelancer, you need to be a topnotch "program manager". You've received a lot of good advice about this, to which I'll add that one way to get a competitive advantage is to really understand your prospective buyers (e.g., you're a doctor who wants to make a medical app).

Implementation Writing good programs requires considerable time and attention to detail. Even if you find a freelancer capable of doing good work, his or her incentives will be badly misaligned with yours. You have to take charge of quality assurance.

As a side note, I would urge you to learn to program at least at a beginner level. This probably wouldn't be enough to build your own app, but I think it would pay immediate dividends in your ability to manage freelancers.

Marketing and sales I don't have any experience with this, but relying on Apple to market your app sounds like a crap shoot. My impression is that most everyone making money on the App Store is going above and beyond just listing their app.

Disclaimer: I am an experienced programmer who hasn't made any mobile apps because every time I ponder the possibility, I don't feel as though I have enough of a competitive advantage to make it worthwhile. Good luck!
posted by questionable accounting at 11:37 AM on June 9, 2012

Speaking as another professional who makes a living cleaning up messes left by "e-lancers", my professional advice would be to not hire anyone you don't meet in person. You're not buying programming services. If the app is your business, you're essentially going into business with whoever you hire to write it, no matter how the contracts are written. Especially since it's highly unlikely you'll have a completely finished, never-another-line-of-code-need-be-written app in the first version. The only way to be sure you can work with your programmer is to meet them and only then decide if you trust them enough to proceed.

I think you'll have a very hard time winnowing the wheat from the chaff on the typical websites. This is especially true right now because there are so many outfits that claim they can program mobile apps. You'll get the answer you want to hear from guys who can't get the work done. Bids from the guys who can actually do the work will look ridiculously high by comparison.

If I had to put a number on it, I'd be extremely suspect of anyone charging less than $100 an hour for their time. Furthermore, I'd be slightly suspect of anyone willing to accept the work on anything other than a per-hour basis.

Good luck with your project.
posted by ob1quixote at 5:09 PM on June 9, 2012

« Older What's this book I didn't buy?   |   Good jazz in San Francisco? Newer »
This thread is closed to new comments.