Category Archives: Software Development

Should you have “a” programmer, or multiple programmers?

Categories: Software Development | Tagged | Leave a comment

Some programmers are easy to reach while others are not. You never know when they are going to be out sick, or become nonresponsive. Many programmers like to focus on work and not answer phones or emails. But, how will you be alerted to an emergency or problem if you are so removed from real-time communications?

Sometimes it pays to have more than one outsourced programmer on payroll. If you can’t reach one because they are on an airplane from Poland to Chicago, you might be able to reach the other one. Or in my case I couldn’t reach either and had to wait 36 hours to solve a relatively simple situation because nobody even answered texts, emails, phone calls, or contacts by mental telepathy.

It might also make sense to have a programming house in India on payroll because they are awake at night (American time) and can solve situations while the rest of the world is sleeping.

I find American programmers to be better at strategizing, planning, and thinking. For fine tuned work, American programmers have been better in my experience. But, if you need someone who answers the phone at night, India is perfect. You can have certain programmers for certain types of jobs, and others for other types of jobs. Relying on a single programmer your entire life is dumb because they can quit, die, be unavailable, or just not answer calls. Good God!

A programming company that charges $25,000 per week? They should charge by the minute

Categories: Software Development | Leave a comment

$8.33 per minute!
I did a meditation to help me find the best software company in the United States. I tuned into the cosmos for half an hour and got my answer. The company would be in Florida near Tampa. Sure enough when I queried .Net programming companies in Florida, this excellent company came up. They even had a cool name that starts with a number, just like my site! www.352inc.com. In addition, they have the coolest looking website I have ever seen a programming company have. With the type of revenue they are making, they can afford a nice site! The salesperson explained how the company worked and how they finished huge projects in just days using a business model of having four person teams. After they finished projects, they could also assign an independent programmer to touch up code that needed tweaking if you could commit to eight hours per session.

But, what if the team experienced problems? I would be out $4000 per day during any snags in the process, or would I be? Hmmm. And what if they needed me in the middle of the project and couldn’t reach me at the critical junction? Then what? If I had some experience with this company, I would hire them in a flash. But, it was just too much. They were in the fast lane and I like to proceed at a more cautious speed. I think they would be perfect for larger companies. I think they would be perfect for me too — if only they could give me half a programmer rather than a gang of four! 20 hours a week is half a programmer and that is perfect for me providing he is the right guy.

When I hire programmers, I like to interview each one by hand. I like to see if they have the right thinking skills, communication abilities and personality for the job. Working with an unknown team of four would make it impossible to verify if things would go well. Too scary for me, but perfect for large companies who know this company well.

Innovation hubs in cities — do they negatively disrupt the status quo?

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

There has been a trend in cities that old industrial parts of town get converted into hip, modern hubs for artistic folks and innovation. Sometimes this transition from decay to vibrancy experiences some growing pains. There are some who claim that these new innovation hubs are creating a negative disruption in established cities. Personally, I see this trend as a part of nature.

All organizations go through cycles
There is a birth cycle, growth, maturity, decay and death cycle — generally in that order. Countries, humans, companies, and other organizations go through these cycles. It is unclear how long a country might spend in each part of the cycle, but to give you a hint, the Roman empire lasted 507 years from start to finish while a human being generally lasts about 70 years depending on where they live and how healthy their habits are. Neighborhoods have a more unpredictable cycle as they can go uphill or downhill in a decade or so.

America used to be a very industrial country in the late 1800’s and early 1900’s. But, after we became more technically evolved, and cheap labor became widely available overseas, it became more cost effective to outsource manufacturing to Taiwan, China, Japan, Costa Rica, Bangladesh, Korea, and other countries. The result of this outsourcing was that many urban manufacturing areas in the United States experienced significant decay and neglect starting in the 1970’s onward. But, in the late 90’s, artists and technology afficionados started creating their own presence in urban hubs.

Many renovated industrial areas become ghost towns at 6pm sharp
It is common for industrial areas turned art and technology centers to become ghost towns at exactly 6pm. There are no places to live in many of these areas and few places to eat. You can’t have any real type of life in that type of environment, plus it might not be safe to hang out at night. If you are trying to attract younger workers to work in a renovated industrial area, you need it to have a more homey feeling.

Los Angeles is the exception to the rule.
Los Angeles’ downtown industrial area has evolved into a thriving place for artists. Some of the hippest restaurants including Japanese, bakeries, sausage specialists, cafe’s and more have locations in this hip art district. There is an abundance of places to live as manufacturing buildings have been turned into expensive and desirable lofts that have secured parking. The only downside to this area is that it is near skid row and a lot of homeless wander in although the locals consider the homeless to be harmless.

Should you create an innovation hub in your city?
I like the idea of having different districts for people of different mindsets. If you want to attract innovative thinkers, you need to create an environment where they will feel safe, attracted and at home. It might be better if city governments played a role in creating incentives for cool businesses to start up in these areas before the areas become fully established so as to quicken the pace. The long term reward comes when your innovation hub grows to the point where your city becomes internationally known as a destination for innovation. From that point on, anything is possible!

Do cities with better weather attract better tech workers?

Categories: Of Interest, Software Development | Leave a comment

Some social scientists feel that cities with better weather that are more comfortable to live in attract better tech workers. This might be true.

Let’s take America for instance.
Silicon Valley is the largest technical hub in the United States. They have great weather, mild winters, a fun lifestyle, and a multi-cultural population with amazing restaurants. No wonder people are willing to move there from other parts of the country if they can afford the sky-high prices for real estate. Boulder, CO is an innovation hub with lots of innovators. They offer a great social environment, mild weather, and lots of fun nature activities like skiing, hiking, and more. Boston, MA also has a great tech hub (or spokes) on the outskirts of the metro near route 128. But, people move to Boston because of the schools or jobs, and not for the lifestyle or the horrible weather.

India seems to follow a similar pattern.
India’s Silicon Valley lies in the Eastern outskirts of metro Bangalore. The weather is much more mild than the rest of India although in the last 15 years with all the pollution, the temperature did go up about ten degrees on average. Pune’s weather is not bad either and they have a decent tech hub as well. Hyderabad is hot in the summer, but dry in general and livable if you can stand the traffic. But, if you notice, the cities in India with lousy weather like Calcutta and Delhi do not have as much tech activity. The exception to the rule is Chennai which is the fourth largest tech area in India. Chennai has a thriving tech scene not because it is a fun place to live (BTW it’s awful,) but because the locals have a culture that forces middle class boys to have a tech job if they want to be able to get married to a decent girl. Two decades ago, they had a similar rule, but you had to have a government job. No wonder the government in India is going downhill as the smart people are culturally forbidden from working in the government as they must get technical jobs.

Following the herd
If you are creating a hi-tech company, or growing one, it might be advantageous if you try to locate yourself where other similar companies have thrived. Think of it like a forest. If there are a lot of redwoods in a particular area, perhaps that is because the conditions are ideal for redwoods to thrive in such an area. Perhaps the feng-shui or other conditions are better for tech companies in Bangalore. Feng-shui or not, you’ll have a larger pool of workers for your tech business if you are located in the Bangalore area, and that is reason enough!

Steve Jobs watched his programmers carefully — so should you (2016)

Categories: Software Development | Tagged , | Leave a comment

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!

Project Management Software can save your outsourcing deal

Categories: Software Development | Leave a comment

Do you outsource programming tasks? Many of us do. However, problems frequently arise in outsourced programming. The people you select or the company you select might not be strong enough to handle the most difficult parts of the job. Even if only 10% of the job is tough, if they can’t do that 10%, then your job is sunk. Failing to meet deadlines is another common problem. It is often the case that an outsoruced company will just quit in the middle of a project that is too hard and keep you waiting month after month. I call this, “The never ending job” and that situation has happened to me many times.

But, communication or the lack of it is what can kill many IT outsourcing deals. You need to make sure that all team players have access to the same files and the same version of files otherwise you will not be on the same page in any sense of the word. You also need to have a system for keeping track of who is doing what, how far along they are, what commentary they would like to give, and when they finished various pieces of the puzzle. If you are managing multiple programmers on a task, and they just don’t get back to you, (which is typical for programmers) put in the contract that you will deduct a certain amount from their pay every time they “just don’t get back to you.”

Many software companies will rant and rave about how much better their software for job tracking is, and then not even use it. Or they will not tell you how to login. The sophistication of the system being used for project management tracking is not as important as making sure all of the team uses it in a punctual manner. If they are supposed to login twice a day for a progress report and just don’t login, then the system is a waste.

There are various types of software out there. Procore is a provider of construction project management software. There are others like smartsheet which uses a spreadsheet format, Clarizon, Asana, Jira, Genius Project and more. Agile is quite famous in the software crowd.

Here is a link to some reviews of various IT project management systems
http://blog.capterra.com/free-open-source-project-management-software/

My suggestion is that you could come up with your own customized project management system. That way you could tweak the system to meet your own company’s needs. It might cost ten thousand to create your own system and more to customize it after the fact, but a good system will keep your projects running smoothly.

Jeremy’s tips for a software PM system
(1) Have a timing system that has windows of time when a programmer is supposed to login. If they are late, or just don’t login and report, then create a “late log” where the boss can deduct from his pay. Programmers are notorious for not getting back to people, so you have to have a system where they get crucified if they don’t.

(2) Have fields (data entry) for the various components of a job, or particular tasks. Then have fields for the various individuals who are working on the various tasks. You might need fields for “subtasks” as many jobs can be broken into parts. There can be an assigned date for each task, a deadline, and room for commentary about each task and subtask which the programmer could add. You can also have quality ratings that the management could add at various stages of the project with information ranging from the quality of the coding, to the quality of the commenting to punctuality.

(3) Data Queries could be to see all jobs, jobs that have not been assigned, jobs that have been assigned, but are not done, as well as jobs that have been assigned, but were not commented on time (which is a red flag and indicates where management might need to focus.) You can also show the done jobs. In real life, this type of job tracking can also be done on paper if you have a good form and are neat in your handwriting. But, having a computer system makes it so much easier to keep track of everything, especially if there are reminders to tell you what you need to be checking up on.

(4) Late info & quality queries
If you use the system for multiple programmers, you could come up with very detailed information for how punctual various programmers are, and how good the quality of their work is. You can decide who gets hired, fired, demoted, promoted, etc. partly based on that data.

A programming company that charges $25,000 per week? They should charge by the minute!

Categories: Software Development | Leave a comment

$8.33 per minute!
And you thought a cab ride was expensive! I did a meditation to help me find the best software company in the United States. I tuned into the cosmos for half an hour and got my answer. The company would be in Florida near Tampa. Sure enough when I queried .Net programming companies in Florida, this excellent company came up. They even had a cool name that starts with a number, just like my site! www.352inc.com. In addition, they have the coolest looking website I have ever seen a programming company have. With the type of revenue they are making, they can afford a nice site! The salesperson explained how the company worked and how they finished huge projects in just days using a business model of having four person teams. After they finished projects, they could also assign an independent programmer to touch up code that needed tweaking if you could commit to eight hours per session.

But, what if the team experienced problems?
I would be out $4000 per day during any snags in the process, or would I be? Hmmm. And what if they needed me in the middle of the project and couldn’t reach me at the critical junction? Then what? If I had some experience with this company, I would hire them in a flash. But, it was just too much. They were in the fast lane and I like to proceed at a more cautious speed. I think they would be perfect for larger companies. I think they would be perfect for me too — if only they could give me half a programmer rather than a gang of four! 20 hours a week is half a programmer and that is perfect for me providing he is the right guy.

Finding the right geek for the job!
When I hire programmers, I like to interview each one by hand. I like to see if they have the right thinking skills, communication abilities and personality for the job. Working with an unknown team of four would make it impossible to verify if things would go well. Too scary for me, but perfect for large companies who know this company well.

Wouldn’t it be possible to work on a smaller scale?
I like the idea of structured teams, but what about those of us who need a smaller team? Instead of gang of four, what about two man crew, perhaps with an additional project manager who is on call? A part time team of two partners, or two people for an undefined quantity of days would be perfect for banging out coding projects of the size that I often am involved with. But, $25,000 per week? Even if it is a huge project, to afford that kind of an outlay, it better be a huge project!

Teamwork eliminates cooperation problems
Programmers who work as a team are more aware of how critical cooperation and meeting deadlines are. Programmers who work alone, fail to realize that as long as they have a client, they are not completely alone — if they want to get paid that is. Sole programmers typically have no sense of timelines and no consideration for the communication requirements of their client which often ruins entire projects. I met a manager from a hotel in Singapore whose entire site reprogramming got put by the side of the road for years and eventually was completely forgotten about. So, hiring a company that has programmers work as a team is a refreshing solution to problems regarding cooperation during programming work.

A project manager for name’s sake only doesn’t cut it
Many smaller software companies hire untrained people to act as project managers. They are very convincing as a rule and assure you that everything will get done. Not only do they typically not understand the coding process, but they also don’t understand managing humans or the timelines of programming projects. Having a more affluent company with an experienced professional project manager eliminates most of the problems that I have experienced hiring programmers. A serious project manager will have the ability to do realistic scheduling, time management, and meet deadlines without issue, while you can count on almost everyone else to flake on their commitments. This $25,000 per week company by definition must have PM’s that are top notch, otherwise they will lose a thousand dollars for every two hours they lose!

How do you test this company?
I have a policy that I never use anyone for any serious project without testing them. The problem is that this company won’t do anything for less than open week of work with four people. I need to know if these programmers are able to work with me and understand my requirements and directions. The other programmers I worked with got to know me over years. How is this new company supposed to get to know me over nanoseconds? The whole concept is too fast for me to ponder, but it makes for an interesting blog article.

You might also like:

Don’t choose a programmer, choose a team
http://bpo.123outsource.net/2015/06/30/dont-choose-a-programmer-choose-a-team/

Hiring programmers? How to spot a reclusive geek
http://bpo.123outsource.net/2015/02/24/hiring-programmers-how-to-spot-a-reclusive-geek/

10 mistakes I made hiring programmers that you should avoid
http://bpo.123outsource.net/2015/02/18/10-mistakes-i-made-hiring-programmers-that-you-should-avoid/

Hiring a programmer is like dating a guy if you are a straight guy
http://bpo.123outsource.net/2014/12/27/hiring-programmers-is-like-dating-a-guy-if-youre-a-straight-guy/

In China, hot girls were hired to motivate programmers

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

How do you motivate a stubborn programmer?
My experience with programmers is that very few of them care even slightly about the experience of the people who will one day use their programs. The commenting in the code for other programmers to read is not even that clear in many instances. Most programmers just want to be left alone to do their work the way they want, how they want and when they want. Deadlines are almost never honored, and instructions are almost always taken lightly. Very few programmers were even motivated by money. I offered large amounts of money to many programming companies who politely declined stating that I was, “Not a good fit.” I told them that I am giving you money to do programming work and you are a programming company — how am I not a good fit? The managers at programming companies are as impossible to motivate as the programmers. So, what is the secret?

The Chinese are masters of innovation.
The Chinese have always been an innovative people from thousands of years ago. When they had a problem with the Mongols, they built the longest wall in human history. They even innovated a way to deal with all of the dead bodies of the workers by burying them in the wall! The Chinese created gun powder, many forms of martial arts, gardening, and even new aspects of semantic internet searches. A few years ago I predicted that if anyone could master the art of dominating the computer programming industry, it would be the Chinese. I was right, but not in a way that I expected.

Hiring beautiful cheerleaders to motivate programmers works!
Specialists who understand the importance of building a healthy corporate culture understand that you need positive upbeat people to build a motivated and fun work environment. Cliffbar, Google and Starbucks actively embrace this principle. A few years ago, I had the thought that call centers in Manila and Central America should hire good looking girls to interact with their workers to add a good feeling to their day. Call centers are apparently very stubborn about improving the grueling conditions of their work. But, the Chinese are not. It is commonplace in Chinese companies (and restaurants) for the workers to all get together and share a meal. Eating is an integral part of the Chinese culture, and communal eating is just as much. Eating together makes people feel good and feel more connected. But, I am happy that the Chinese implemented “my” idea of having lovely ladies improve the grueling conditions of the work day. Why not look forward to coming to work? Your wife might not like it, but at least you’ll show up for work and give it your all.

Productivity is up
The programmers in China, India and other countries are mostly male and very anti-social. Programming is a bit like mechanics intellectually. Guys like fixing things while women just want to be listened to which is why guys dominate programming. But, having these ladies around seems to get the guys to produce better. Men tend to be more motivated in general if there is a woman who is appreciative of what they do according to “Men are from Mars, Women are from Venus. It seems that the Chinese managers must have read that book or have an understanding of the concept. The easiest way to get a guy to stop trying is to have a woman who doesn’t give him any appreciation.

What do these ladies actually do?
The programming cheerleaders buy breakfast for the programmers so they have the energy to do a long day of work. They also chat with the programmers which is very valuable since most of the programmers lack the ability to interact with the opposite gender, or even with their own gender, and probably also with dogs and cats as well (insufficient data for the last claim.) The ladies must be talented and smooth (and probably patient) at interacting with the socially handicapped. In a sense, they are like therapists or psychiatrists in a very pedantic way.

What do the wives of the programmers think about this?
I can imagine that someone’s wife might not want their husband regularly hanging around with beautiful women at work. It is bad enough that your husband works with women, but beautiful women who give them a ton of attention? But, maybe this is what men need. I go through my day getting absolutely no attention from women other than my housemates. Imagine how much better I would feel if I was paid some positive attention by someone in their twenties or thirties who was female and voluptuous. This problem is my fault for living in Los Angeles. Women here are relentlessly unfriendly. But, the minute I cross the border into New Mexico, I get tons of positive attention from everyone! Maybe I should be living there!

You might also like:

Top viral images and how they spread
http://bpo.123outsource.net/2015/04/05/top-viral-images-and-how-they-spread/

I didn’t get retweeted, but that’s okay
http://bpo.123outsource.net/2015/08/09/i-didnt-get-retweeted-but-thats-okay/

Millenial job hoppers at India’s BPO companies – and how to harness them

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

Millennials are a different breed. Those of us in our 40’s, 50’s and 60’s find them difficult to understand. They are evasive, like to avoid conflict, and job hop like crazy, especially at BPO organizations. On a brighter note, they care about social causes — at least until their short attention span fades and then they care about something else.

In America, millennials jump from job to job. But, in India, the problem is even worse. People who work at BPO programming houses jump boat so often, their management structure was designed to accommodate this type of behavior. Programmers in India are seen as being replaceable parts.

If you are working on a serious project involving ten programmers and Rahul jumps boat because he got a better job offer at another company, it might take a while for another programmer to get up to speed at what Rahul was doing. And if the other programmer doesn’t do the same quality work, or can’t do the work at all, then your entire project could be on the rocks for a while. You could lose a critical client in the mean time because a millennial decided to jump boat on a whim. So, what is the solution?

Screen before using on critical projects
If you are a large programming house, you might have different types of projects. If you have smaller, simpler, less critical projects, and huge team projects, you can choose which programmer you put on which project. If you have someone new, it is advisable to put them on something simple and quick just to see if they do it, and if they can do it, and how punctual they are at meeting deadlines and getting back to people. If a programmer does well on an easy project, you can upgrade them to a more complicated project. However, I would not put anyone on a critical project on salary, here’s why.

Salary just doesn’t work with critical projects, try contracts & bonding
If Ramesh is working on salary on a critical project with a team, the entire team’s work would be compromised if Ramesh drops out. Therefor, it is critical to make sure that Ramesh doesn’t leave the project until it is done, and possibly until bugs are worked out after its completion. The question is, how should you harness Ramesh? Deferred salary is one strategy. If Ramesh gets a small portion of his salary while working on a longer project, but doesn’t get the main payment until its completion, then he would be less likely to quit and begin work for a higher salary down the street at some other hi-tech company. It might also make sense to take it a step further and penalize the programmer for jumping boat as he would not only be failing at his part of the programming, but his failure would influence the timeliness and quality of the final output for all ten programmers as his piece of the puzzle might be critical interfacing with others. Not all programmers would agree to this type of contract, however, without a contract, the programming house is doomed.

Paying more for reliability makes sense
Many BPO companies in India want cheap, but don’t calculate the cost of people leaving. If you add up the damages incurred when a critical player leaves, you might realize that it is cheaper to pay good people more, and also to pay mediocre people more if they can guarantee reliability with a contract and perhaps a bond. Reliability is the key factor in programming project failures — so, if you can eliminate reliability issues such as leaving bugs around, leaving project half-done, and missing deadlines, you can excel as a programming outsourcing company!

A case study from a courier company
I used to work for a courier company when I was fresh out of college. I was started out doing “distribution.” I delivered people’s fake teeth to dentists and back from dentists all over Massachusetts. The work was not ultra-time sensitive and the materials I was handling were not life-threatening if lost. They put me on this type of work until I proved myself. Then, they tested me on time-sensitive work for a few months. After I had proven myself, I was awarded with a route. I went to seven banks in Boston (generally in bad neighborhoods) and delivered the checks to Providence, RI. I was handling millions of dollars in checks every day and had keys to go into banks at night. I actually set off the alarm once (oops!) In any case, the moral of my delivery days story is that I was not put on a critical task until I have proven that I was a reliable and trustable candidate. I was put through two types of reliability tests for months before given any meaningful work. Programming houses need to find some type of short-term work to give to people while they are proving themselves. That way, when someone is put on a critical job, they will be less likely to screw up or leave — especially if they are under a bonded contract!

Working as a team with programmers

Categories: Software Development | Leave a comment

Working as a team with anyone is very critical. But, the problem is that most people are not team players. Let me rephrase. Those who work for fancy large companies by definition have to be team players or they will get fired immediately. However, those who can’t cut it with a fancy job, work for smaller companies and usually do not have adequate team playing skills.

The problem is, that without team play, programming work cannot get done. As a manager, you need to coordinate with workers to check their work. If you can never schedule time to see them, how will you check their work? If two programmers are working on different parts of the same project, they need to coordinate to make sure they finish at the same time with work that has been checked.

Most programmers at smaller companies have no clue how to be a team player, so the trick is to manage them. I fantasized about sending programmers out to get samosas at a designated time. That way they could get used to getting work done at a specific time. Of course there is nothing technical about samosas, but the being on time aspect would be the critical factor. If the programmer was assigned to have samosas on the manager’s desk at 3pm and just didn’t do it, the programmer would get in trouble.

My experience with programmers is that they just don’t do things. You ask them to do something and they don’t. You ask them again and they don’t. You pester them day and night for a few days and suddenly they produce results. Unfortunately, if you run a company with 25 people, you will not have time to run around bugging everyone day and night. It will tire you out. So, the solution is to train people on simpler tasks how to communicate their progress, and get things done by the deadline every single time.

Training people to “touch base” as Americans say and get things done on time will make your BPO amazingly better than the others. Most workers at outsourcing gigs just don’t care, just don’t get back to people and just don’t finish work on time or finish it correctly. If you aspire for greatness, you can achieve it, so have someone get you some samosas today! But, the secret is in the tamarind sauce!

Don’t choose a programmer, choose a team!

Categories: Software Development | Tagged | Leave a comment

Choosing Programmers is Hard
Many small companies have a huge dilemma choosing programmers. Most programmers are busy and unreliable, especially to new clients. But you need good programmers for your site to function, so what to do? It is a common mistake for a company to choose “a” programming company only to be let down. Smarter companies might test companies or freelancers out before hiring. But, in real life, companies and freelancers get busy, quit, or become incompetent the minute a task gets complicated. You need more than one entity helping you out with your programming no matter how small your operation is.

Hire More Than One
So, the key in hiring programmers seems to be pairing. If you want a programmer who is smart enough to handle difficult tasks, but fast enough to handle quick fixes, you might need more than one person. You could ideally hire a fast programmer who might not be that sophisticated to handle last minute problems, but also hire a more refined programmer with a tighter schedule to handle more critical yet less time sensitive tasks.

Which Programmer; Which Task?
I like to have overseas companies work on less critical tasks as a rule. I’ll often have a company in India working on a new project whose outcome is not tied to my income while my regular programmers work on existing projects. It is good to test programmers out on less critical tasks to see how they do and how fast they finish. Critical tasks should be reserved for programmers who have stood the test of time and who have proven themselves.

Wine Pairing vs. Programmer Pairing
Pairing programmers with different attributes is a great idea. Have fun with it. If you get really bored, think of it as something like wine and food pairing! Pair an advanced programmer with a less experienced programmer. Pair a fast & limited programmer with a slow but good programmer. Pair an overseas programmer with a domestic one. That way you can work at night with the Indian programmer and during the day with the American one. There are many ways to pair programmers, and I strongly suggest having backups for your pair as well. Good luck!

A series of interviews with a programming company

Categories: Software Development | Tagged | Leave a comment

I won’t say who these interviews were with. But, they are a big company in Eastern Europe. I thought they would be the best in the East since they were so large and had such good sales staff. However, the programming staff who were introduced to me were a disaster. The thing to learn here is when to draw the line. Donald Trump knows when to say, “You’re fired,” but sometimes I drag things on far too long.

Interview #1 — an exercise in slowness
My first interview with this company involved a long discussion with a Human Resources Manager. I went over exactly what I was looking for. I explained what type of personality I want, the types of languages the person should be able to program in, etc. What I got was someone who could not answer questions. There was a deep thought process about even very basic questions. I always ask a question about what you would do if you inherited a million dollars. Tech workers normally say they would give it to their family, spend it on education, unspecified stocks, or start an IT business. Someone who can barely conduct a conversation will not do well in an IT business or in any business. Commerce is about communication!

I feel that my mistake was that I talked too long to the manager, and I let the discussion with the slow programmer drag on too far too. I did not make sure they had three programmers to talk to either which is my normal strategy. I rarely like programmers, so if there are choices, the chance of me liking a single one improves a lot. The interview was a failure in so many ways. The candidate was long, the interview lasted over an hour including all of the supplemental discussions, and there was only one applicant. So, we scheduled another meeting.

Interview #2 — inability to do math
I went through the same stupidity in the second interview. I talked too much with the charismatic manager. Then, I got to the programmer who was yet again very awkward and obtuse. How can someone obtuse do a job that is for the most intelligent cut of society? This I will never understand! But, anyway, I asked him how to convert a million dollars into rupees and there was a long silence. I had to help him out by suggesting that he look up exchange rates. He didn’t think of that. Then I asked how to fit a giraffe in a refrigerator and got some very slow and awkward questions. I know how much trouble I got into in the past hiring dummies to do smart work. So, I would just rather not do any work than take any chances. On the other hand, smart programmers are not available to do anything these days, so you have to compromise somewhere. I ended the interview and requested a project manager for the 3rd interview.

I feel that yet again, I spent far too much time gabbing with these people who were in no position to help me. I think I need to have a policy about interviews that the first interview lasts anywhere from 3 minutes to 10 minutes. If I like them then we can talk again later. Normally what I get is sluggishness and garbled English language skills! Once I hear garble, it is time to end the interview!

Interview #3 – inability to communicate
The 3rd interview started with the same waste of time gossiping with the manager. This time I got an expensive project manager whose wage was $70 per hour. But, I could barely understand what he was saying. A project manager’s job is to coordinate and communicate. This guy was a basket case at both. So, I had wasted my time again.

My Question of Where to Draw the Line
How many chances should I give an IT company? No company has purely good employees in my experience except for companies like Google who don’t offer web services to small businesses like mine. I feel compelled to give a few chances to companies, since on average, only 20% of overseas IT workers are up to my minimum standards. But, how many chances should I give? Do I give two chances or three? I think either is acceptable. But, the amount of time I wasted on this company was the real problem. It took more time to coordinate a meeting with someone than it took to talk to that someone. Ten back and forth emails to coordinate a meeting with an incompetent fool. What’s the point? I learned to do my interviews one after the next by phone. I would stay up until midnight, call people up in India and Russia and line the interviews up. If you were slow or missed an interview, you get another chance, but only one other chance. I weeded companies out, but after the weeding, there was only one company in Noida left! Oh well, I guess that is the way things are until something changes!

The moral of the story is that three chances is fine — just make sure each chance doesn’t take longer than a few minutes otherwise you could waste your entire workweek gossiping!