I get asked this question very often: Where and how do you find and hire a good programmer? Since I'm a programmer and I manage software projects, I'm supposed to know the tricks. I do, of course; there are many of them, but the list below succinctly summarizes the most important ones.
I'll be referring to "him", but these recommendations apply equally to both female and male
slaves software developers.
Ask a Friend. The best way to find talent is through a reference. Who knows the software market better than your high school classmate who bought a WordPress website last year, right? He will definitely recommend a good programmer to you. Recommendations are the most effective way of finding contractors. First, you don't need to worry about screening and testing. Second, you'll have a very good explanation for why your project failed—because your friend let you down with a bad recommendation. Win-win.
Hire Only Locals. Don't even think about a remote programmer—remote projects always fail. Always. He will work in a different time zone, you will always have cultural clashes, and his Russian accent will be annoying. You simply won't be able to meet him every second day and whine about your project being too expensive, too slow, and too frustrating. Hire only locals—they are much easier to manage and punish.
Don't Offend With a Lack of Trust. A talented professional programmer will be offended if you ask him to pass a test or prove some of his skills. That will demonstrate that you don't trust him. And if you don't trust him, you simply should not work together. Trust is the most important thing in any project. Also, don't ask how certain things will be done. He is the professional you're hiring, and he knows what he is doing. That's enough.
Fall in Love. After trust, the most important thing is a personal connection between you two. I'm not saying you must fall in love with your programmer, but it won't hurt. You should feel an emotional touch with him. Otherwise Java code won't work like you need it to. If you can't fall in love, you should at least become good friends. Invite him to your home parties, go to movies together, and introduce him to your wife. All of this will seriously affect the quality of the product he is creating.
Don't Specify Too Much. That's what Agile recommends, and I second that—face-to-face communication is more valuable than documentation. Don't write any documentation, don't specify what exactly you need to develop, and don't think too much about your "user stories". It's all in the past. Modern software engineers figure everything out by themselves. Just let him be creative and communicative. If something isn't clear, just call him. Remember, a Skype call is always better than those boring documents that nobody knows how to write.
Motivate by Value. In order to create a great software product, he must be very excited about it. Make sure he is excited. If he is not excited, call him again. Motivate him. Talk to him. Explain to him your brilliant Google-killer business idea again and again. Until the moment he
screams says "I'm excited". He must know what a great value your product is producing for the entirety of civilization. And he must be excited. Do I have to say it one more time? Excited! Are you excited already? I'm excited.
Promise Job Security. Even if you just raised $2K for your startup from your wife's step-dad, promise your programmer a cloudless financial future. He must know that you've got enough to pay him until he retires. A good programmer must want to work with you forever. That's the type of programmer you need. You don't want one of those greedy freelancers who always jumps from project to project. You need a long-term commitment. That's why you have to pretend you're rich enough.
Delay Money Talks. Don't mention money for as long as you can. Ideally, ask him to create a prototype first and "then we'll discuss your salary". A good programmer doesn't work for money. He works for satisfaction. That's who you need. You should discuss value, excitement, features, market disruption, and anything else that's important, but not money. Programmers in general are not really good in financial negotiations. Use that to exploit him for as much as you can.
Don't Negotiate. Eventually you will have to discuss money. Make sure there will be no negotiation involved. It'll be an offensive process, and most programmers are very sensitive. Just tell him how much you will pay, and if he doesn't feel that is enough, get back to the value/excitement/market conversation. Do it again and again until he agrees.
Require Full Commitment. Make sure he will be fully committed to the project. Ideally, he must not have any other projects or even any personal life at all. He must promise to be 100 percent with you and your idea. If he is planning on doing something else, demonstrate that it will offend you. Act jealous, like a loving wife. You don't need a programmer who is interested in something else.
Make Him a Partner. First of all, making him a partner will save you a lot of money. Ideally, you should convince him to work for free. Good programmers are good entrepreneurs and like to take risks. A good programmer knows that in order to become the next Mark Zuckerberg, he must start at a job with no salary. Give him some equity and keep those motivational speeches coming. It's a perfect money-saving technique.
Be Positive. Simply don't tell him about your risks and concerns. The future of your project is bright, and he doesn't need to know more. You're going to be his leader, and a good leader is never too honest with subordinates. Always be positive about the plan—he needs to get that from you.
That should be enough to find and hire a good programmer. Interestingly enough, I just re-read this text one last time and it looks to me like a "how to find a wife" tutorial. Don't you think? Anyway, did I forget anything? Don't hesitate to post some extra wisdom below in the comments section.