I wrote an article with an identical title a few years ago. It was so popular, I thought I’d write another version.
The psychology of the programmer
Most programmers and outsourcers in general do not want to be watched. They don’t want to be trained. They want to lock themselves in a dark room and just “bang out code.” Unfortunately, in real life I have found that the minute you are not in constant communication with a worker, the quality of their work will slide and the timeliness and efficiency will be very bad as well. Additionally, the minute I am not watching, programmers do off on tangents, start doing things that were not assigned, and waste a lot of resources. Then, when you question them about their failure to follow directions, they often throw a temper tantrum. None of this is acceptable. In my experience you have to micromanage programmers to a particular extent.
Steve Jobs watched his programmers too, but…
Steve Jobs has a similar opinion except that he was much more demanding than I was. He demanded amazing things from his programmers and chastised them if they made any mistakes. In real life, he could get fancy programmers because he ran a very prestigious company. If you hire programmers for odd jobs at a small company, you will not get the best. And if you criticize them too much they’ll quit, or get into a serious argument with you. Steve Jobs was a perfectionist and a visionary. He ran a huge organization with a huge programming budget. He could afford to pay high salaries, demand the best people, and stretch them to the limit. He had the luxury of being able to fire people on a whim if they didn’t measure up to his rigid expectations. Unfortunately, the rest of us can’t really get away with what Steve could. Let’s face it, there will only be one Steve Jobs!
Looking over people’s shoulders
Programmers are notorious about missing deadlines and not following directions. They just don’t know how to manage their time, and they just don’t care about the experience of the client. You need to keep on them and make sure they finish work on time. In fact, I would not hire a programmer for anything more than a test project until you are absolutely sure they honor deadlines which is less than 10% of them. Programmers also rarely follow all of the directions, so you have to always be double checking everything that they do. Programmers will typically blame the client for not making directions clear enough, so make sure directions are in writing. It makes sense to hire an outside consultant to check their code for quality and cleanliness as well. If you outsource to India, you are likely to get what is called “spaghetti code” which is a disorganized mess.
Watching programmers closely will help you spot a bad attitude
Are your programmers blaming you for not giving clear enough directions? Is there some excuse why they didn’t check their work? Do they want to avoid you or not have you constantly check their work? These are all signs of a bad attitude. Unfortunately, most programmers who work for anyone less than Facebook, Google, or Steve Jobs have a terrible attitude as they are the bottom of the barrel. By keeping a constant vigilant eye on them, you will spot their bad attitude quickly which could save your project.
The moral of the story
Most companies don’t want you watching what they are doing, and neither do most employees. The collective pressure to not pay attention to where your money is going is so oppressive that you might be tempted to give in. Steve and I say don’t. Watch people carefully and you can bring out their best. If you don’t pay attention it will be like a money drain. Fire people who don’t want to be watched as fast as you can. If that means your business will be smaller, that might be a good thing. The main thing is to be in control of what is going on. The minute you’re not in control — you’re in trouble!