Hacker News new | past | comments | ask | show | jobs | submit login
My experience hiring a developer on Elance to build my first iPhone app (thenextweb.com)
112 points by naren87 on Nov 3, 2013 | hide | past | favorite | 131 comments



This enrages me. I feel horrible for the developer.

First, my day rate as a professional full-time iOS dev is higher than what he paid for the entire project. Granted, I've been writing software for almost 20 years now, the last six strictly Cocoa and iOS, and I live in NYC. But even then, all I can tell him is that he got what he paid for.

Second, if a client is going to withhold final payment based on Apple acceptance, there is no way I would work for them. Specially for some dumb app like this.

But the part that really irks me is the last bit about "doing it yourself next time". Good luck with that. I would love to be around the moment you have the epiphany about how much you got for how little you spent and what an asshole you are about whining about it.


> Second, if a client is going to withhold final payment based on Apple acceptance, there is no way I would work for them

It sounds from the article that payment terms were agreed upon before commencement of the work. Why did developer accept that contract if he thought it was wrong or unfair? Walk away / ask to change that bit / extra payment, etc. But renegotiating payment schedule half way through the project, really? That's poor work ethics.

And, BTW, I don't think it's a dumb app - it is actually quite smart, main risk was apple finding technical issues like "you are using wrong api / it crashes on iphone 3g". Customer wanted protection against issues like that.

Rephrase it in a way "you build app, I pay you. If you help me get it approved I give you $200 more". What is wrong with that?


They both acted sleazily. But it's elance - the Bangladeshi sweatshop of the internet.

They both got exactly what they deserved. Next time, they should try upping their budget and expectations.


Everything in this article is from the writers perspective. The developer may have done all the things you said, informally, but the article writer didn't bother to mention them. Perhaps he should have gotten a lawyer, and gotten an iron clad contract, but that itself would have cost more then the total amount he was going to be paid.


The project budget was $800. How much do you think a lawyer would cost? I guess you could get one cheaper on Elance...


I find it hilarious that people think it's just gathering some pieces, applying glue and add pretty graphics.


"Hey we have an app we want you to build, it should be super simple and take you no time at all" says the guy who has written code exactly never, but is a pro with powerpoint.


Getting a functional app within 2 days, and him thinking he's going to be able to "learn to code" and have that kind of output is bonkers.

I've been coding half my life, and it will still take me weeks to put together small stuff that I obsess over every little detail on.


You are enraged because someone else is getting paid way less than you are for doing the same work? Shouldn't you be feeling lucky and grateful instead?


Man I had the exact same thoughts. I have taken jobs in the past from clients with perspectives that resembled the authors and .... I can tell you, I will not do it again.


I totally agree to "he got what he paid for".


Before you have an aneurism remember that a Chinese developer has less than 1/10th the living expense and other costs incurred that you do.


This argument always bothers me because what it costs to live really isn't important.

At the end of the day Chinese worker A put in 40 hours of work and American worker B put in 40 hours of work.

They both invested 40 hours of their life into the project and neither of them are ever going to get that time back. Both of them will die at roughly the same age.

Just because someone lives in an area of the world where it's cheaper to live doesn't mean he should accept lower wages.


In addition, to have the same quality of life in China or other "developing" countries is much more expensive than the simple comparisons.

The American has enough money to take the family on the annual pilgrimage to Disneyland or Dollywood. The American has a car with A/C and an automatic transmission, shops at grocery stores that source produce and goods globally, and can have four bathrooms with potable water in its house.

To do the same in India, China, etc., you're not making it happen on the $800 per project unless you have a farm of people living in their grandparents' house and riding a bicycle made of cast iron and bamboo to get rice and something to "flavor" it.


> Second, if a client is going to withhold final payment based on Apple acceptance, there is no way I would work for them

But that was the requirement of the project, which the developer agreed to.

What enraged me is the behaviour of the developer.


The language problem may have meant that the developer interpreted the milestone as pay upon App Store submission instead of App Store approval. The developer stated in the conversation that if the app was rejected because of his coding mistakes, that he would fix those bugs.

Paying upon approval is ridiculous. I can request a developer write me an app with a buy button that takes the user to my website instead of using Apple's In-App Purchasing. That app would never get approved even though the developer wrote exactly what I asked them to. So I shouldn't pay the developer because Apple denied the app? And no, you shouldn't expect the developer to vet your design before starting development and alerting you of such problems unless you are paying for it. For $800, you are definitely not paying for it.


Who would set up a contract releasing a developer from all obligations, prior to app acceptance, on the handwavy notion that the dev would fix it for free outside of contract?

That's just... not how business works. Milestones are organised such that the client can get the things he values with a reasonable probability. Even setting the milestones up as he did is risky, since the dev could just have decided to take 3/4, ship crappy code, and disappear into the interwebs. I guess in this case the client was relying on the reputation system of e-lance and the relatively small amount of money involved, but still.... when I read that he'd agreed to the final payment on such a flimsy acceptance clause I was ready to read a really bad end to this.

Not sure why people are emphasising the money so much. For a dev in NYC $800 is very little. For a guy in China that's a much better deal. Kind of the whole point of using e-lance, no?


I always specify that payment is due on the submission of the app to apple.

So, all of my clients do.

It is the only way iOS development can possibly work.


> The language problem may have meant that the developer interpreted the milestone as pay upon App Store submission instead of App Store approval

Well that's developer's problem, isn't it?

> I can request a developer write me an app with a buy button that takes the user to my website instead of using Apple's In-App Purchasing. That app would never get approved even though the developer wrote exactly what I asked them to. So I shouldn't pay the developer because Apple denied the app?

Yes, that's how contracts work. Welcome to the real world.

How is it your problem that the developer agreed to an impossible task?


In the real world, a contract that's impossible to perform is not enforceable.

https://www.inkling.com/read/wolters-kluwer-mbe-bar-prep/mbe...


"Well that's developer's problem, isn't it?"

Obviously not as the developer got full payment. It's both the developer's and client's problem.

"Yes, that's how contracts work. Welcome to the real world. How is it your problem that the developer agreed to an impossible task?"

Did you miss the part where the client wasn't going to get the app/code unless he paid? As soon as the dev said he needed payment or else the submission was a no-go, it became the client's problem. The "contract", if you could even call it that - good luck to the client trying to seek legal recourse with it, was poorly thought out. "Welcome to the real world."


But adding this as a requirement is perfectly reasonable? How about the fact that this is completely out of the developer's control (apps are sometimes rejected for no reason whatsoever)? Let's hold out on payment until someone at Apple says it's alright.

Next time I buy some bananas at the supermarket, I'm going to tell the cashier that if my clients don't like them, they won't get paid and that they have to come with me to convince my clients that the bananas are perfectly fine.


Then don't agree to the terms, simple. You're a big boy, you're responsible for your decisions.


> But adding this as a requirement is perfectly reasonable?

If you don't think it's reasonable, why agree to the project?

> Next time I buy some bananas at the supermarket, I'm going to tell the cashier that if my clients don't like them, they won't get paid

That's a red herring fallacy, it has nothing to do with the situation we're discussing. The cashier has no contract with you, and didn't agree to anything.


Once the author "learns to do it [him]self," maybe he'll appreciate how complicated even "simple" iOS apps are to develop, and maybe he'll realize his expectations were a bit unreasonable.

Also, this author's post is exactly why I will never ever work on Elance again. The clients have expectations far out of line with what they're willing to pay.


I feel like that's the case with doing consultant work in general.


My startup ( codedoor.com ) is based around freelancers' open source contributions.

For now, even clients have to log in using GitHub, as the freelancers I have talked to prefer technical clients.


it's more pronounced with clients that are less sophisticated, smaller, more mom-and-pop, "I had this great idea!!!! but a very small budget" types. avoid them, and you'll do better


Agreed. Consulting and working with individuals to develop their 'baby' is extremely difficult. Majority of the time their expectation is that coding is fancy typing and changes take seconds not hours.

As a developer I would suggest building in a reasonable monthly fee for X months for support. It's unrealistic to assume apps are going to meet customers expectations 100% of the time. Discussing this and setting a budget for after 'completion' helps a ton.

The poster and most individuals expect to pay a one time fee and start making tons of money on their idea without reinvestment.

As developers we need to help educate clients. But, individuals are hard, we never do it unless they are well funded. Not just for their app but for their marketing and overall initiatives.


> Majority of the time their expectation is that coding is fancy typing and changes take seconds not hours.

THIS. spoken like from direct experience. that's a definite pattern I've seen with some kinds of clients. "How long will it take for you to type up these features?" They have no clue as to how complex software is, all the moving parts, the interactions, the hidden bugs and quirks, lurking complications, constraints, trade-offs, under-documented or mis-documented behaviors, etc.


Having dealt with small and large clients I find that mom and pop shops don't have the budget and they have unreasonable expectations. Larger clients are still unreasonable but they have the budget so it's easier to deal with their stupidity.


Yes, I think most of us probably have the experience of the friend (sometimes a friend of a friend) who has a "fantastic idea... just write the app and we'll split BILLIONS OF DOLLARS".

It's amazing how many of those fantastic ideas don't survive the counteroffer of them paying me my normal rate and then keeping all the money themselves.


THIS

the test of... if they truly thought it was a billion dollar idea, surely it would be smarter of them to retain all that equity for themselves, not a single drop for the developer.

but gee, perhaps there's a chance, just a chance, it won't be worth a billion dollars, and perhaps... nothing. So in that scenario, the brave entrepreneur wants to minimize his cash spend down the hole. but where there's a chance of great reward there's a chance of loss (whether of dollars or time.)

Also a certain percentage of entrepreneur types seem to correlate with the psychopath/sociopath type. And it's hard to identify those folks early on sometimes. And it's early on in your relationship with them where there's the most pressure to take on an equity relationship. Which gets back to a "dating before marriage" and "work for cash, only" and "observed actual performance and iterative reciprocity" policy as being the safer, more conservative best practice. For all parties, I suspect.


One thing I have learned about using Elance and other bidding type sites from time to time with work is low,is that most project posters determine the bid solely based on price. Now I understand this but, if you do that then you run into this type of game with contractors.

Most non-developer don't understand when someone that is well qualified to handle your project they will make sure there is enough conversations before hand to make sure that all specs and milestones( yes I know you can't know all but just for argument's sake) are fully understood by both parties.

The first red flag should of been an iOS app for $800. I don't do iOS development but I for sure you can't get decent developer for $800.

Red flag #2 was when the client felt indebted to the developer for doing a fix. To me it looks like he is just trying to nickel and dime for everything little change. Maybe that how some people work but from my personal experience as a developer and from contracting from sites like these I've never had an good contractor do this, now that's not to say I haven't had this happen, I have.

Last one was when he said he would hold the sources until a 5 star review, this made me laugh. Now I can see for a review, in some eyes a project isn't complete until a review about one's work has been done, so I can understand that. But denying source until he gets a 5 star that's just absurd. If it was me I would of first made sure all of this convo happened in Elance workroom and then get Elance into it (yeah it would take longer for them to resolve but he would get his files) and then right a lengthy review for this developer to make sure that no one else has this problem.

I guess that's just what you have to deal with when using bidding sites. I'm glad he go his app approved but the old saying still stands:

You get what you pay for


> To me it looks like he is just trying to nickel and dime for everything little change.

For $800 you bet your ass the developer will nickel-and-dime. After all, he was nickel-and-dimed.


By whom? The system? The developer bears at least a little responsibility for submitting a bid that is too low to cover successfully completing the project.


>The developer bears at least a little responsibility for submitting a bid that is too low to cover successfully completing the project.

I didn't say he doesn't.

The guy talked the developer down to an $800 fee, and then his interpretation of the agreement was the developer should take his feedback into account after the code was submitted to him ("I figured some graphics changes would be OK. Basically, the overlay graphics are slightly different. Same functionality"). That's definitely a self-serving interpretation. Clearly the dev does not want to do anything more than he absolutely needs to do. For that amount of money, he wants to knock-out an app in minimal time and move on.

So I'm saying they both nickel-and-dimed each other. I'm not judging, but that's what happened, and I have slightly more empathy for the developer in this case.


Also this is written from his perspective. It's most likely he forgot (or deliberately didn't mention in this article) everything the developer said during those negotiations, presumably things like "we will have to negotiate additional charges for anything not specifically mentioned in the spec."


Sure, fair enough, but roughly zero projects are going to succeed with that sort of minimal approach. It almost guarantees the client will have to pay for additional work.

I was only being slightly facetious, though -- the system really does suck and I think deserves most of the blame.


no the dev doesn't

Mike, in his own words:

    I went through the app, listed out the bugs I was finding for each 
   component, mocked up a couple small graphical changes, and sent them over to 
   the developer.
bugs are covered under a fixed price contract. Changes aren't. And Mike is a marketer / photographer; do you really believe he has any idea of the difference between a "small graphical change" and something that requires a code change? The developer is at fault only for agreeing to any changes without a price increase.

And thus the classic problem with fixed price contracts: when I've done them I've been really clear with clients that no changes are included. Bugs yes, but every change is a renegotiation. Now often the lines between those two are a bit blurry, and I try to give clients the benefit of the doubt. But I bid to a very specific spec, and what can seem like a tiny change often goes against the grain of assumptions built into the code and is anything but tiny. To a person, clients agree then whine down the road when guess what, that change is a price increase. Sigh. The answer is to not do fixed price; it just sets you up in a very adversarial relationship with your client.

Plus, well, if you pay bottom price you get bottom quality.


Sometimes, non-technical people don't (or can't) tell the difference between a "bug" and a "change". when the thing doesn't do what they expected in their mind's eye, its a bug, not a change. A change is when a completely new feature that isn't mentioned in the spec.

So "bugs" like, moving a menu around, or swapping screens seems easy to someone who has never written anything before, but it isn't trivial (unless, of course, you had time to write nicely abstracted code. But for $800 and two weeks, i doubt that's the case).

May be there should be an app that lets clients make mockups, and when they change their mockups, it computes a "diff" that then is heuristically used to generate an expected price...


That's why change orders should happen for anything that isn't specified at the time of signing the contract. They can be zero cost, they can be clarification change orders, they can swap scope, or they can involve additional cost.

I try to get to a cadence of about one change order a week on projects lasting longer than ten weeks. Sometimes, depending on how onerous getting an SOW signed can be, we'll even queue up change orders (with the client's willing participation) to execute right after the SOW is approved by legal.

There are plenty of apps that version mockups, but it's also possible to add layers to existing documents as well, whether it's photoshop, visio, etc.


Yeah, except for the fact that the developer is the one who sent the quote.


Look at it the other way- the people who want $800 apps are the ones most likely to withhold payment or give bad reviews.

The developer is probably working from hard-won experience, the client in this case is not.


I think its prudent for the dev to set expectations straight away. I would expect most people to be reasonable, but that most people, if they had their initial expectations broken, would feel cheated.

So the art of consulting/free-lancing is to make sure reality matches expectations. For both parties.

Of course, there are clients that expect a facebook for $1000, but if the dev makes sure to set out such expectations at the start, and don't agree until something is signed and sealed.


What may be a "change in the way it looks" to the author could, in fact, be a change in code.


I've reached the point this year where I've concluded that the correlation between "bad client/employer" and "low pay" is so high that I treat that correlation as 100% and immediately rule-out such parties upfront before risking investing my time/energy into them. The correlation has not been 100%, but close to it. In actual practice.

(And by the way: fuck theory and fuck words. I only look at what happens in directly observed and touchable reality anymore.)


"(And by the way: fuck theory and fuck words. I only look at what happens in directly observed and touchable reality anymore.)"

Heuristics have been shown to be highly effective.


totally agreed. though I hope you meant that in a completely non-sarcastic way. :-) (because I know there's a vein here on HN that believes every positional claim must be backed by some scientific paper.)

there are many negative things to getting older. but one good thing is you accumulate a larger set of direct RL observations and experiences, out of which you can see certain patterns, some good, some bad, and certain correlations. Treating these correlations as black-or-white indicators can potentially be bad if it closes you off to opportunities. But it can also close you off to bad experiences. You might lose on the small/near-term but you win more in the aggregate and in the long run, playing the odds to your benefit.


>totally agreed. though I hope you meant that in a completely non-sarcastic way. :-) (because I know there's a vein here on HN that believes every positional claim must be backed by some scientific paper.)

I was being serious, and it might humor you a bit when I tell you there are numerous "scientific papers" that back the effectiveness of heuristics (google heuristics case study to find some).


I'd hesitate to blame the author for the issues that arose with the project, as the larger issues lie with Elance (et al)'s feedback mechanism. It should be reasonable to assume that someone with, say, a 4.8/5 rating is a sterling developer, but instead feedback gets perverted into a form of currency to be exploited as opposed to a canonical source of information -- just like what happened with eBay.

I think a possible solution for this issue would be to include third-party anonymous auditing: get someone with domain expertise to review the spec, the final product, and communications (without being given the personal details of the two other parties, of course) and give an honest rating of both sides. Obviously, this has scaling issues, but I think a decent amount of people would be willing to pay a premium for a better value proxy.


(Like everyone else) Elance are out to make a dollar. The system isn't perfect, but show me a business that is.

I think it was HIGHLY optimistic to have a budget of less than $1,000 and to think things would be pain free.

It would have been interesting if the author had added what he had expected. The article is highly factual (this happened, and then this and then this...) but he didn't add any value judgment. What was his expectations? Was it a red flag that no one on Reddit wanted to touch it? Would he do it again? If he had twice the budget, would that have changed things? etc. etc.


I think you're on to something. Ratings on sites like Elance are broken. Clients feel compelled to give 5 star feedback to freelancers, sometimes just to get them off their back. This basically means that you can't look at a reputation score to tell you how good the freelancer actually is. I like the idea of a third-party anonymous person doing an audit. That person would need to have access to all the relevant files though, and have the right skills to judge the freelancer's work. Even the prospect of being audited could be a deterrent to the kind of behavior we saw in this case, which means that randomly auditing one out of every x gigs could be enough.


Real life jobs/recruiting solves this problem via references.

Why isn't this something elance can provide? You can get an anonymized contact info for previous clients of the dev. You can ping them for some questions etc.


Good idea - right now, the best proxy for this is to look at the % of clients who re-hire and their comments. While I agree that 5 star systems across the Internet are inflated, I always use rehire % and really scour the comments when hiring on Elance.


This is something that needs to be more widely understood. Direct feedback is gamed. Even Amazon reviews, which are more indirect than even professional reviews, are gamed.

It's a common response to the need for regulatory systems that we should "trust reputation systems" instead. This is what happens. Regulatory systems can at least be audited and held accountable. In reputation systems, absent an unforeseen innovation, you'll never be able to do better than currency.

That's how reputation has been used since the dawn of man. It has always been currency. Sites like Elance merely made efficient.


I've worked with a lot of Elancers in a variety of tasks.

The key to managing them is setting clear expectations upfront and then sticking to them.

As soon as you release that first payment despite the milestone not being 100% finished you've given them permission to ignore all other deadlines.

What's worked best for me is to make 50% of the contract payable after the app has been approved by Apple, but funding the entire project up front. That way the Elancer knows you're serious about payment, but you don't "lose" any money until the app is actually in the App Store.


You are not paying for development, you are paying for outcomes with Apple. If there's anything wrong with your idea, you don't have to pay and the developer doesn't eat no matter how well they delivered on your spec. That's a scam.


the root problem is fixed scope/price contracts. almost always one party or another, or a mix of both, ends up getting screwed. I prefer to pay-for-time, then both sides evaluate results/experience continually, with each side able to "fire fast" or "up the anty" if/when that party decides.


pay for time is just as "bad" to the client as fixed cost for the dev. The root problem isn't with the way the payment is made, but with the way one party's expectation does not match reality (whether it's the dev's or the client's).

Fix that, and any payment model will work.


I agree with you that that model can go bad too.

I disagree with you on both models being equally bad, or prone to going bad at the same statistically rate. In my experience, as well as the reported experience of many senior programmers/consultants/freelancers/ISV's I trust, the pay-for-time (honestly worked, of course) is the model that's the least likely to explode on either party. And, surprise surprise, that's also closer to how the traditional direct employment (FT, PT, salary, wage, whatever) model also works. And in general terms, both sides always have the "escape hatch" of being able to fire the other party (speaking in general, with the caveat of arbitrary laws per jurisdiction, blah blah blah.) But in general, if one party isn't happy, they can vote with their feet. That's always true in life, in the general case.

But paying for hours/days means the worker is paid in proportion to how much work is involved, whether planned or surprises along the way. And the pay-per-time rate allows the worker to set a value that reflects the quality of his work, his productivity, or his rarity in the marketplace, or total demand for his time, etc. Win and win.

Fixed price, fixed scope is like... an unstable equilibrium. Trying to balance a chainsaw on your pinky finger. It can work out just fine. But that's not the way to bet, and to be avoided if you'd like to retain all your body parts.


I don't care where you live in this world. The cost of living is going up everywhere. If you pick up a cheap developer, expect the person is going to be hitting you up for payments regularly. At this rate, the person can't really save to get ahead, he is likely struggling from one payment to the next. Getting screwed over would probably be devastating to him, though I imagine he was more concerned about quick payments than getting screwed over. If you have someone doing cheap work and doing well, keep the payments flowing. If you are happy, then make the developer happy as well.


> If you have someone doing cheap work and doing well, keep the payments flowing. If you are happy, then make the developer happy as well.

THIS

x 10


I feel like sites like Elance just foster bad client-developer relationships from the get go. With everything being so prix fixe it sets aside the #1 attribute of software development - uncertainty.

From reading this post it sounds like everything was honki-dori until the client came back with changes. Changes equate to more development which equates to more money. Clients need to understand the uncertain parts of software development better and paying up front sites like Elance and others just don't support that.


There's a reason lawyers (generally) don't do fixed price. Or if they do, you are going to pay more for time and materials.

I see articles all the time and just wonder, what did you expect?

You can add whatever clauses you like (won't pay until xyz etc) but honestly-

1. There's no repeat business. They know your $800 is your entire budget. 2. I've been hassled before for a 5 star rating. The author has already spent 75%. It's worth the risk of holding the source code hostage.

If you were a freelancer, would you do any different?


One thing the author mentions is he asked the developer for a few small graphical changes.

As a freelance developer, this is what we call changing the requirements. In layman's terms, the author is re-negotiating what he wants done. It's accepted practice that this means the developer can renegotiate the money.


Have done freelance in the past. Can confirm. Author blew it.


I can see why he's annoyed, but at the end of the day he's got a reasonably well-reviewed app for the cost of $800 and a few hours arguing over email... still a pretty good deal.


I did freelancing till 2010. And I will say its 100% your mistake. But I believe now you know how it works. Someone said its the Elance model problem and blah blah. When you assign the project to any developer, the payment, the model doesn't matter. You both agreed to money, deadline, product, etc. What you need to do is make real short milestones and precise task list. Which includes bug fixing, meeting schedules, and of-course delivery of source-code (I prefer a private Git repo with bitbucket or something similar) and hosting to app store. Both should exactly know what needed to be developed and on what date & time. It should go like this:

Milestone 1 ($50 / 2hours / 4th Nov 2013 - 10AM delivery): - Git init - splash screen # Your task (1 hr) -> test - release $50 as a go ahead

Milestone 2 ($50 / 2hours / 4th Nov 2013 - 10AM delivery) - Screen 1 - form submit - Backend - process form # Your task (1 hr) -> test - release $50 as a go ahead ......... You should also include closing of project, giving reviews and source code details in the milestones.

You are not hiring an agency whom you know and who won't mess up (btw, even big agencies mess up). You are hiring a guy whom you have never seen/met. And you just paying $800 for an iPhone app! What you need to do is just tighten up the milestones! If he have good reviews - he definitely have the capability to do the job.

Its good to learn app development (also helps to check developer's source) - but there's nothing to be afraid of elance or freenalcer.com. You just need to use the right strategy. The app idea is already in your mind. Spend 2-3 days to plan the project management and make a list of tasks. Then you are all set!

And congratulations for your app!


So basically you have to micro-manage the project in extreme detail, which: a) takes up a lot of your time; and b) requires in-depth knowledge of programming tasks.

That doesn't strike me as a very useful arrangement. If the guy had that kind of time and knowledge in the first place, why wouldn't he just build it himself?


I occasionally do freelance mobile app & data analysis work, and also subcontract some of the work to other freelancers. The ability to write great specs and milestones (micro-managing) is the biggest cost differentiator in commissioning work.

• If you know precisely what you want (to pixel-perfect photoshop mockups of every screen and interaction), you can hire anyone on Elance for $10/hour and get a good result.

• If you know mostly what you want - a written spec with some gaps - you need to hire a skilled, local developer for 50-100$/hour who will sit down with you to describe the relative complexity of features, make technical decisions, and offer suggestions on what to cut out to reduce cost.

• If you only have a vague vision, you need a huge budget, because you are hiring an UX designer, graphical designer, developer and a business advisor, and paying for their time spent on changes after seeing prototype demos.

The more you "micro-manage", the cheaper developers you can hire (and still get an acceptable result), and the less time you need to budget for changes. For a $800 project, there is no other way to make it work.


>> basically you have to micro-manage the project in extreme detail

Welcome to outsourcing to unknown people.

(The customer probably had some other job.)


An app for Santa to track gifts and children's associated good deeds to earn them. And this guy is quibbling over being asked to leave a developer a 5-star review and $800. Sure, you shouldn't hassle clients for good reviews, but maybe you also shouldn't expect people half way around the world to have perfect business etiquette. Besides, every time I go to a store or call a customer service line, plenty of Americans ask me to fill out a review and also often ask if I'm totally happy with their service. This isn't much different.


What if he doesn't want to leave a 5-star review?

He paid for the project, which included the source code. The source code needs to be delivered.


If the client refused to leave a 5-star review, I'd speculate the developer would improve the project such that he would get a 5-star review. I think it's his way of saying, "we're not done until you're totally satisfied". Of course, the developer went about it in a rude way, but that's exactly what you can expect hiring someone from a totally different culture than ours whom you've never met.

Basically this entrepreneur is complaining that being an engineering manager isn't 100% easy. And then he concludes by saying that being an engineer is totally do-able and probably easier than managing. lol


I wouldn't leave a 5-star review simply because the developer requested to get paid earlier than the agreed upon schedule.

If he doesn't honor what he agreed to, he doesn't deserve 5 stars.


I m sure the dev knows that as soon as he gets anything less than a 5 star review, his livelyhood might be destroyed. Withholding the source is one way to pressure clients to give good reviews.

Whether this is justified or not, the $800 isn't worth a less-than-5-star review. If the client is a dick and leaves a crap review even if their specs were satisfied, what's the dev to do?

The problem is actually the review system - there is no auto-correcting feedback loop.


My starting conversation for someone looking for outside help on a project is always; Price, Quality, Time - pick two. This helps guide the conversation as there is usually some limiting factor to the "job" whether its budget, when they need it, or how good the quality has to be.


> Price, Quality, Time

Please don't use those terms. There are better ones: Price, Scope (size) and Time.

The problem with the phrasing "Price, Quality, Time" is that nobody wants to sacrifice on quality. Everyone wants a app that doesn't crash -- the client, the end users, and the developer. Yes, yes, technical debt is a quality concern, but as long as the app runs the client doesn't care in the moment that there's copy/pasted code everywhere and future changes will be "interesting". It's hard to sell "but if I take an extra half day to make this change future improvements will be easier", at least not in tight projects.

But Scope, scope can start negotiation with clients. "Ok, you do know this new control you want will probably take something like 10 hours to write, do you really want it or can you make do with a default one?"

If a client drops a fixed bid project on me with a dictated time deadline, sure as anything I'm going to take control of the scope side of the project triangle.


Good post. The only quibble I could have is that almost everyone understands what "Quality" is yet it requires education and experience to understand "Scope". Maybe that's a conversation/education you have with prospective clients though.


> The only quibble I could have is that almost everyone understands what "Quality" is yet it requires education and experience to understand "Scope"

I would say that's a feature, not a bug ;)

Everyone "knows" what quality is so nobody wants to cut it. The client expects a deliverable with a (mostly) bug free deliverable, and the developer expects to be able to try to create a codebase with as little technical debt as possible.

There are certainly situations where quality is cut (technical debt that you might avoid if you had more time, the customer deciding to skip beta testing), but as a developer I can't say, "You want this cheap and tomorrow, so we as a team are going to ship a buggy app". Because the first thing the client does when they give the app like that a spin? Come back to the developer with a bug list a mile long and say the current quality is unacceptable.

So then it's not the project management triangle of, "You take two sides, I'll take one". ;)

But if, as a developer, I say, "You want this cheap, and tomorrow, which means this thing needs to have two of these things you want, not all 10. Help me choose the most important things here." Which is a hard conversation (nobody wants to kill their darlings) but you can quantify scope (estimate and prioritize the work).

We certainly know a lot about quality from Deming, Juran, and Pirsig, but the margin is too small, and the night too short, to put this conversation in that scope.


I've always dumbed this down to "Fast, right, or cheap."


I really don't get this. Can I really pick cheap and right, and just expect it to take longer?


Also I've seen a pretty high correlation (not 100%, but high) with clients that push down on pay... but ALSO have very high expectations on quality and time-to-market. It seems paradoxical, but life doesn't prevent paradoxical idiocy from existing.

Speaking in general terms, the clients that offer/agree to higher pay tend to be less demanding, more flexible, more realistic, more appreciative and with more repeating/recurring business (rather than one-off speculative "I have this great idea, just need a duh-veloper!" situations)

I'm getting very close to a point where I might start "shit testing" or filtering potential clients by asking for, say, $1000 upfront, just to have an exploratory talk with me on the phone. Figuring that if they cannot even do that, physically, or are not willing to do that, then they are probably not the kind of client I want to take on anyway, either because they don't have the budget, or, are not sophisticated enough. (They don't understand market conditions, the risks involved to developers, the money cost of time, the time cost of money, the nature of reciprocity, or what their alternative cost would be if they had to hire a software engineer as a FT/direct employee, pay full benefits, paid time off, insurance, etc.)


Learning to do it yourself is the best investment you can make.

However, don't loose sight of the fact that for serious software development you'll need to hire somebody if you're not a professional programmer (i.e. somebody who writes code for a living, every day, for the last couple of years).


Specs being more or less fixed is fairly standard for any creative industry. Otherwise you end up doing many multiples of the work you originally signed on for for people who are continually changing their mind or having one extra little thing. You wouldn't say to a builder who came to your house to fix the roof "Oh, and while you're up there, the chimney needs doing." And not expect to pay for it.

How you handle that varies, I don't work on a fixed fee - I give estimates but it costs what it costs, so in many ways it's easier for me. Still, I give people three goes to change their minds about the graphical assets and placement of interface elements, within the specs we've worked out of course - and then if they want to change it we work something new out or we go ahead with one of the prototypes they like; I'm not going to be messed around by someone who can't make up their mind, there are other clients. The way I look at it my initial contract is to make up to three rough versions of the thing for them - and if we're working well together we take it from there, or if we're not we walk away from the thing.

#

Other points -

Hired someone who may have had flawed English skills, (from reading the back and forth)

Paid $800 and expected top notch service.

Unclear milestones.

Hired someone in a dramatically different time zone (always a bit of a pain.)


"I should learn how to do it myself."

That's an excellent idea. You'll still hire a developer next time of course, but you'll know exactly why you are doing it and you'll appreciate the result a little bit more.

Sure the demand for a 5-star review was a little underhanded but what do you expect when you are bottom feeding like that? $800 for any app is way below bargain basement.


There was once a website were you, as a buyer, were assured of having complete rights over the source code and the binary of an application for which you hired a developer. Also, the developer was assured the money for the application are in an escrow account once the project was awarded and he will be paid if he can deliver in time. This site was RentACoder, later renamed vWorker. There was no way for a coder to be able to keep the source code hostage until a 5 star review was given or for the buyer to delay the payment.

Today, vWorker doesn't exist anymore, it was bought by Freelancer. On Freelancer there is no guarantee that you will get your final product (as a buyer) or that you will be paid (as a coder). Actually, a buyer can post a project, pay you for an application, get the application and than request a charge back from the credit card company :). Freelancer has no inclination to protect the buyer or the coder.


It's been a while since I visited elance, but I think that's exactly how it is supposed to work. Freelancer.com is a weird experiment in gamification, feels like a scam from the start.


This was an interesting read, and had very similar experiences.

My current problem is an IOS developer who I have used on 2 projects without issue. I then started a new project 3 months ago which should have taken 2-3 weeks max. So far his mother, son have both died. He lost his house. His computer broke, and then another one. Finally his son died again!? Still nothing has been sent, and he has had 50% of the money.

I suspect the problem is that he has taken on too much work. I have paid him well in the past, been fair with spec changes etc. He saw me an easy touch to screw over on the 3rd project. No plans to work with him again. It's not the money that pisses me off, its the wasted time!


> Still nothing has been sent, and he has had 50% of the money.

...but you have a contract that presumably sets out the delivery, and how you resolve disputes, and what happens if somebody delivers late, presumably.

And if you don't have a contract...well, there's a lesson there!


Without knowing the specifics or the absolute truth about the situation on his side, I can say it's possible those things really did happen. And consider that in the alternative scenario where you had to have him on payroll as a FT/direct employee, you'd be paying regular paychecks + benefits to him this entire time. You're lucky to have the option of engaging someone only as a temporary "disposable" contractor. And for every scenario where the client appears to have been "screwed" by the developer, I guarantee you the reverse scenario has happened. Possibly even with that same guy, with the shoe on the other foot. It's truly a jungle out there.


Things like this about some developers just piss me off. I'm a freelancer, and really like the idea of a platform like Elance that could easily connect me to clients, but all the good clients stay away becuase of people like that.


As a non-technical founder who had to search far and wide till we found the right freelancer (and then ultimately a full timer), I've wanted to build a site that connected development shops with clients. Interesting to see how much can go wrong in what should be a very simple model.


Aligning business reqs and technical implementation is a harder and more expert job than the development part. These sites assume it doesn't exist and leave a client and dev to scrap it out in a zero sum game.


Yep, is a big part of the problem.

This sites don't make clear that is necessary do some specs, mockups, talk about the project, how do feedback, how manage it when it start, what to do about bugs, how report it, etc.

When freelancing, is not as simply as just coding, is project management + customer engaging + quality assurance + researching + coding and the most important of all: Mind reading, and guessing (right!) what the hell the customer want.

After +17 years I never ever meet a gig where it become easier. And all that baggage cost. Is time consuming. Is impossible to do it right the first time (and everyone expect a quote on time and cost, and hate if is by the hour!).


but the reverse is also true. many/most good developers stay away from it because of the bad/cheapskate clients that are rife there. "I have a great idea that will make me millions!!! just need a developer. oh but my budget is tiny, so sorry! and add this and this and this and I need it by next Tuesday."

case of a market-for-lemons, plus race-to-bottom


The client, in that case, should've just had a profit sharing offer, instead of paying a measly some, for the off chance that the app takes off (thus screwing the dev). If the great idea is gonna make millions (for real), the dev would not hesitate to accept the profit sharing option.


agreed that's more fair, if the client can only offer low pay, they need to at least give them a piece of the potential equity upside. though in reality, in the general case, all other things being equal, that equity share will probably be worthless. plus in this day and age it's never been easier for a developer to purse a wide range of business venture ideas, and retain full ownership and equity upside. "Gee, I can work on your Big Idea for small pay and 1-10% equity, or, I can work for somebody else for Big Pay and, disconnected from that, either on the side or afterward (during "bench time" or sabbaticals) work on my own thing for ~100% equity." Choices, choices.


What a scam. If Apple doesn't like your project, you don't have to pay the developer. No risk for you.


I've outsourced some development on oDesk, and it worked out ok. I even hired one of the developers full-time for a different project.

What I did was start with a small project, and verify the developer's work. This is much easier to do if you are technical.

If you are non-technical, I think these sites are worthless. There is no way to know what you are getting.

Edit: I should say they are worthless for technical work. I've also hired a non-technical assistant who was in the US and that worked out great, and I'm sure other non-technical people could do the same.


This kind of sites have the problem (big one IMHO) that the projects descriptions are almost useless as specs, and a lot of developers don't know how build that from the customers (and rarely a customer know what to say, ask or give). I wish that when a customer send a project, somebody review it and check if the assumptions of the customer are on line with reality, or can do some consulting to properly scope the projects before div in.

Probably having projects manager in the side (not in the middle!)?


Prior to teaching myself to program I hired off of Elance and what I remember most is how helpless I felt. I had no way to verify that the code the client wrote was any good. I worried that I'd pay the first 3 of 4 milestones and then the developer would flake out on me because the last milestone would take 10x as long as the first 3 combined. Or I'd pay all 4 milestones but have no way of noticing huge bugs that would surface later on. I had no idea what was technically challenging and what was simple. All I really wanted was assurance that the money I was spending wasn't being wasted.

A lot of people are getting upset with the client for making the "unreasonable demand" of not paying for the app until 10 days after acceptance into the app store. But that's what the client wanted and more importantly that's what they both agreed to. That's what matters most to me. If you agree to a condition you later regret agreeing to, suck it up and consider it a lesson learned. Don't hold hostage the client's deliverables. That's just wrong.

In any case, as a freelancer, if a client presented me with that particular milestone requirement, I'd see it as an opportunity and price it in. I'm in a much better position than most clients to determine the likelihood that their app gets approved. I'd research the idea, calculate the risk of it being rejected, add a premium, and adjust my quote accordingly. I'd probably present the client with 2 bids, one where I shoulder the risk and the other where he does.

I wonder if there's a business to be had there - providing a sort of insurance against apps being rejected from the apple store.

For those wondering, I paid 8k for my web app (over 10 years ago) only to later realize that the core functionality was faked.


> really make me wonder how much faith we can put in the reviews on Elance

Pretty much the same faith we can put in LinkedIn recommendations, I suppose.


After skimming through all comments, I decided to humbly post my blog a while ago about hiring offshore team on Elance to develop my first iPad app, because it is a journey along which I learned a lot and derived pleasure. https://medium.com/on-startups/bad992e31ab6


What's that old saying? You get what you pay for. What did you expect for $800?

"Oh but it's a simple app" - Well, so is the electrical grid! I delivers power to your house, simple right? Oh wait. NOPE.

Additionally, I do agree that once you've accepted to pay the final fees once development ends, you should pay them then and not when the app is 'accepted onto app store and 10 days have passed so users can report bugs'. What on earth were you thinking? That's not the developer's problem. That's YOUR problem.

I find it nice that he even offered to fix any bugs found on the review process or after the store's release, most developers could charge you extra for this.

Please get this right once and for all: You pay consultants / freelancers a combination of time spent + expertise. Never for a finished product.


Actually you pay them for whatever you agree to pay them for.

As a freelancer, I'm able to accept or reject any proposal as I see fit. If someone wants me to shoulder the risk of an app being approved by Apple, that's fine with me. Much like an insurance policy, I'll calculate in the risk and charge them accordingly.


I agree with you, but this is a bit much:

"Oh but it's a simple app" - Well, so is the electrical grid! I delivers power to your house, simple right? Oh wait. NOPE.

Really? Comparing a trivial iOS app to the electrical infrastructure, a huge engineering task (sorry, Santa's List iOS isn't engineering). Please.


Hey I can blow things out of proportion and create unreasonable expectations just like the author does :)


...fair enough.


I'm not really surprised to read this synopsis of hiring on Elance. I've done a lot of hiring on there, but have found out you can leave no room for guessing. No matter what you want done needs to be speced out meticulously and attached to the project.

It has been said, but you absolutely get what you pay for. Again, for the price this sort of nagging for payouts of pretty typical I've found also, especially for low paying jobs.

I must say contrary to the author I would be leaving a negative review for this developer. There is no excuse to hold the source code hostage for a 5 star review. Tacky and unprofessional


Whats missing from this conversation: An ELance Human Being.

The third party would have made all the difference in the world, moderating this conversation. The two parties were clearly working against each other - either wanting too much for so little, or wanting too much for more work, either way: capitalistic exploitation is relatively easy to detect, and offends the newbies.

I tend to think the developer was kind of a punk, though I compel with all the reasons given for wanting more $cash.


I was hoping this would happen when I read the comments on this post on /r/entrepreneur. Compare the comments there and the comments here. Fascinating case study: http://www.reddit.com/r/Entrepreneur/comments/1pp2bg/i_hired...


Mike experience did not look that bad after all, ultimately with some patience on his side he has an app up on the store. Either on the side of the client or on the developer there is a very hard work to do in order to accomplish a simple app. I think Mike underestimates the challenge and I wish him good luck on the development side, a new trip is waiting for him.


I was considering trying Elance until I read this.

Not I am thinking I cannot afford it because of the demand it would place on my time to manage and because I can't trust that a 5 star rating correlates with quality.

Sheesh... I wouldn't have been willing to have that argument for $800 much less write any code.


But it would be very unwise to consider all the developers to be same just because of a bad experience. I have worked as a freelancer on elance and I have never asked for a 5-star on review or for money upfront.


> or for money upfront

You must not be doing this for very long. I don't work with clients who don't pay 50% upfront for fixed fee projects. And those types of projects I try to avoid.


but isnt 50% upfront too much? If I were a client, I would never pay 50% upfront because what If the developer is not capable of delivering the product.


If I were a developer why would I spend a number of hours developing,m not knowing if the client would pay?


The author should have given him a one-star review for holding the source hostage for the review. Now how will others know this guy is an unprofessional dirtbag?


I'm a bit torn here since I feel like a good review was part of the expected "payment" to the developer (reading in between the lines suggests he accepted a lower payment in exchange for a good review).

Is it against the site TOS and sketchy? Yes. But then the author is just as responsible as the developer for agreeing to such an arrangement. But it becomes understandable that the developer would withhold the product if he had not yet been "paid" in full.


Would setting up a version control repository for the developer that you can access avoid the problem being held at ransom for the five star review?


The output from all devs (on sane projects) is github.

A better solution would be to not falsify five star reviews when people act unprofessionally, so the ratings system can ACTUALLY WORK.


> I had virtually zero budget

at this moment I strongly suspected that I knew how it would turn out

> and since it was already late

and this made it a slam dunk

other tells (statistically speaking):

-- the "I had this great idea!!! just needed a developer" factor

-- looking for programmers on Elance/Guru, etc.


> > I had virtually zero budget

> at this moment I strongly suspected that I knew how it would turn out

I was sure the app would never get as far as the app store. but it did, and all for $800. he got very lucky.


There should really be a website where each worker has been interviewed by some sort of staff, where bad reviews are taken seriously and resolved. Not a willy nilly battlefield of near scammers.


The closest site to what you're talking about is ooomf.com (They don't have reviews, though)

I'm building a site (CodeDoor) which uses open source contributions as the sole barrier to entry- a nice thing about that is that it self-selects for technical clients.


GroupTalent (http://grouptalent.com) maintains some personal checks on their talent pool. Not sure if they'd be into smaller applications like OP's, though.


Something like this for remote work exist?


That's a big part of what you're paying an agency for. The whole point of elance is diy management.


But not for people who collect code and then find an excuse not to pay, that isn't necessary at all.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: