Why you should hire a Bug Tester, a PM, and 5 programmers for a single job.

I just read an article that sums up my thoughts, but sums them up more eloquently than I ever could.

How to get the most out of outsourced programmers
http://www.forbes.com/sites/entrepreneursorganization/2014/10/27/how-to-get-the-most-out-of-outsourced-programmers/

I didn’t get it — at first
When I first started hiring programmers, I would interview, and then hire whomever sounded good. I was unaware that most programmers don’t follow directions, don’t finish anything on time, and don’t give a damn. The author of the above referenced author gets it.

The trick is not to hire “a” programmer.
You have to test them out and verify how good their work is. The trick is easy. You hire a project manager to watch the entire operation. How you hire a PM is not something I know anything around, but they exist. Next, you divide your task into small pieces. That way you can see if the programming companies you hire get anything done before committing to a large quantity of work. Divide the programming into pieces and hire separate companies to do the graphic work or other niche tasks.

Hiring a separate bug tester
That sounds like an intriguing job. “So, what exactly do you do?” “I’m a bug tester.” If you hire overseas programmers, most of them do sloppy work. I cannot imagine any of them doing clean programming work with great commenting. There is always a huge lack in refinement as well as high turnover. A programmer who is a piece of work will produce a piece of work. The next programmer who has to work on it will have to figure out what the commenting means and will have to spend hours trying to figure out how to adapt the code to remove bugs or add features. The first programmer will undoubtedly quit, and then the second who is hired to fix the first programmer’s work will quit in the middle of the project leaving you with a girl named Sandhia who will patiently work on the project until she gets pregnant and elects to stay home. You will play musical chairs with multiple programmers and end up with sloppy code. However — if you hire a separate bug tester or code evaluator from a separate company — preferably someone high paid who has a very good sense of what quality code looks like, you can see which company is giving you good coders (until the good coder quits or gets pregnant and is replaced by a bad coder.) There are companies in India that actually do have standards, but they are a small percentage.

Testing programmers out
You can give programmers small test projects and have the bug tester see if their work is up to snuff. If not, then don’t use them. The problem as I stated before is that programming houses often replace workers on a whim. If Rahul gets busy, then Vikesh might take over your project. Rahul has been tested, but Vikesh (who nobody informed you would be taking over) just screws everything up and doesn’t communicate.

Having a contract
If you deal with Indian or other overseas software houses, you have to realize that the quality of coding is generally very sloppy and could be referred to as “spaghetti code.” If your contract states that the company doesn’t get paid if they do a bait and switch with their programmers, or if the commenting on the code is not up to snuff, or if there are any bugs or serious issues, the company will be less likely to play tricks on you. Having deadlines that you enforce is critical too. In real life, you might have to kiss many frogs (who find that spaghetti laden ponds are their most well-suited environment) before you find your prince. You will have to fire a lot of the companies who work for you. So, make sure that they pay the bill for screwing up, not you! You will still be wasting your time working with irresponsible people, but let them pay for screwing up. After all, they are portraying themselves as “professionals.”

My advice
Don’t hire companies that charge $5-12 per hour for programmers unless it is standardized work like blog creation or shopping cart set up. Have contracts that state that you don’t pay until a project or part of a project is completed up to whatever your specifications are. Include specifications as to the “quality” of the code to get some assurance that the code won’t be a complete mess. Personally, I would not pay less than $22 for an Indian programmer in 2015. $20 is too much of a standard wage, and those who charge $15-20 are very run of the mill and often mediocre or sub-standard. I would not hire someone who can’t communicate intelligently over the phone in English. I would not hire someone with less than 10 years of experience, but experience alone is not good enough as many lie about how many years of experience they have. Others really do have the experience, but are incompetent in many ways. I would test people out with a few easy math problems over the phone to see if they can think. I would ask a few personality questions to see if they can talk (or mumble well.) And finally, make sure you give two test projects before giving any serious work. The first should be about three hours long and the second should be about fourteen hours long with a tight deadline or no pay! Compare bids on these projects and quality of the coding, how long it took, and how responsive they were. Really test these guys out because most of them are not worth their salt or their “ghee” as the case may be.

Weekly check ups
You absolutely have to check up on your programmers once or twice a week. Ideally, they should send you updates on schedule to let you know what is going on. The minute they start keeping secrets or not getting back to you, that is when you fire them. A programmer who stops being willing to communicate is one who will almost definitely screw up or not finish your project — or worse. You might get in a very bad verbal or legal fight with such programmers. Constant communication is a requirement that should be in your contract. The minute they try to convince you that regular communication is a “waste of time” or “not necessary” or that you should “just trust them” — just fire them! Immediately! No matter what!

This entry was posted in Management, Software Development and tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *