

Ask HN: How do I hire programmers / designers without being _that_ customer? - DanBC

I read a lot about the experiences of freelance designers or programmers and the lousy customers they have to deal with.<p>So, how do I hire a freelance programmer without being <i>that</i> customer?  What information do I need to gather before I make contact?  What expectations should I have?  How do I talk about money?  How do I ask if I'm being realistic?
======
invalidOrTaken
There are four ways developers spend their work time:

1) Communicating with you to learn about your needs

2) Making rapid progress because they know exactly what to do and, rather than
doing it, tell the computer to do it

3) Being stuck because they don't know exactly what to do, and are trying to
figure it out.

4) Sitting around unmotivated because they're not sure they'll be paid for
work they could be doing right now.

Obviously you want the developer to spend as much as possible in #2. "Rapid
progress" is defined in terms of your needs, so #1 is essential also. It's #3
and #4 that you want to avoid.

1\. _Remove all doubt that the developer will be paid_. Don't look for a fixed
price contract. If your project is that predictable, someone is offering it as
a _product_ , and it will be cheaper to buy that than to hire someone to
reinvent the wheel. If it's _not_ that predictable, there's risk in the
situation, and foisting it on the developer can still come back to haunt you
(see developer activity #4). Pay on time or (better) in advance. Be open about
your budget, and the fact that you _have_ a budget. If your developer knows
that you don't mind paying money, he'll have no reservations about putting out
his best work.

This can be scary for you, so...

2\. _Remove all doubt in your mind that you'll be satisfied._

The best credentials are, from most reassuring to least reassuring:

\---satisfied clients that you know

\---testimonials

\---a portfolio of past work similar to what you're looking for

\---a killer resume

\---they sound smart

3\. Be prepared to spend a lot of time in addition to money. The best
developers spend their working time on activities 1, 2, and a little time in
3. #1 is irreplaceable.

Also, a note---you're not looking for a friend. You're looking for a hired
gun. Think "What would Boba Fett be like if he were a programmer?" Look for
someone who's polite and professional, not hip and friendly.

------
karterk
I will speak for myself here.

1\. The most important thing I look for in a business relationship is trust.
But, for trust to exist, both sides need to be transparent and upfront
throughout the development process.

2\. One area that's always a little tricky is scope management. Make sure both
sides agree what exactly is included in the scope of work, and what is not.

3\. Working iteratively helps. Set specific milestones and sub-goals and move
along towards the final product. This way, both sides will clearly know the
progress, and can make tweaks and changes along the way depending on how
things change. Software always evolves.

4\. As for money - I would personally avoid a flat fee based project unless
the scope is literally set-in stone (i.e. outcome is clearly quantifiable).
Hourly billing rate coupled with these milestones should work well for both
sides.

5\. Post development support - this is again a tricky area. Be clear on what
kind of post development support is needed - and its associated cost (e.g.
dealing with bugs, minor feature tweaks).

My two cents!

------
damoncali
Scope things out well. Show up with user stories and wireframes. This will
allow the developer to bid a fixed price, _without_ getting himself in a bind
later when he was assuming a plain CRUD interface and you were assuming a
whizbang AJAX UI.

For what freelancers are charging, you should expect professional conduct and
a solid product. BUT... not every developer knows everything. Listen for clues
that the developer is getting uncomfortable and outside his skill set, as not
all of them will be comfortable saying "I don't know how to do that."

Money is easy - they'll give you a price. Expect to pay a portion up front. I
tend to get paid every week or two when I do freelancing, always in advance of
the work.

And just ask if you're being reasonable. A _good_ developer will not just
blindly implement what you ask for, but will suggest easier and cheaper
alternatives along the way.

Be reasonable and consider the advice given by the developer. Sometimes it
will be good advice. Other times, the source can be laziness, so pay
attention.

Also, make sure you're not working with _that_ developer. You know, the ones
who tell the snarky stories about "idea guys" and MBA's. The work they're
looking for is "client", and it's their job to _help_ them, not mock them.

A successful development project requires a lot of work from both parties- so
both need to carry their own weight. That means you'll do manual testing, copy
writing, UI design, and provide the overall vision. That means you'll working
iteratively with frequent feedback in both directions. It also means that the
developer will be scrapping bits of code here and there along the way. Make
sure he can handle this work style.

At the same time, be careful not to abuse the agile process on a fixed cost
bid. You will annoy your developer.

Bottom line is that trust is the magic ingredient. So find ways to build it in
both directions.

