Category Archives: Software Development

Outsourcing programming work vs. Offshoring; what’s the difference?

Categories: Software Development | Tagged , | Leave a comment

Outsourcing Defined
Outsourcing is commonly thought to mean the offshoring of American jobs to some less deserving foreign destination. However, outsourcing means to hire an outside company regardless of location. They might be down the street from you, but it is still outsourcing if your company hires them to do a task for you. Offshoring means to hire staff or create an oil rig not on your shore. It might be on an island, in the middle of the sea, or in a foreign country.

Hiring Programmers
It is common for Americans to hire companies overseas to handle programming tasks for them. India is the most famous in this niche while Eastern Europe has many companies that are often better than their Indian counterparts — at least for now. If you hire overseas, your choices include:

(1) Having an overseas company do jobs for you on an on-call basis, or work on a specific project until its completion.

(2) Hiring an overseas company to do a specific amount of hours a week for you such as 10, 12, or 18 hours a week.

(3) Hiring a dedicated half-time or full-time employee from an IT leasing company. This allows you to interview the indivual programmer and perhaps communicate directly with them more easily.

(4) Hiring your own employee overseas, or perhaps creating your own office.

Problems with overseas companies
The problem with hiring overseas companies to do tasks for you is that they typically have one or more project managers, and many programmers of varying skill levels. The high quality programmers are normally either completely unavailable because they are working on a large project, or they might have a little bit of time. What normally happens is that the company will try to stick you with one of their worst programmers, or at least a very mediocre one at best. You won’t be able to get quality work done with them. So, you go to another overseas company and the same thing happens a second, third, tenth, and one hundredth time. By now, you’ve learned your lesson. Hire the programmer before you hire the company. Even if you get a good programmer, there is no guarantee they won’t quit, die, get pregnant, or get run over by a rick-shaw.

Hiring your own staff
In my experience, I tend to get much higher quality work done when I hire myself. I am very picky, and only hire people I am confident in. Whenever I hire an outside company, they typically pick workers who are either poor at communication, unfriendly, not particularly talented at their task, or who quit when I need them most. You can hire your own staff in India. You can hire freelancers. You can hire someone full-time who will work from home for you if he/she has a good internet connection and reliable electricity (which is a big problem in India.) You can also rent your own office space in a place with reliable electricity and hire your own people.

My recommendations
If you need only part time help, try to find a reliable vendor in India or Belarus and interview the programmers one by one until you find one programmer and a few backups who you can test. If you need a single employee, an outside vendor or leasing company might be your best option. You still need to interview and give quick tests to the programmers to keep them honest. But, if you need two or more full time programmers in the long run, it might be better to look into getting some office space. Here’s why.

Get your own office in India
Getting anything done in India has a lot of red tape. You can get an office there, but it doesn’t need to be under your name. You most likely will not be there to manage it in any case, so you will be forced to rely on others. Be wary of the fact that people in India don’t always do what they are supposed to or what they promised to do, so you will have a few surprises along the way. Try to be tolerant of a fair amount of nonsense if you are able to get your office to function. The real benefit here is that you are no longer at the mercy of other companies for picking your employees. You pick them yourself. You would have to visit India and make some new connections which may or may not work. In the end, it may be easier to have your employee work in some other IT company’s building under their supervision if you give them a fee for their cooperation.

Optimize personalities & skill levels of the programmers
When I work with employees at other companies, I am never completely satisfied with their work. Some are fairly good, while most are miserable. If you can pick your own staff, you can pick programmers with exactly the type of personalities and skill levels / skill sets which you need for your business. If you like them a lot, you have the freedom to give them larger raises to increase the likelihood that they will not quit. In India, programmers like to play musical chairs and change jobs every few months. If you are running a serious operation, you cannot afford this. Give them good working conditions and pay so that they will stick around. You are running a company, not a circus after all.

Hiring Programmers? How to spot a reclusive geek!

Categories: Semi-Popular, Software Development | Tagged , | Leave a comment

Many of us hire programmers from time to time. But, learning how to understand these bizarre personality types requires training. They are not like the rest of us unless they are in a management position of some sort.

There are many types of personality traits common to programmers.
Some are gentle, others are hostile, a few are brilliant, many are actually mentally impaired or behave that way (how can they write code if they can’t think?) The one trait that the majority have in common is that they are anti-social. Programmers normally lack the skill to interact with others. But, the worst part from a management perspective is that they lack the desire to interact positively with others.

Many Programmers Many Cultures
I’ve hired programmers (or tried to) in a variety of cultures ranging from American, Latin, Indian, Filipino and Eastern European. The cultures are all different, but the traits of programmers maintain a similar theme. The Americans are better at communicating although they typically choose not to. They often will complete a task, but fail to inform you of that fact unless you harrass them many times asking, “What’s going on?” The Indians are generally more friendly which is a cultural reality, but often lack the skills to answer simple English questions. I always ask them what they would do if they won a million dollars. The answers are typically no more than eight words which is not very detailed. My Costa Ricans offered to do a test project for free, but went on vacation in the middle of the 2 hour project and never came back. Eastern Europe was more polite as a destination, but bizarre. When I asked the million dollar question I was informed that it was a complicated quesiton and that he needed to think for a very long time to answer it. All I wanted was a quick answer to verify that he was able and willing to communicate in simple English sentences.

Big Trouble Awaits if your Programmer Refuses to Communicate
Please be informed that hiring someone unwilling to communicate can undermine very expensive software projects. You might be paying $50,000 to get some coding done, and the programmer will refuse to answer calls, will never even email you back, and doesn’t want you around. What if there is a problem with the project and you are forced to interact with them and they won’t? Or what if they are so anti-social and irresponsible that they quit in the middle of a project? Finding a programmer with semi-decent social skills is critical for your survival, so pay attention to this during the interview process.

Telltale signs to identify an anti-social geek.

(1) Sitting silently at the interview
Have you ever gone to a programming interview where the programmer and the project manager are both there? The project manager by nature wants to dominate the conversation and impress you while the programmer might be sitting silently for hours. This is something you might ignore, but it is a serious warning sign. If you are going to have any serious dealings with the programmer, you might be in for some real trouble. At the critical moment, he might just dump your project or refuse to communicate. This happened to me.

(2) Having the receptionist always be your point of contact (avoidance)
You interview the company and you are impressed that they answer the phone whenever you call them which is only true of about 20% of programming companies. Most programming companies avoid their customers (and humans in general) and don’t want to answer their phone. I found a company that always answered the phone. The problem was that the “go-between” assured me that she would be able to give me all pertinent information about the progress of my project and not to worry. The programmer was “busy” and couldn’t be interrupted… ever. The problem here was that the programmer was UNWILLING to talk to me, and that the go-between receptionist was cut off from accurate information about the project since the programmer didn’t record any records of what he had actually done (or not done.) Yes, it is true that programmers like to lock themselves in a dimly lit room and write code. Yes, it is true that they should not be interrupted all the time. But, if they are never willing to talk to clients, that is a serious problem that can sabotage your working relationships which can be expensive if you gave them a hefty deposit.

(3) Failure to answer emails
Sure, we know that programmers don’t like to talk on the phone. But, if they just never get backto you even by email to give you a head’s up confirmation of what’s going on, that can be a serious problem. If a programmer just doesn’t get back to you, and you always have to chase them down, that is a sign that they are not responsible, anti-social, and that they don’t care that much about your project.

(4) Unwillingness to answer the phone
Is your programmer always at lunch or in the bathroom when you call? They are avoiding you. Perhaps they hate their job, their life, their boss, or you. Perhaps all of the above. This happened to me, and my project took forever to finish. I had to call eight times to get through to this person once. If a programmer you’ve worked with for years develops a bad attitude, it is time to try someone new.

(5) Failure to coordinate at the critical moment
I was visiting programmers in Northern California. I went to Yosemite to relax for a few days when they went away on a quick business trip. They were supposed to tell me when they would be back, and when they would be ready to show my their last bit of work. I never heard from them and didn’t know if should start driving back or not. They left me high and dry.

(6) Missed deadlines
If you hire a programmer on a critical time-sensitive project, you will find that 90% of programmers who don’t work for huge companies on multi-person projects just ignore deadlines. They couldn’t care less if they inconvenience your schedule. They might keep you waiting for months, or just quit in the middle of the project without even telling you they are unwillling to complete it. If you deal with programmers you need air-tight contracts that will penalize them severely if they don’t finish their work correctly and on time. It is best to test a programmer out on a project that takes about 12 hours with a written deadline. You will lose $1000 or more, but you will know if they honor deadlines. Most programmers never honor any deadline and just don’t care if they lose their customer. Customers grow on trees these days, and if you drop out, someone else will give them a deposit who they can string along. If a programmer misses a deadline, see how much longer it takes them to finish work. If getting the work done depends on your initiative, it is time to sift through many more programmers until you find one who actually takes responsibility for their commitments.

(7) Inability to answer simple questions
If you hire foreign programmers, this is a much more serious problem. If you can’t answer simple logic or small-talk type questions, how can you possibly write code? The answer is that those types of programmers are the ones that create shipwrecks for American companies who try outsourcing for the first time. They are left with a mess of broken code and often have to throw the entire mess out and start all over again. If you can’t communicate, you can’t code properly. If your communication is a mess, your code is probably a mess that nobody else will be able to work with. If you communicate sloppily, your commenting on your code will be unintelligible to the next programmer who works on it which means you created a dead-end for your client.

Advice: Interview the programmers first, THEN the project managers and salespeople.
If you hire programmers, there is an order of people at the company who you should talk to first. The sales and technical managers will always insist on talking to you first, middle and last, leaving the programmers completely out of the picture. That is what is in their interests, but not yours. The programmers are the ones who actually do the work, and if they cannot function as intelligent human beings, your code will come out a disaster. Interview the programmers first. Typically at Indian companies, they hire people who can’t even function at coding and can’t function in a conversation. See if you are impressed by one or more of their programmers. If you are impressed by all of their programmers you might be in business. 80% of programmers I interviewed in India who were fluent in English could not answer simple questions that an American ten year old could probably answer.

Test companies out
Test people out to see if the programmer initiates communication and answers email
Test the programmers out to see if they answer the phone. If you only call them at the time of the interview, that is not an indication that they will answer the phone during normal times of business.
Test the programmers out to see if they are sloppy. Give them a small task that involves following directions
Test the programmers out to see if they miss deadlines. Give them a 12 hour project with a deadline. See if they finish by the deadline with correct work.

Good luck hiring programmers. Most of these people avoid contact with humans. But, if you can find one who is relatively responsible and considerate, you might be in luck.

10 Mistakes I made hiring programmers that you should avoid

Categories: Semi-Popular, Software Development | Tagged , , | Leave a comment

Here are some of the biggest mistakes I made hiring programmers. To an average person, they might not look like mistakes. But, once you get a little experience in this domain, you will understand why what I did wrong was so wrong!

(1) Initiative (or the lack of it thereof) The Los Angeles Programmer
The first programmer I hired was actually the best I have ever hired. However, he lacked a desire to get things done for me. I had to crack the whip, and visit with him regularly to coerce him to finish work. My mistake here was that I didn’t shop around to see if there was anyone else who had comparative skills accompanied by a little more initiative.

(2) Interviewing without testing: The North Coast Programmer
Many years went by and then my first programmer quit, and his helper got fired. I was left high and dry. No programmers, and no way to find good ones in a world-wide situation where there was an acute shortage of programmers. I interiewed several companies I liked. I tried to decide which company to hire purely based on an interview which was a huge mistake. The interview only tells you one dimension about a person — how they communicate when they are trying to impress you. It doesn’t tell you how they work, or if they get things done on time. The company I hired disrespected all deadlines, and even tried to cheat me several times. After that I learned that you have to try companies out with small inconsequential test projects before giving them the passwords to your main sites. Additionally, they tried to get me to communicate with the “project manager” instead of the programmer. But, the project manager didn’t make sure anything got done and was completely useless. So, when anyone tries to block critical channels of communication — fire them.

(3) Knowing the boss, but not getting to know the programmers: An India programming nightmare
I had a bad feeling about this, but I had no choice. I needed my site to be in someone’s hands who I trusted. I had known Deepak for years. So, I offshored my project to India. The first programmer he gave me was very acceptable and did good work. So, I handed my project over to Deepak. Little did I know that his programmers had gone far down hill in the last few years because the big companies worldwide had been poaching quality programmers. So, I started out with a programmer who just couldn’t function, and then fired him and moved on to another one of Deepak’s programmers who was better. She left on maternity leave and then I got a third one who was somewhat capable of doing my assignments. Had I interviewed these programmers by phone individually, and tested them on small test projects before allowing them to work for me, I could have avoided the dysfunctional results given to me. Now I know.

(4) Communication seemed open, but was blocked: The Arizona dry spell
I gave assignments to a number of other programmers who all went on strike until I found a company who seemed promising. First of all, they answered their phone. I was happy that they kept their channels of communication open as closed channels can ruin projects and have become a deal breaker for me. The trick was that they changed their willingness to communicate the minute I put my reliance in them. I could talk to the receptionist who assured me that she could relay any critical information to me. The problem was that they forbade me from talking to the programmer in critical situations and the contact person was never given any critical information unless I harassed them many times. The result was that the programmer either didn’t finish work correctly or at all, or made some serious blunders which never would have happened if he would just double check his steps with me. But, his attitude was that I didn’t know anything so I should just stay out of it. The reality is that he doesn’t know a lot of things about my site that I do know that he could have found out if he would just answer is damn phone! This was one of many deceptive things programming companies have done to me.

A quick note – Open Channels of Communication are imperative
I have a rule that all channels of communication need to be open. I need to be able to reach the programmer, the boss and the project manager if there is one. If one of these channels is blocked, then I fire the company immediately. However, if the programmer is busy and doesn’t want to be bothered — I don’t mind communicating with an intermediary some of the time if it will make it easier for them providing that they don’t cut me off completely from communicating with the programmers. Most companies don’t want you talking with their programmers, so this is a constant issue. I just tell them I’ll fire them if they don’t cooperate on this front, or that I won’t hire them for any serious work if they block communication even once. You have to stand your ground or they will keep you behind a barrier nine times out of ten.

(5) Silence at an interview: The beach programmers
The boss said that none of his seven programmers were willing to show up at an office. Later on I suspected that there were no seven programmers, just the one who showed up at the interview and sat silently for three hours while the sales manager chatted me up. I didn’t realize that someone who sits silently for so long is a huge risk. Such people do not like humans and don’t care to interact with my species either. They are dangerous if you put them on a project. Here’s what happened. We did a little test job and looked at the site at a cafe. I drove down to see them. After he had agreed to take my project and give me 20 hours a week, he delayed finishing the test project, and after I spent $800 on hotel rooms he uttered the words, “Another project” and just quit altogether. Antisocial people do antisocial irresponsible inconsiderate things. Beware. Nobody is perfect, but antisocial people are much more dangerous than the average person. Additionally, these programmers went on vacation all the time and “brought their work with them.” I don’t know if their vacation schedule caused a problem, or just their attitude of doing whatever they felt like, but too many vacations could be a warning sign.

(6) Giving the code without a deadline in Orange County
I met a nice guy in Orange County. I really liked him and he really liked coding. He described himself as a cracker jack of coding. He seemed like the gentleman of the business. Sociable, smart, nice and trustworthy. After waiting six weeks he informed me that he couldn’t start my assignment because it was in PHP and he didn’t know PHP. The code was in ASP Classic, and he had not even looked at it because he had, “Another Project.” Now, where have I heard this before. If I had given him a 20 day deadline to fix some code which only would take a few hours, then I would have been able to give the job to the next guy in line without such a long delay while my website wasn’t functioning correctly.

Another Quick Note – “Another Project”
The biggest reason why a programming company will not finish work for you, or talk to you is because there is, “Another Project.” If you test programming companies out, see how well they get your work done if they have, “Another Project.” Otherwise you will be on the back burner until you dump them for another company who does the same thing.

(7) Not getting a bid
There was yet another programmer who I really liked. He was decent to me for the most part. He had done several small projects for me. They weren’t necessarily done on time, but they got done. So, I gave him another slightly more complicated project. It took twice as long as I thought necessary and was done wrong. If I had had him give me a formal estimate for the project, I would be able to hold him responsible for fixing it and getting it done according to specifications by a certain date. yet another mistake on my part because I had developed trust in someone. Even if you trust a programmer, for well defined tasks that take more than 10 or 20 hours, get a formal bid.

(8) Testing them on easy stuff only
I learned the hard way that you have to test companies out before using them. So, I tried yet another California company out. I really liked the boss. They got 100% on my project and finished it quickly. Then, I gave them a complicated assignment and asked them to bid on it. Their bid was double or triple what I thought a top-notch programmer would charge. Were they cheating me? Were they just being careful? Or was their programmer not as senior as they portrayed him to be? A junior programmer would realistically require as many hours as they bid. The problem was that I tested the company out on easy work, but didn’t test them out on complicated tasks before hiring them. It is good to have a comprehensive score sheet on any company you hire that covers communication, meeting deadlines, efficiency, cleanliness of code, and how they function on different levels of complexity. I made exactly the same mistake with another company in India who did exactly the same thing. They did great on my test project, but then bid 800 hours on a 100 hour project that was slightly complicated. Once again, I fell into a pitfall and learned the hard way.

(9) Not having backups
I hired programming companies without having qualified backups. The result was that when they started being irresponsible I couldn’t just fire them because I had nobody else to dump my project on. I had already run through my supply of people I thought were my backups. They wouldn’t call me back or cooperate. A backup is not a backup unless you know they are going to perform reasonably. Otherwise it is like walking on a frozen pond. You put your foot on the ice and it breaks. Then you step to the left to your backup spot on the ice which also breaks, then you go back one foot and it yet again breaks. You need to find ice that doesn’t break even when you pound on it — then, you have a back up. If Warren Buffet were hiring programmers, he would probably have at least four meticulously tested backups at all times for security if he had a serious project as an entrepreneur.

(10) Giving deposits without a contract in the Bay Area
I have given many people deposits. One company in the Bay Area took my deposit and left me high and dry. I couldn’t get the programmer to return calls. I had to keep calling his boss just to get him to get back to me. What is the problem? I finally gave up. I let them keep the deposit. But, honestly, you have no leg to stand on if you give an unreputable company your deposit. And you have no way to know if the company is reputable unless you work with them. Most companies don’t have that many reviews on the internet, and those are not always trustable interviews in any case. If you have a contract that stipulates that work must be done to specifications by a certain date otherwise you not only give the deposit back, but pay a penalty for wasting my time, then it is easier to sue them when they screw up. Getting them to sign such a contract might be close to impossible, but you need some device to ensure your safety, otherwise you are gambling. Programmers are so busy these days that if you don’t pay up front, perhaps none of them will work with you! So, you are not in much of a bargaining position. So, having a contract is just a thought.

Today was the best day of my life!

Categories: Of Interest, Software Development | Leave a comment

We all have good days, but today was the best day of my life in many ways.

I had a migration that I had tried to do since January of 2013. Every programmer I put on this task failed miserably. One couldn’t connect with the server and couldn’t function communicating with the server company. The next one cheated me and never finished the job leaving me with a huge and unreasonable bill. I had other programmers offer to help me, but they all left me high and dry. One programmer charged me a deposit and then didn’t finish what he was working on. Finally, I found a programmer I liked, but he was really busy. He finished the migration, but he was on the project for five months. My old server was getting slower and slower, and I am relieved that nothing horrible happened to it otherwise my data might have been compromised in some type of small way. Since I had multiple backups, we only would have lost a few weeks of data, but to me that is very serious. In any case, I am relieved that the task that haunted me is finally done.

To celebrate, I went to a very elite Chinese restaurant in Beverly Hills and ordered some duck dumplings, basil sea bass, and quail. I wanted to get things that were different and boy were these different. It was a fun experience, and perhaps I’ll go back to Hakkasan!

Then, I had a massage which was very relaxing. The masseuse asked if I had smoked any marijuana since I was so happy. I said, no, but I was happy because two of my three largest recent problems had been solved! We had had a huge noise disturbance in my building with someone who played techno music 24 hours a day. I heard the bass and the boom boom boom of the beat softly in the distance and couldn’t sleep properly. What a nuisance. I had to talk to security seven times to get them to solve this problem. Why can’t they just fix things the first time around?

Sometimes I feel that all of the problems I have experienced in life are to prepare me for some future existence managing difficult people. Maybe I will die and be reborn into a business family and need to understand how to deal with complicated situations.

Last, I had a fun writing session with my writer and we created five new blog entries which are funny and entertaining with useful business tips integrated into the comedy as well.

So, today was a good day. I wish I could have more wonderful days. But, to have a great day, you have to have many troublesome days that are solved in that good day. I guess you can’t have the bad without the good. In any case, I want to take a nap and enjoy my relief! I’ll talk about my third unresolved problem later!

Alphabet — a collection of companies including Google

Categories: Software Development | Leave a comment

There is a company which will serve as an umbrella company called Alphabet. Google will belong to Alphabet. However, Google’s co-founders Larry Page and Sergey Brin will be running Alphabet. It looks like a new structuring for an existing empire. The next bit of news is that Sundar Pichai is taking over as CEO of Google. Sundar has been working at Google since 2004 and worked his way up to vice president of product.

The other departments of Alphabet will focus on Google contact lenses, driverless cars, drone delivery, robotics, and more. Alphabet will have several companies immediately under its umbrella which consist of Calico, Nest, Google X, Google Ventures, Google, Fiber, and Google Capital, while under Google’s authority will lie Android, Search, YouTube, Apps, Maps, and Ads.

The newer and independent companies will have more freedom to take risks investing in experimental projects such as driverless cars, etc. Google stock is up as a result and profits were healthy as well for Google.

Alphabet will trade under GOOGL, Tech30 and GOOG ticker symbols. But, this is confusing to me as GOOG stands for Google, not Alphabet in my mind. I think that Alphabet needs to coin their own ticker symbol — something like ABC for example?

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

Categories: Management, Software Development | Tagged | Leave a comment

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

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!

Hiring programmers is like dating a guy if you’re a straight guy!

Categories: Semi-Popular, Software Development | Tagged | Leave a comment

What a bizarre title!
But, it’s kind of true. After working with different programmers who were all men (there was one woman, but she didn’t return my calls) I came to this ghastly realization. I began to feel sorry for women as a gender for having to put up with us. Men are rough, gruff, uncommunicative, make decisions without consulting others, don’t get back to you on time, do whatever they want, and don’t always care much if at all about your general welfare.

As a straight guy…
I never thought about what it would be like to date a guy. I don’t date much, but if I do, I assure you it would be with a female member of my species. For a woman or a male client of programmers it is hard. You are completely at the mercy of this guy who does whatever he wants and doesn’t care about your opinion. If they screw up, modules of your site could be dysfunctional, unusable, or just entirely down. I began to think like a woman after a few failed relationships with programmers. (BTW, I have nice programmers now [2014] who do not cause trouble)

Why can’t they just LISTEN?
First of all, the main complain that women have about men, is that we don’t listen. I don’t necessarily need these programmers to make suggestions — I just want them to listen. Many programmers take offense if you have an opinion, because after all, what could YOU possibly know about programming. The answer is that I don’t know anything. However, I do know what the long term consequences to my business are for programming strategies that are not sound. If a programmer does too much on a huge project without letting me check anything step by step, for all I know, they could be handing me a pile of useless broken code. I like to go step by step and make sure everything is working before moving on. I want my opinions to be considered — and I am happy to hear the opinion of the programmer too, so long as my comfort level oriented considerations are integrated into the project without a fuss.

Can’t they be a little more like James Bond?
Most girls want a guy who is like James Bond. He dresses well, smells good, always is confident and has perfect manners. In real life, guys are not like this, especially not programmers who are more like inverse-James un-Bond. How they dress is a smaller consideration. But, how they are often unwilling to interact, be friendly or personable makes me uncomfortable. In my experience workers who don’t like to communicate like to avoid their clients and never do very good work simply because they don’t like you and they don’t care. How people answer the phone is another indication of professional behavior. If people answer saying, “Hello,” or have an answering machine which doesn’t state their name or company name, that makes me very uncomfortable. For girls it is more about the image of a James Bond type guy that they like. For me it is more about the indication of a seasoned professional who will be helpful and trustworthy in all actions — which is a purely practical concern. After all, I am not a girl even if I have learned to think like one.

How can I manipulate guys like girls do.
I am a guy. For me when I see other guys, I chat with them. I am not intimidated by them if they are huge and muscular, or if they are way out of my class and drive a Bentley. For me guys are guys, and unless they are outwardly hostile or offensive, I feel comfortable with guys from any culture, class or background. I am less conscious of them in terms of their “level” as I don’t size them up like women do. Women know how to size up a guy, know what his strengths and flaws are before he opens his mouth, and they know how to manipulate them too. If you hire programmers, you need to know how to keep them under control, because they have a way of going their own direction the minute you are not watching them. Girls are experts at this. Why can’t I learn to be a professional at thinking like a girl? Do you kill them with kindness? Do you flatter them and bat your eyelashes? They you threaten them and make demands? Or do you simply act polite, tell them what you want, and tolerate exactly the right amount of nonsense. After all everyone will give you some amount of nonsense, the key is to know how much is too much!

To make it short, if you are in a profession that involves hiring others who are more powerful than you are — and by more powerful I do not mean richer, smarter, or more powerful in general — I mean more powerful in how critical they are to your project, then you need to learn to think like a girl. They are in this position their entire lives having their means for survival dependent on the guy they date or marry (unless they have a considerable income on their own merits.) Having a relationship with a programmer is the closest a straight guy will ever come to anything that resembles dating a guy.

To end a software development relationship, you could use the Seinfeld approach or these other crazy lines:

“It’s not you, it’s me”
“The commenting in the code didn’t let me comment back. Are my comments not important too?”
“Why can’t your style of coding be more like Andy’s — his is so efficient with all of those multicolored lines!”
“I think we should see other developers.”
“I love you, it’s just that I need a PHP developer who understands me better.”

Star Wars: Dearth Vader outsources an IT project to Tatooine!

Categories: Humor, Software Development | Leave a comment

Please note that the characters and references in this article are based on American television and movies. If you are from a country that didn’t have our media presence, you might not understand who the characters are. As I was taking my afternoon walk, I fantasized about how interesting it would be if the main characters from Star Wars (1976) had dialogues resembling the ones in the American sitcom Seinfeld. As I walked, I thought that princess Leah would make a great Elaine from Seinfeld. Han Solo has the same sarcasm as Jerry. Luke unfortunately is too innocent and optimistic to be a Seinfeld character. Lando could be George. But, who would be Kramer. It could be Obi-Wan, or Darth Vader. Hmmm.

After the movie Star Wars was made. There were many changes in the galaxy, and in the Federation. Darth Vader got sick of being on the dark side of the force and just wanted a simpler life. Lando kept thinking of scams that could get him ahead at work. And Han Solo, just got more and more cynical about life.

LEAH: I can’t believe this happened. He said, it’s not you it’s me. I invented that. That’s my line. I should be the one who says it’s not you, it’s me.

HAN SOLO: Well, maybe in this case it really is him.

LANDO: I hate it when people say that. If they say it’s not you, its me — then it’s you. If they say — I think we should see other people, it means they already are.

DARTH VADER: You gotta see this. It’s a new spaceship. You gotta see the brochure. It’s only 500,000 federation dollars!

LANDO: Well, is it good on fuel efficiency?

DARTH: It doesn’t use fuel, it absorbs the energies of the universe around it.

HAN SOLO: Better steer clear of you when you wake up in the morning.

DARTH: I’m not a morning person.

HAN SOLO: I’d hate to hear how deep your voice is then.

DARTH: Hey Leah, guess what I just bought. It’s sitting on space dock #9

LEAH: That’s yours? Get OUT! (pushes Darth)

DARTH: Well, I need it. Ever since I left my military post, I’ve been running my own business doing droid programming outsourcing. Sometimes I need to go to Naboo and Tatooine to visit the programmers. In fact, I’ve got to go now before the exchange rates change.

LEAH: May the force be with you. The good side of the force, that is.

HAN SOLO: What’s the deal with this thing called the force? When you think about it, it’s a little creepy. I’m not sure I want the force being with me all the time. A little here, a little there when you need to get something done I can understand. But with you 24/7? I need my alone time. I need my space.

LEAH: This is Star Wars. We all need our space! That’s where we live.

HAN SOLO: And “force”. Right away, it conjures up doing something against my will.

LEAH: Okay, okay. May the… something short of force be with you, when you don’t need your space.

HAN SOLO: (to Darth) Speaking of needing your space, how come that face helmet you’re wearing doesn’t cramp your style?

DARTH: Don’t knock the face helmet, Han. The savings in breath mints alone makes it a worthy investment.

Darth takes off in his new space ship.

HAN SOLO: Thank God for breath mints. That’s a force I don’t need with me.

Leah nods her head in agreement. Cut to Darth and Vipool in programming.

DARTH: Hey Vipool, how’s it coming with the programming for R2D2?

VIPOOL: Oh sorry. My programmer who specialized in R2 units just got poached by Infosys. My other guys only specialize in Androids and mobile apps.

DARTH: Well, now what am I supposed to do? I could just strangle that guy while breathing heavily through my black mask!

VIPOOL: I just dig your new space ship. Does it still have that new space ship smell?

DARTH: Ooh baby. You know it. Maybe you should have some type of a contract with those programmers to make sure they don’t get poached.

VIPOOL: The only ones who would sign it are ones who I don’t want to keep anyway. It’s a bit like dating.

DARTH: Tell me about it. My love life has sucked ever since puberty kicked in and my voice changed.

VIPOOL: It’s hard to imagine you without a deep voice.

DARTH: Oh, I had a deep voice at birth. At puberty, it changed to the lilting soprano you hear now.

VIPOOL: You call that a lilting soprano?

DARTH: Compared to my voice at birth, bingo.

VIPOOL: So, how are we going to get a new programmer for R2?

DARTH: What do you mean how are WE. How are YOU? If you don’t get a replacement soon, I might be tempted to return to the dark side of the force.

VIPOOL: Chelsea Handler is better off there on her own. I can put a junior R2 programmer on the task tomorrow. Do you want one resource or two?

DARTH: If he’s a junior programmer, he’s more of a liability than a resource. Use the force, Vipool.

OBI-WAN: Darth. I know you’ve come a long way since you struck me down. I will help you. I will help you find a new R2 programmer who specializes in droid migration technologies. The force will be with you.

DARTH: I feel a presence that I haven’t felt in a very long time. Obi-Wan. My teacher. You have come to help me! Wait. The answer is coming to me. I need to outsource my project to a different star system. I am feeling it now. The moon on Yavin — yes, they will have R2 programmers there, and the exchange rate will be one Federation dollar for every 3.5 Yavinese Dinars. I will fly there immediately.

HAN SOLO: Why do people make the jump to hyper-space? Half the time, people haven’t even analyzed the coordinates to see where they’re going. It’s like telling Siri, “Take me frickin’ anywhere.”

LEAH: Siri. Didn’t you used to date her?

HAN SOLO: Yeah. She’s great at giving directions, but wasn’t great at taking them.

LEAH: I can’t believe it. The Death Star’s plumbing system is being completely overhauled. There’s never a good plumber when you need one.

HAN SOLO: Didn’t you date a plumber once?

LEAH: Like I said, there’s never a good plumber when you need one.

LANDO: I have to go down there to renew my intergallactic driver’s license. Believe it or now, I”m authorized to fly a ship up to 10,000 metric tons. I lied on the application. I told them I had five years experience flying medium sized ships.

LEAH: Why do they still call it the Death Star? Since Darth turned to the good side of the force, it’s become just like a regular place.

LANDO: Too expensive changing the name on all the Death Star tchotchkes.

This short satire ends with Darth going to a new star system and hiring new programmers. Yavin’s moon has programmers who don’t have any aspiration to get married. They aren’t attracted by the status of working for a big company. They’re just happy working for the same company year after year. And since the average inhabitant of Yavin’s moon lives to be 392.5 years old, the average worker has several human lifetimes of experience before they retire. Including being phased out by employers who fire them when they reach 265 for cheaper labor. Darth Vader had used the force to find programming staff that were the smartest in the universe. These did NOT include any TV network programmers! Thus ends this episode of Star Wars with Seinfeld type rules!

A programming company that charges $25,000 per week?

Categories: Popular Posts, Software Development | Tagged , , | Leave a comment

OMG! I can’t believe they charge so much. Why is this?

I interviewed a company in Florida. They seemed like the best programming company in the world. They assign you a team of four members, and they will prepare the specifications ahead of time of what they are going to do for you. Then, they will work for a week or more and get your huge project done with a bang.

My worry was that if they needed me in the middle of the project and I was not available, what would happen? At $4000 a day, if there is any small problem with the server, you are out $500 per hour while you wait for solutions. What if, what if. I think that if I were a larger company, and knew these guys better, the arrangement might make great sense. I asked if there was any other way to proceed, but they said that was their business model. It is an interesting business model, but scary for me.

When hiring programmers, be aware that there are many programmers out there with different levels of expertise, caution, care, and styles of getting work done. You need to find someone who works on your speed and who gets along well with you. Personally, I prefer to do between two and fifteen hours of programming per week. That way I can be involved in the process and make sure everything goes right. But, your style might be completely different. Good luck, and start saving up for your $25,000 week today!

24 tech workers for each manager?

Categories: Management, Of Interest, Software Development | Tagged , , , | Leave a comment

Too many Indians and not enough chiefs!
I am always amazed by India. India has mastered the art of spreading valuable assets thinly. The meat is tiny pieces in Chinese fried rice in India. The portions of chicken are minute in biryani (to my dismay.) Managers are also spread thin at Indian software companies.

Managers are expensive in India
The reason why the ratio of managers to workers in India is so bad is because the pay rate for managers is very high since managers are in such short supply. In America, a manager might get paid 20-100% more than a worker. But, in India, a manager might get paid 2x to 8x the amount a worker gets in a high tech company for example. I don’t know the exact number, and the numbers change over time — but, this is the approximation of the reality.

You can’t watch your workers
The problem with having too many workers and not enough managers is that you can’t really watch your workers if you are so spread out. If you have self-managing workers, you don’t need to watch them much, and you don’t need to critique their work.

My way of looking at this problem is as follows.
If you have twenty-four workers who are all completely self-sustaining and know exactly what to do with hardly any intervention, then you might be able to have ten or more to a manager. I’m not sure if twenty-four works even under ideal circumstances. But, many workers play tricks, or don’t know how to get things done. If you have a team of twenty-four, it is likely that many will be trouble in some way, shape or form. New workers who have not been screened should ideally be placed in smaller teams so their work can be evaluated. If they do flawless work and can function without intervention, then perhaps they can be transferred to a larger team. New workers and problem workers need to be in smaller teams where you can keep more of an eye on them. In my opinion, the value of a worker is proportional to their productivity minus the amount of hell you go through trying to manage them. In many cases, many workers might have a sub-zero value (put on your sweater and winter hat.)

My personal story
I have too many things to do and several people to manage. I can’t manage them and do my own work at the same time. I have to put something on the back burner since I’m so busy. Unfortunately, it is common for me to get behind trying to manage my programmers. I just wonder how far behind a manager with twenty-four workers gets? Perhaps they just are not really managing those people at all…

From 500 programming houses worldwide down to a dozen?

Categories: Semi-Popular, Software Development | Tagged , , , , , , | Leave a comment

It is sad to say, but when you boil it down, you get the bottom of the pan, and no usable substance. I am referring to outsourcing companies. We did an experiment where we called 500 programming houses specializing in internet programming. They specialized in .Net, PHP, Java, and other online applications and languages. Most of them either didn’t answer the phone or couldn’t communicate properly. But, the ones who did answer failed our bid project.

We asked people what they charged first of all. Most companies were charging so little, that we couldn’t imagine them being any good. In my experience, someone who charges $15/hour for programming will be so bad, that they will be a complete waste of time. So, I tried to find more expensive options, but those turned out to be a disaster too in terms of the efficiency of their bids, etc. I tried to find American companies to help out, but they were too busy to assist.

We called companies in Europe, America, and India. Those who answered the phone and could communicate well, were given an easy test project to bid on. Our goal was to see if they could bid properly. The mark of a true professional is their accuracy and reliability. After we got our bids together, we found that only about 10% of the companies who could communicate well (which was only a fifth of the total who we called) could bid properly. Most bid astronomically too high on a simple project, while a few desperate and incompetent companies bid too low. Hmmm.

So, we went from 500 to 100 by weeding out those who couldn’t communicate well, or simply didn’t answer our calls or emails. Then we went from 100 companies to around 10 by weeding out those who couldn’t bid. We’ll keep you informed how our lucky 10 do.

I will say, that there are two huge programming companies in Belarus who were not the most efficient in town, but their bids were not that unreasonable and they are serious about doing business. They have hundreds of employees and do what I call “volume” business.

The most important thing I learned is that you can’t really get American programmers to be reliable in the long run. I also learned that Indian companies usually hire sloppy programmers. To get anything done, you either need to find an exceptional Indian company that takes their work seriously, or find someone in Eastern Europe. I’ll do more research and keep you posted!

(1) We boiled 500 programming houses down to 10 by calling them & asking for a bid.
(2) Most programming houses in India charge too little, but those who charge more are also a nightmare.

You might also like:

From 100 Indian Call Centers down to 1

The 2nd test project & the second bid

Vampire Programmers from Transylvania!

Categories: Popular on Google+, Popular Posts, Software Development | Tagged | Leave a comment

Vampire Web Developers in Transylvania? Beware of Signing Contracts–in Blood

It was early evening as I arrived for the meeting. Twilight, that mysterious time between day… and night.

I was in Transylvania, as they now spell it, an area of Romania, for a meeting with a web developer. The outsourcing firm was called “Count Source,” and the CEO had assured me “After you meet with me, your life will never be the same.” I wasn’t quite sure what to expect. As I walked up to the large wooden door in the dark stone building set back from the road at the end of a long driveway, I had the odd feeling I was being watched. I shrugged, stood at the door, and knocked. Count Dracula? Count Source Outsource? I laughed to myself. Why worry?

“Good evening,” said the strange man who opened the door. He was dressed vaguely like a butler. “I am Ambrogio. Mr. Strigoi is in the office. Have a seat. He is just finishing up a session.” At that moment, a piercing scream came from the next room: “MY CODE!!! What will happen to–” Silence.

“Would you like some…wine?” Ambrogio asked.

“No thank you. I have an appointment with Vlad Strigoi,” I said, suddenly uncomfortable. I looked around the room. “If this is a bad time I can–”

“Oh no,” said Ambrogio. I couldn’t remember where I had heard that name. “He will be with you in just a moment. We have been expecting you,” he said, smiling in a strange, sad way. He walked slowly toward the ‘office’ where the scream had come from…somewhere down a long, shadowy hall.

I looked around the room. I realized it was not only quiet but dark, lit with a few electrified candelabras on antique tables. Dark wood. The air smelled musty. This was more like a parlor, an ancient sitting room, than the waiting area of a modern hi-tech office. In fact–it looked nothing like the brochure I had seen online!

In a moment, a dark figure dressed in black walked hurriedly down the hall towards me. The first thing I noticed were his eyes: gleaming, electric, hypnotic. I was already sure this was the developer for me…

“So pleased to meet you, Mr. Montbel,” he said smoothly, barely whispering. “Won’t you come in?”

“Thank you. That’s Belmont,” I replied, but added, “Yes…Montbel…also a lovely name… I want to give you the codes to my site at once,” I murmured– not even sure why I was saying this.

Imagine the rest. In a moment, I had given a stranger the codes to my website–and all my personal information. As if I were in a trance… dazzled by the sample websites and figures and company information I was being shown. But–there was no company! No employees: only a man named Strigoi…in a room that smelled strangely like–blood. I could almost taste it, metalic and salty. And there he stood, with those swirling, penetrating dark eyes– holding out a pen for me to sign–a 200 page contract–just to get 100 hours of initial programming done! And as he gazed at me, he came ever closer…closer.

Suddenly, just as I was about to sign and give Strigoi a $10,000 retainer– I awoke from my daze, put down the red pen–and ran from the house. Suddenly I remembered: Transylvania meant “the land beyond the forest,” and Ambrogio meant “the undead” or “immortal.” Strigoi– was the name of an ancient clan–of vampires!

If you are beguiled by a sales pitch and a smile, then persuaded to sign a contract just to speak with the company about its services, or to be able to give them a test project, or do a few hours of programming–beware: it may cost you–more than you planned for or really want to spend!

(1) Programmers from Transylvania prefer to sign their contracts — in blood!
(2) An outsourcing company in Transylvania was called, “Count Source”
(3) After you meet with them, your life will never be the same: Outsourcing to Transylvania

You might also like:

A stand up comedian at a stand up restaurant in India

An American teaches Indian companies to be more American