
What Everybody Should Know About Contracting Developers - trevmckendrick
http://www.trevormckendrick.com/contracting-developers/
======
jorgeleo
You lost me at "Pay them to Code, not Think"

That is THE worse advice EVER.

You want a developer that can take your pseudo spec (and I say pseudo because
if they are detailed enough, then you should be able to code them, since you
are hiring a developer you don't know the devil that will be hidden in the
details), interact with you, and give you what you asked OR BETTER.

Non-technical people need the counterweight. This advice is like telling the
doctor "I don't pay you to think and figure out what I have, just to write the
prescriptions, and is much cheaper"

~~~
trevmckendrick
But sometimes you don't need a doctor to give you a diagnosis. You literally
only need a prescription.

Hiring a developer on the cheap to "just code" is the equivalent. It's a way
to keep costs down while testing the market.

~~~
jlarocco
> But sometimes you don't need a doctor to give you a diagnosis. You literally
> only need a prescription.

I don't think any legit doctors write prescriptions without first making, or
verifying, a diagnosis.

Hiring a developer and telling him, "Don't think, just code," seems like a
recipe for disaster. People who insist on going about it that way get the
software they deserve.

~~~
nmcfarl
I think there’s a continuum here. I’m sure we’ve all been stuck (or heard of
the project) with some guy who thinks he’s an architect (but has been hired as
a coder) and can sit at his desk for weeks produce lots of docs, but 0 lines
of code. Sometimes that’s good for the project - and sometimes it sinks it.

Sometimes we’re paid to think, and sometimes we’re paid to code. Deciding
which activity is more economically viable to the company should probably not
be left up to us. That’s what they hire managers for after all...

------
jakejake
This is a great article for people on HN to read because we more normally hear
about start ups struggling to find developers. I get a whiff of arrogance from
a many developers when they list their demands for employers. They criticize
companies techniques or laugh and dismiss recruiters. I understand it, though,
when your skills are in high demand you can afford to be more selective.

I'm also a developer, BTW, but I started out just at the first bubble burst
and getting jobs wasn't so easy. I struggled to find work at first when only a
few years before college grads were being given lavish signing bonuses. I feel
a weird sense that karma will have it's revenge on me if I cross the line of
enjoying some success vs being a greedy, selfish prick. I know it's not
rational but I just feel that this could be a temporary gold rush and I don't
want to burn bridges.

This story with developers fighting for cheap bids is a reminder that there is
competition out there. Some of those guys are better than others, but
companies have choices. We may continue to enjoy this demand, but things may
even out too.

~~~
troels
> I feel a weird sense that karma will have it's revenge on me if I cross the
> line of enjoying some success vs being a greedy, selfish prick. I know it's
> not rational but I just feel that this could be a temporary gold rush and I
> don't want to burn bridges.

Not being an asshat isn't irrational.

------
timjahn
As a former contract web developer myself, these are excellent points Trevor.
You need to find a way for every potential client for every freelancer out
there to read this. :) Actionable feedback is so key for working with creative
talent in general - we can't read your mind!

We actually built some of these ideas into the core of matchist
(<http://matchist.com/talent>). Specifically, milestones and paying your
developer quickly. All projects on matchist are milestone based and the client
can pay developers in 2 seconds by just clicking a button.

~~~
robmclarty
I can't count the number of times a client has asked me something like "I want
my website to be more dynamic. How much would you charge?" I don't know! Why
does anyone expect a specific answer to a non-specific question?

This usually turns into multiple back-and-forths to flesh out what the client
really needs, and usually requires a lot of thinking on the developer's part
(me) to nail down an actionable solution that could potentially be estimated
in terms of $$$.

I was hesitant reading Trevor's article thinking what he was suggesting was
devaluing dev work, but when he emphasized the importance of specificity I was
on board with him. If a client has fully thought out their idea to the point
of step by step mockups, that takes a LOT of the pain, frustration, and effort
out of the equation which translates to the required work not costing as much.

Developers are one step away from computers (literally) and require a lot of
the same rigour when interacting with them. Know what you want and be able to
explain what you want (in detail) before engaging them ;)

~~~
auctiontheory
_Why does anyone expect a specific answer to a non-specific question?_

The more you can learn to help the client work through ambiguity, rather than
expect the client to match your technical understanding and then be frustrated
when they don't, the more successful you will be.

~~~
beat
Ultimately, software is about getting specific answers to non-specific
questions.

~~~
ptaipale
Absolutely, but that's more than just coding.

------
lifeisstillgood
Maybe I missed something but this sounds horrible.

The idea is to find developers on the "left" - low quality, hand holding and
get them to churn out a market testin app for a small amount of money.

That seems crazy. Deliberately hiring low quality workers?

If the app is so trivial that low quality cannot break it then I guess it
works. Does not sound like a sustainable solution though.

~~~
trevmckendrick
You're right, it's not sustainable for a growing, decent-sized business.

But it doesn't have to be, nor should it. Like I said, it's simply a way to
cheaply test the product/market fit.

Once you've found fit you can more safely move to the right of the spectrum
and invest in a quality product.

That's exactly what I'm doing now.

------
lgleason
The good developers in developing nations are still going to charge more than
$15 an hour. They tend to be more in the range of $40-$50. The $15 an hour
guys in my experience are either:

1\. good (quality-wise), but slow and don't speak much English, 2\. or they
are just horrible.

I have seen two projects coming out of the $15 an hour shops. The only way to
have a sustainable product is to start over. The sad part is that I have also
seen a lot of people throw a significant amount of money at these $15 an hour
deals when they could have created a better product for the same amount of
money with fewer high end devs.

One of my favorite outsourcing stories was when a guy wanted me to be his CTO
and he was considering hiring a company that outsourced to China at $15 an
hour. So I asked the outsourcing company if I could interact with the devs
directly. Their answer was no, claiming that it was for everyone's protection.
I won't even get into them describing a waterfall methodology and telling me
that this is Agile. Let's just say that we didn't use these guys.

The bigger issue here is this. If you are doing a tech play and can't code,
don't have a technical founder, and don't have the cash to hire good people
should you even be playing in this space? I'm sure that there are a few
exceptions that are able to do this, but that seems to be few and far between.

If you don't have a deep passion and understanding of your core business,
which in a tech play means the tech to execute it, along with the market that
you are going after......or gobs of cash to bring in the right ones I'll bet
you there are some great stats on how successful they are. I know what my
anecdotal experience is but would love to see some hard data to confirm or
deny my experience.

------
pjungwir
How much is your own time worth? If you're hiring developers who need lots of
hand-holding, you're going to burn up much more of your own time. You're also
taking on more risk of wasting a month or two on a failed project.

~~~
trevmckendrick
True. Some developers do require too much handholding. I do my best to screen
them out by reading their reviews on Elance.

I did lose time on 1 failed project in particular. I should have noticed
sooner that the dev kept asking for more time and canceled it.

~~~
jiggy2011
What do you define as "hand holding"?

Often project briefs are not very detailed but the client's expectations are
very specific. So in the interest of not wasting a load of my time writing
code that I'm just going to have to redo I will ask a lot of questions. Even
ones that seem obvious, as sometimes my idea of a the best way to do something
was not what the client had in mind.

~~~
jmadsen
Exactly - I've never heard the term "hand holding" that didn't go along with,
"You should be able to figure it out - it's a FB clone, for God's sake"

"Real" development companies have full-time people writing specs - you need to
come up with something better than a few Google docs if you want the dev to
just run with it, especially if (s)he's on a fixed contract.

Hourly, now, is a different animal :-)

~~~
pjungwir
I don't know about the OP, but I took the term from the first image in the
post that says "hold their hand." I agree that helping the client put together
a decent spec does not mean I need hand-holding. If anything, it puts me more
on the right side of that image. :-)

------
goofygrin
I've got a client on a shoestring budget.

I told them... listen, we can get real expensive, really fast. So if you help
me, I can help you. They build specs in powerpoint, excel, paper etc. We
discuss them (in person typically at a scheduled meeting where we discuss
these features as well as business consulting about where to take the
business, how to grow it, what features have been requested, what to add,
etc.). My team then develops what they want.

The customer then QAs the software to make sure it's good. This saves them a
TON of money.

They're happy, I've got an easy client to work with and my devs enjoy working
on the project because the requirements are well thought out. My client is
happy because they're getting a good value (both in terms of less $ on dev and
the money they spend on business consulting is put to better use since they've
done their homework).

Contrast this with another of my clients (with a larger, but dwindling
budget). They typically say "go develop x" with no real guidance. We develop
X, but once they see it they say "that's not what we wanted." After a few
cycles of this, and frustration from both sides, we simply now say "you've
thought about X, why not tell us what you've got in mind so that we build the
right thing first?" It's made things move a lot smoother... enough so that
this client is now extremely aggressive in their release cycling (and it feels
like a hamster wheel)... which we're working on... (including charging 2x for
forced weekend work - "It's Friday at 3pm. If this must be deployed Monday,
then we're going to have to work over the weekend and that is at $xxx rate."
We've not worked weekends for them since :)

~~~
jorgeleo
"We discuss them (in person typically at a scheduled meeting where we discuss
these features as well as business consulting about where to take the
business, how to grow it, what features have been requested, what to add,
etc.)"

Wait... you... 'Though'

~~~
r00fus
He "thought" but his devs do not. They don't even QA (customer does this).

In this example, the dev is cheap compared to getting weak spec and a wishy-
washy or non-existent QA response cycle.

------
dinkumthinkum
Oh my, Elance. These sites are horrible. Their goal is simply to turn
programmers into sweatshop dwellers competing for tiny scraps. The signal to
noise ratio at these places reaches 0 pretty quickly.

~~~
trevmckendrick
Have you used Elance before? I've gotten great work there from developers,
writers, general admin, data entry, etc.

~~~
cpursley
Me too - oDesk is great. There seems to be a lot of animosity from valley-type
developers on here towards offshore freelancers and their clients. These
'rock-star' developers come across as entitled to me as a non-professional
junior developer.

Believe it or not, some of us really are building sustainable businesses
outside of the valley often using offshore developers instead of local without
burning through millions in VC money. In fact, we really have no other
options.

The blog articles are great, keep them coming Trevor.

~~~
wildgift
What about the animosity of the local developers who want to make $60k a year
plus bennies, but you're hiring people for $15 an hour?

~~~
cpursley
The local developers are all employed (if you're a developer, check your
email). Anyways, I wouldn't be able to afford a local developer even if I
wanted to at this stage. It's not a just a question of being cheap for many of
us, it's a matter of being able to get our projects off the ground in the
first place.

~~~
Draiken
That's a wild guess and IMHO very wrong. I get that you may not have a lot of
resources, but those places normally pay badly even for 3rd world countries.

Saying they're all employed it's a rationalization people make to feel less
guilty.

Paying people to code less than the ones that cut your lawn is wrong no matter
what the reason is.

~~~
cpursley
Actually, I'm paying very near my own salary. And I cut my own lawn.

~~~
Draiken
Maybe you are, but in my experience 99.9% of the contractors of those places
don't pay well because they don't have to. Most of the time there is someone
more desperate that lowers the bid just to get the job. If everyone paid
decently that would be a whole new story.

------
ziko
> "So I emailed him one day and said “hey, I want to do this right and I want
> you to know I appreciate your work. I’m raising the contract to $6,000 [from
> 4k].” He didn’t ask > for that, I just did it. Now, can I directly measure
> what impact that’s had? Not really. But personally, I feel better working
> with him."

For me, that's plain stupidity. As you say, your company is small and $4,000
is a lot of money. You didn't mention if it's for a bigger project so I'll
assume it's for fairly similar one.

You show appreciation for someone by coming back to them rather than paying
more for same service. It's one of the most important rules of business.

When you'll approach him for twice as big project, he'll expect $12,000 and a
little more instead of $8,000 he deserves and with which he thinks he's paid
enough. People tend to get comfortable too quick when giving them things they
didn't ask for.

I'd advise a slightly different approach. Keep coming back to him and keep an
honest relationship. If he isn't happy with something (attitude, finance
aspect, terms or anything else), let him know you're open to discuss anything.

But that are just my two cents and if it's working for you, why not? I know it
wouldn't work with me and my team.

~~~
trevmckendrick
I don't know about "plain stupidity." :)

To be clear, this project is a 100% rewrite of my current app. It has a ton of
additional functionality, is built _much_ better, includes a store for IAP's
of additional reading content, etc.

It's my bread and butter.

While I could have gone back to him with another project in the future, I
wanted to make sure _this_ project went great. It's a "bet the company"
project and in the overall scheme of things $2,000 isn't that much.

Can you imagine how great you'd feel to get an email from someone saying they
decided to increase your pay by 50%? Wouldn't you do your best work for them?

That's the message I was going for.

~~~
jf22
To be honest this would turn me off and cheapen our relationship.

Its almost like you rubbed it in my face I could have charged more.

Better to throw in a bonus at the end like "if you complete by x then you get
y".

~~~
nthj
> Its almost like you rubbed it in my face I could have charged more.

Yeah, I've been on the receiving end of this. It made me feel like a chump
(even though I knew I was charging right about market rate for it.)

"Hey man, something has come up and I could actually use this 3 days earlier
than we agreed. If you meet the deadline, I'd like to offer a $2K bonus" would
neatly sidestep this and should still fulfill the author's desire to get
quality work.

~~~
whattheken
I've seen this before as well, where doing someone "a solid" actually results
in higher expectations for all future interactions, and a feeling that they
were cheated in all past interactions.

As the saying goes... sometimes less is more.

------
austenallred
There are a lot of people disagreeing, but you have to realize what the goal
is here. The goal is _as cheap as possible_ , and you should have a mediocre
product out of that. For this scenario, the advice given is perfect. Obviously
the advice doesn't work for many other scenarios.

In other words, you should very rarely be looking to hire a developer out of
India for $5/hour, but if you are, hold his hand and he can't mess it up too
terribly badly.

~~~
trevmckendrick
Great point. To "as cheap as possible" I'd add "but still functions."

It doesn't have to be great or amazing. It can be quite mediocre. It just have
to be enough to know whether it's solving a real need customers have.

------
DamnYuppie
Totally not relevant but I got a good laugh out of it. When I first read title
of the link it made me think that developers were a communicable disease! Kind
of like some terrible 80's high school health documentary lol!

------
chasing
Communicate well. Be fair and prompt with compensation. Find people you enjoy
working with and can rely upon.

A recipe for success!

~~~
trevmckendrick
Pretty simple huh.

~~~
chasing
You'd think so, but it's amazing how often these things don't happen. Kudos
for being proactive about it when hiring developers.

------
BigBalli
My reading notes:

\- "almost a dozen developers", for the same project? Sounds like hell just to
save a couple bucks...

\- ...or do you want to "make something really awesome regardless if people
use it"? what would anyone want to do that? Odds are if you're doing it for
fun you have the money to hire a good developer and therefore not go they
painful elance/odesk route (check this out <http://giacomoballi.com/find-ios-
developer>).

\- in your chart you're missing bad developers. plenty of those hanging out on
outsourcing websites...

\- if you're working with a good dev (I won't assume other scenarios) they
will know more than you do. They can and should help you. You're limiting
yourself if you just pay them to code.

\- good for you for making the mockup that's way more work than most of my
clients do (check this out <http://giacomoballi.com/explain-idea-to-
developer>).

\- speak "good" english? Sorry, couldn't help it... :)

Good intro post regarding you experience.

Look forward to the next one!

G

------
ahulak
I think you are receiving so much negative feedback because you are
essentially referring to developers as a commodity that can be negotiated down
to 'cheap'... You then posted to a site that is highly trafficked by freelance
developers. As someone who frequently works with developers and handles a lot
of the spec'ing, I thought your post was helpful.. and informative. That being
said, it doesn't really tell people who to pick a good developer out from a
bad one. What kind of questions do you ask to find a good developer for iOS?

------
eksurfus
Trevor, really appreciate the post. Any reason you chose elance over other
sites (odesk, guru, etc)? Any additional tips (eg did you try encouraging
certain freelancers with great credentials to bid on your work)?

Just to toss it out there, Go (Golang) is becoming increasingly popular, but
still has a relatively small community (much of which is based outside the
US). This seems like a potential good case for using freelance developers
(when language experts are few and geographically distributed).

~~~
trevmckendrick
I've used odesk once or twice. They're all about the same really.

At this point it's beneficial for me to stay on Elance because contractors see
how much I've paid out, how consistently I give good ratings, etc. They know
I'm a good contractor so they're more likely to bid.

I don't do much to try to get "certain" freelancers. Sometimes I'll sponsor a
project if I need it done really quickly (under 48 hours, not a development
project) but otherwise I just put it out there.

~~~
ypeterholmes
I got screwed on odesk. Hired a guy, sent a deposit, and then he ran off. No
recourse..

------
spaghetti
Milestones are great. However I like to have reasonably consistent prices. For
a $4000 project you can have, say, four milestones with prices $500, $1000,
$1000, $1500. This way the client can bail out after the first milestone if
things aren't going well. And they won't lose too much money. Also the client
gets the "carrot on a stick" with the hefty fourth milestone without being
obnoxious (with a $3200 fourth milestone for example).

------
coldcode
I find these comments amusing in the light of all the agile discussions I
read. None of this sounds terribly agile, having to specify everything up
front... yet the truth is a lot of people are not competent enough to handle
iterative development form either side. I wish more people would explore how
agile works with people who can't code without detailed instructions and
managers who don't understand how to do anything else.

------
clueless123
The hidden gem here is that "It is all about Trust & Respect" as this alone
can make both parts life easy or a small nightmare.

~~~
trevmckendrick
Truth. Makes it so much better working with people when you have those two
ingredients.

You just don't realize how _much_ better it is until you find people like
that.

------
JimWillTri
What steps did you take to assess their skills?

~~~
spaghetti
One option is essentially a programming test framed as a first quick
milestone. Say the app is for taking and sharing photos and has a $10k budget.
Start with a milestone for an app with a single button. When the button is
tapped the user can take a photo using the built-in, default camera view.
Price this milestone at $300 or some other small fraction of the total cost.

If the contractor quickly sends you something simple that works without too
many lines of code then you have a decent signal that the skill level is
sufficient. Anything else (slow response time, app doesn't work, below
expectations code quality etc) and you have a decent signal that the skill
level is insufficient. In this case just pay out the first small milestone,
thank the contractor, cancel the project and try someone else.

