How to Hire (and keep!) a Programmer

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Varius
    Confirmed User
    • Jun 2004
    • 6890

    #1

    How to Hire (and keep!) a Programmer

    Introduction:

    You see it everyday. People openly share their bad experiences with programmers; others, seek programmers to fix projects left unfinished or newly discovered bugs. Job openings are frequent and not quickly filled. This article aims to help, both the little guy and the "big dogs", in employing best practices and avoiding common pitfalls during the hiring process. I'll also touch base on how to avoid losing a good programmer once you have found one; make no mistake, once you have a great programmer, you need to hold on to him.

    How Much Should I Pay?

    Beyond the shadow of a doubt, this is easily the most frequent question nagging at potential employers. Programmer costs are as varied as programmers themselves; and price in and of itself is NOT reflective of quality. Generally speaking though, you do get what you pay for. While it's not impossible to find a diamond in the rough, waiting to be polished, few people have the time or desire to go on a treasure hunt.

    Generally speaking, a quality in-house programmer should start somewhere in the range of $70,000 USD per annum. Anything less and you face a number of obstacles:
    • If they feel underpaid, they will not see a future with your company and may jump at the next offer to come along, leaving you high and dry.

    • They will be inexperienced, accepting your offer while seeking to learn on the job and move on to greener pastures. In some cases, this may be what you are seeking; if it is, as long as you don't set unrealistic expectations, you can easily find candidates within budget. This strategy works best if you have work needing to be done that isn't mission critical, which can handle bugs and delays.

    • Security. Are you aware that most "inside job" theft is performed by minimum wage workers? There is a reason for that. If your data and secrets are critical to your success, the last thing you want is an employee being offered a large sum of money to steal it for a competitor. This happens more than you think.


    When it comes to outsourcing, you will find a much broader range of costs. Indian firms who charge $9 USD per hour sound almost too good to be true; in most cases, they are. The going rate for an experienced freelance programmer will fall in the $100 USD+ per hour range. Prices of $150 USD or even $200 USD per hour are not uncommon. However, the high cost of quality work is usually more than offset by the speed of delivery and finished product.

    To get into a brief example, let's compare three programmers. "Programmer A" is an outsourcing firm based offshore who charge $10 USD per hour. "Programmer B" is an American-based but inexperienced programmer who charges $35 USD per hour. Finally, "Programmer C" is an experienced freelancer who charges no less than $125 USD per hour. You have a small project you absolutely need done in not more than 30 days. Earlier would be nice, but not required in this case as you have a set launch date.
    • Programmer A: It will be completed in 30 days for 200 billed hours.

    • Programmer B: It will be completed in 21 days for 75 billed hours.

    • Programmer C: It will be completed in 4 days for 20 billed hours.


    You may think that's an extreme example, after all, how can a single programmer do in 20 hours what it takes another programmer 75 hours for, or an outsourcing company 200 hours? I have seen the numbers personally from a wide range of quote and projects and can say as fact that this is actually a very common situation.

    Looking at the numbers, the outsourcers are the cheapest option, costing you an even $2000 USD. The experienced programmer, on the other hand, costs you a fair amount more at $2500 USD. You decide to drop "Programmer B" immediately, as he is the most expensive. What you are left with is a decision most companies or individuals currently face; do you get it done quicker and pay more, or save some money but risk missing your deadline?

    If you opt for the third programmer, even if something unforeseen comes up, you should have PLENTY of time for testing or modifications before your launch date. With option A, you risk missing your deadline entirely, not to mention having zero time for testing or changes. Is the security of knowing you have a solid product at launch worth the extra $500 USD? I know it would be to me.

    There are other benefits depending on the circumstance, one being time. Let's take the same situation and assume that if you got the product to launch quicker, you would likely be making money from it immediately. How does that factor into your decision? Well, if you would earn more than the $500 USD difference between Programmer A and C, the advantage is obvious.

    We haven't even touched on the point of inferior or unfinished work; you will definitely pay more having incomplete work fixed or finished than if you had gotten it done properly in the first place.

    In the end, you are the best person to judge who is right for the particular project or situation. Only you know all the factors involved, but hopefully you should now realize that you must contemplate all the angles before making a decision. Your business depends on it.

    How Do I Know if a Programmer is Good or Not?

    The simple answer is, there is no simple answer. Especially for those without programming knowledge themselves, this can often be the most difficult task in the hiring process. I will outline a few suggestions which should help you eliminate those who don't fit quickly.
    • Do they communicate in a prompt and professional manner? The assumption that all programmers are anti-social creatures of the night is rather unfounded in today's current landscape. Forget the image you have of the scrawny, pimple-faced hacker or overweight and balding guy in his parents' basement coding away. Many professional programmers today could easily be mistaken for a company CEO. If your programmer takes his time getting back to your inquiries, vanishes for days at a time or talks like he grew up on IRC or Social Networks, he should be dismissed almost immediately.

    • Examples of past work doesn't mean anything. This is not like design work; most programmers do not have a readily available portfolio for you to review. Unless they develop open-source applications in their free time, their previous work was likely for clients who wouldn't be happy with their code being shared. Not to mention they likely have signed NDAs. This shouldn't prevent you from looking deeper into a potential candidate at all. Not to mention, you have no real way to know they code they are showing you is their own and not stolen from elsewhere.

    • Have a small test developed and someone accessible to review the submissions. I generally like to choose something simple, like a Contact Form, for this purpose. Assign the candidate the task, provide him with the specifications and a deadline. Generally, a 24 hour deadline works well. This allows you a look into multiple factors. Did he refuse to "waste his time" completing the test? Move on and tell him thanks, but no thanks. Did he miss the agreed upon deadline? Expect it to happen to anything else you give him. Was his code messy, unstructured or redundant? Was his coding inefficient? Did he go outside your supplied parameters? All reasons to keep looking.

    • "He was recommended to me by a guy I trust". Recommendations from people you trust are a great way to wade through potential hires. Many programmers depend upon word of mouth for ongoing work. However, you should NOT just take their word for it. Even if they did a great job for them, there is no guarantee they suit your project. Moreso, is the referer qualified to evaluate their work properly? What if things appear to work for him at first glance, but fall apart as soon as his site traffic increases? Basically, recommendations should always be considered but they are not the be all end all in your decision-making.

    • Certifications do not make them a good programmer. I have seen Zend-certified PHP programmers whose coding skills left a LOT to be desired. To say nothing of their lack of professionalism or punctuality. While being certified from official sources is definitely a plus, it should not be a major factor in your choices.

    • Can they follow instructions and are they independant? You likely don't have time to babysit, as you are plenty busy with growing your business. Once you have provided concise specifications and deadlines, your involvement should be minimal until it comes time to review the finished product. If someone is sending you IMs and emails all day long, especially with questions that are clearly already answered in the task specs, they might not be who you are looking for.


    CONTINUED IN NEXT POST
    Last edited by Varius; 02-22-2010, 08:40 AM.
    Skype variuscr - Email varius AT gmail
  • Varius
    Confirmed User
    • Jun 2004
    • 6890

    #2
    The Importance of Specifications

    Once you have found someone you think can do the job, you hit the step in the process where most people ultimately fail. Most employers fail to provide the worker with adequate specifications. They describe a project briefly, perhaps provide examples of other sites with similar functionality, but leave many finer details to the imagination. This leads to miscommunication, loss of time and money and ultimately may even cause the otherwise solid worker to abandon a project. Let me show you a very small example showcasing the difference between a good specifications document and a bad one.

    Specifications Example #1:
    • Please create a script which will scrape all the personal ads off Craigslist. Save them in a file. Upload the file to my server.


    Specifications Example #2:
    • Please create a script which will scrape all the personal ads off Craigslist.

    • Only scrape ads from Canada.

    • Create one file per city, in the format: province_city_personals_strictly-platonic_w4m.txt

    • Zip the completed files and upload to my server in the following location: /home/ftp/cl.zip

    • The script should have the ability to resume where it left off should it crash or break.


    Obviously neither of those are complete, actual specifications documents. However, you can see the difference between Example #1 and Example #2. The main problem with the first example (that is the bad one in case you couldn't tell ;p) is that it leaves so many details up to the programmer. It should not be his job to think up possibilities of how you may want things done, or features you may like to have. It is his job to perform the task you specify. Frankly, whenever I have been given incomplete specs, I simply send them back and ask for a more detailed document.

    On the flipside, some people go overboard with regards to specifications and documentation. The programmer often does not need a book to read through; a few simple pages will suffice. Keep it simple and to the point.

    How Can I Keep My Programmer (Happy)?

    Once you have found a programmer you are happy with, you want to keep them happy. After all, you already know how much of a hassle it will be to find another one. The first and easiest way to do that, is with monetary compensation. Set attainable bonuses often. Is he working late again so your project can be finished ahead of schedule? Treat him to dinner or drinks. Buy him that latest tech gadget he has his eye on. In the grand scheme of things, little things can go a long way. Have regular performance reviews and afford raises accordingly. The most important thing to most programmers is the feeling they are being properly rewarded for their contributions to the company; which are often key in the company's success.

    In some situations, revenue or profit-sharing are an excellent solution depending on your company structure, of course. It's a known fact that when an employee shares directly in the success or failure of a company, they will not only be motivated to work harder and more productively, but are MUCH less likely to ever jump ship.

    As long as you don't take your programmer for granted, you should be able to enjoy a fruitful long-term relationship and have one less thing to worry about than your competitors.

    Closing Notes

    To conclude, I hope you find at least some part of this document helpful to your hiring process. While much of it is common sense, it's evident that many out there do not know where to begin when seeking new programming talent. One more piece of advice; if you have a great programmer, keep him to yourself. The moment you start bragging is the moment you find he is no longer available for your work.

    As for those programmers who read this, I hope it highlights some points for you to improve upon your own work and skills. No matter how good you think you are, there is always something more to be learned. There is always a better way to do things. Even after a decade, I find myself learning new techniques and meeting new challenges daily. If you aren't pushing yourself to be better, you might as well find a new profession.

    About the Author:

    An industry veteran of over ten years, Keith is best-known for his time with dating site IwantU.com; he has also been involved with numerous other adult projects and ventures and counts a large number of current adult companies as former clients. He is currently involved in the gaming industry with Sports.com.
    Last edited by Varius; 02-22-2010, 08:38 AM.
    Skype variuscr - Email varius AT gmail

    Comment

    • myjah
      Back in the harbor
      • Sep 2003
      • 11482

      #3
      Excellent addition to this series! Thanks for taking the time to share and participate - this is valuable information for anyone hiring programmers in this industry.
      VP of Marketing
      AVN Media Network
      Skype: AVNJill
      [email protected]

      Comment

      • Cyber Fucker
        Hmm
        • Sep 2005
        • 12642

        #4
        Good info!

        Comment

        • Barefootsies
          Choice is an Illusion
          • Feb 2005
          • 42635

          #5
          Nice one buddy. Good job.
          Should You Email Your Members?

          Link1 | Link2 | Link3

          Enough Said.

          "Would you rather live like a king for a year or like a prince forever?"

          Comment

          • jwerd
            Confirmed User
            • Jun 2003
            • 1953

            #6
            I couldn't agree more with the clear, concise specs. So important when taking on a job or modifying what is already there.

            Great words of advice.
            Yii Framework Guru - Seasoned PHP vet - Partner @ XXXCoupon.com

            Comment

            • 96ukssob
              So Fucking Banananananas
              • Mar 2003
              • 12991

              #7
              great info. i was actually thinking of this over the weekend as I've been struggling with two programmers that I hired.

              Email: Clicky on Me

              Comment

              • SmellyNose
                Confirmed User
                • Aug 2009
                • 206

                #8
                Very nice post!
                I'm a PHP developer - 594086663 - [email protected]

                Comment

                • Got Porn?
                  Confirmed User
                  • Nov 2005
                  • 1264

                  #9
                  Good read!
                  Demo Porn2Go's Plug-In Feeds
                  1st Month Free! No BW Fees!

                  ICQ 303355427 [email protected]

                  RIP TD

                  Comment

                  • sarettah
                    see you later, I'm gone
                    • Oct 2002
                    • 14293

                    #10
                    I was composing a similar post in my head on the way into the office this morning.

                    Thanx for saving me the time and effort.

                    Good post
                    All cookies cleared!

                    Comment

                    • BestXXXPorn
                      Confirmed User
                      • Jun 2009
                      • 2277

                      #11
                      Great post!

                      Can I get the mods to please repost my previous post that was deleted

                      Eric and myjah said they might be able to do that for me ;)
                      ICQ: 258-202-811 | Email: eric{at}bestxxxporn.com

                      Comment

                      • easyBob
                        Confirmed User
                        • Feb 2010
                        • 210

                        #12
                        One thing to note. Make sure your programmer is good with documentation. If they leave, for what ever reason, poor or no documentation/commented code will make any future work much more difficult, and much more expensive.

                        Comment

                        • Varius
                          Confirmed User
                          • Jun 2004
                          • 6890

                          #13
                          Originally posted by BestXXXPorn
                          Great post!

                          Can I get the mods to please repost my previous post that was deleted

                          Eric and myjah said they might be able to do that for me ;)
                          Yeah they said it would be no problem to add your info in this thread as well, I'll send them an ICQ
                          Skype variuscr - Email varius AT gmail

                          Comment

                          • datatank
                            Confirmed User
                            • Aug 2004
                            • 5471

                            #14
                            Wow

                            Generally speaking, a quality in-house programmer should start somewhere in the range of $70,000 USD per annum. Anything less and you face a number of obstacles:


                            Do mainstream programmers even make that much?

                            Comment

                            • Varius
                              Confirmed User
                              • Jun 2004
                              • 6890

                              #15
                              Originally posted by easyBob
                              One thing to note. Make sure your programmer is good with documentation. If they leave, for what ever reason, poor or no documentation/commented code will make any future work much more difficult, and much more expensive.
                              I agree, but as long as the code is clean, well-structured, standardized, modular, functions well named and there are project specifications, actual documentation (while always appreciated) isn't as necessary. Most programmers, even great ones, hate to document. Of course, you may argue they do that for their own job security heh.

                              However, I remember years ago when I worked on someone's code where every variable was named after their girlfriend, their pet's names, what they were watching on tv at the time, etc... What a mess!
                              Skype variuscr - Email varius AT gmail

                              Comment

                              Working...