Tag Archives: Software Companies

The second test project & the second bid

Categories: Semi-Popular, Software Development | Tagged , , , , , | 1 Comment

It is like pulling teeth to find good software companies to hire. I started off by hiring software companies / software outsourcing companies who talked well on the phone. Then, after I saw their work I realized that talk is cheap. Of course the ones who didn’t talk well, couldn’t function when we needed to communicate. Damned if you do and damned if you don’t.

So, to get a sense of perspective about how efficient companies were, I gave many a test estimate job. Some bid too high, while others bid too low. What I realized is that the ones who bid too low were not realistic or reliable. The ones who bid too high were crooked. Those who bid right on target were too good to have time for me. So, I tried to find companies who bid a little higher than what I wanted — but, not too much higher. I overlooked a few things.

I found one software outsourcing company who bid perfectly on a test project. I wanted a bid of 40 hours, and they bid exactly 40. Then I had another project which took other programmers about 2 hours. This same company wanted 16 hours for 2 hours of work. OMG! They bid very realistically on the first job, and insanely on the second. So, I am realizing that my screening process needs to be longer and include more than one bid.

Another company was given a job that I thought an American software company should take 4 hours to complete, but that an Indian company might take 6 hours. They came in at 5.25 hours. I was very happy, and their work was flawless. Then they bid on a 60 hour project and wanted 800 hours. What happened?

I feel that before settling on a particular software outsourcing company, shop around and really put people through two test projects and several quick bids to see if they are in the ball-park each step of the game. If they are sometimes out of the ball park, you could lose your shirt very quickly.

Never judge a company by their first bid!

(1) If ur testing companies out, give them a 1st test project, and then a 2nd before hiring them.
(2) If a company bid sensibly on test project #1, they might bid insanely the 2nd time around
(3) Never judge a company by their first bid!
(4) Don’t judge a book by its cover or a company by its 1st bid.
A 2nd bid proves you’re consistently in the ballpark!
(5) Baseball is back! As you visit the ballpark, make sure the IT guys bidding are in the ballpark! Or they’re…OUT!
(6) Bidding too low: unrealistic.
Too high: crooked.
On target: too busy for me.
A little higher than ideal? 🙂
(7) Don’t judge book by its cover or company by its 1st bid. Get two bids to make sure both are in your ballpark!

You might also like:

You are a helpless victim if you hire the wrong company!
Click here

How to ensure that software company you hired will deliver!
Click here

How good are you at estimating jobs?

Categories: Analytics, Management | Tagged , , , , , | Leave a comment

My latest business experiment was to give a bid to dozens of software companies. I was straight forward with them and told them that we gave this bid to many companies and not to take too long doing the bid. I was able to do a quick software development bid accurately in my head in a few minutes. I am not even a software developer, yet I was able to do this task quickly. What I couldn’t understand was how professional software development firms with decades of experience took hours and days to do a quick estimate and came up with double, triple, or quadruple the amount of hours that my local programmer (20 years of experience) and I thought were necessary.

It took me about four minutes to come up with a figure of 40 hours. I realized there might be small issues that I overlooked such as customizing pages for the different browsers, and what if there is a problem, etc. But, this project was very simple, and there was not a lot that could go wrong. I asked my current programmer (who is too busy to do much work, but is very smart). He took a few minutes and also said 40 hours. I was amazed that he got EXACTLY the same figure I did, and within minutes. Smart people think alike — either that or I made a lucky guess!

So, why did many other companies need 280 hours to do the job? Were they using complete beginners or were they cheating us? Or both? That is 7x the necessary amount of hours. Then, we got a lot of bids around the 80-100 range which is more reasonable, but still price gouging or overestimating.

There were several factors in my dismay. Only 20% of software development companies worldwide came up with reasonable sounding bids which is very disappointing. But, better than 0%. I was also disappointed that you have to wait and wait and wait for these companies to answer an email and get back to you. The average company took two days to do this four minute bid. Many never responded back to us at all, while a few even got angry with us. Unbelievable.

Many had more questions and wanted all types of details for a preliminary bid. All of the critical specifications were in the bid request paperwork. We also had programming companies start bidding on the artwork which was never mentioned in the paperwork. They ASSUMED that we might want artwork. Would it hurt to ask before you assume? They even threw in some artwork into their bid which we never asked for. If something is not written in a bid request, do not assume that someone wants it. Just specify that your bid does NOT include design work. Lastly, there were companies who started talking about pre-fabricated programming which we never asked for.

The bid experiment revealed that many BPO companies just cannot follow simple instructions and can not get simple tasks done. Many others expect you to just hire you after they give a criminally high bid. Some have endless requests for unnecessary clarifications. But, most bids were just completely unreasonable.

Software companies need to be efficient at doing bids. You will alienate your clients if you take too long to do simple tasks. It is proof that your company is inefficient if you can’t even bid without having the client pull teeth to get it out of you! Remember, what you do before you get a client on board matters a lot. If you blow it for some stupid reason like being a slow bidder, the client will easily seek greener and faster pastures!

You might also like:

Steve Jobs watched his programmers carefully, so should you!

6 ways to be more in control of your business!

The 2nd interview: why is it so important?

Categories: Hiring & Firing | Tagged | Leave a comment

After hiring and firing eight software companies in a row, I am becoming smarter. The first one I hired, I only interviewed three companies and made contact with only a dozen. When they didn’t pan out, I went to a known contact who started out good, but had gone down hill over the years. I stuck with him for a year on the current project. I had a feeling that it wouldn’t work out that well due to the complexity of the work, but at least I knew him better than anyone else. I don’t like taking risks. I like doing business with people I know as a rule. Whomever I know best gets the most critical work. Experimental or new projects can be done by strangers.

So, company 1 and 2 didn’t work out well. to hire the 3rd company I made contact with another 20 companies. I figured I would get it right this time. Yet again, the company I hired didn’t get any work done. I tried a few other companies, and it didn’t work out either. Finally after a while I reverted to a company in Arizona who I had used for a few months. I gave them all of my work because nobody else worked out. Unfortunately, their work went down hill and they developed a huge temper too since I was being more demanding after I gave them my most critical project. They couldn’t handle the pressure. After all of these failures, my new strategy was to make contact with HUNDREDS of companies in 10 different countries and screen them with my life.

What I learned is that you can interview people, ask probing questions, test them, and give them projects. But, you don’t know how RELIABLE they are until they are doing a real project. The trick here is to see their true colors. People never show their true colors at a 1st interview. I never understood why big companies were so fastidious and had such long screening and interviewing processes. Now that I have been through the ringer, I understand perfectly. The more tests, trials and tribulations you give a prospective employee or outsourced company, the higher your chances are for a successful relationship.

The 2nd interview is one of the most intelligent hiring techniques ever invented. If they are getting upset with you, it will show during the 2nd interview. If they are in the habit of being late, that might show up too. Their initial good behavior will fade, and they will start being themselves. If there is a long silence at the beginning and there is nothing to say — that is a sign. If they seem bored, that is another sign. If they don’t even bother to show up, yet another useful analytic. But, there is more.

You can ask annoying questions during the 2nd interview to see how much endurance they have. If you are going to hire someone for a decade worth of tough projects, they had better have staying power. You can ask weird questions about astrology, feng-shui, natural disasters, or touch working conditions to see if they can handle it. You need to know if someone is serious about getting your work done, otherwise you have no business hiring them. Good luck!

You are a helpless victim if you hire the wrong company

Categories: Software Development | Tagged , | Leave a comment

There is nothing worse than being a business owner who is helpless. You might be a millionaire or a “crorepati”, but if you hire the wrong people to work for you, you will be as helpless as an elderly person at a nursing home screaming, “Help… help… will somebody help me…?” All the money in the world will not help you get these jerks to deliver on their promises or get their work done on time. As a business owner you need to be smart, otherwise you will be in this helpless situation over and over again. You can fire one company only to get another BPO company that strings you up and dangles you almost exactly like the last one did. They don’t care about long term business, and they hate their clients. How do you protect yourself from bad software companies or bad outsourcing companies?

First of all, it is common for Americans to be mistrustful of companies in other countries. I will tell you from first hand experience that companies abroad are not worse than American companies. Their workers might be smarter or dumber depending on where you go, but the integrity violations are worse on American soil than India. The problem in India is not integrity, it is that they put some incompetent beginner on your project who can barely function, while the American company tries to charge you $60 per hour for a minimum wage employee who is completely unhelpful. Either way you get screwed, but at least in India they get quadruple the amount of work done (in octuple the amount of hours at 25% of the cost per hour — do the math). You will get screwed almost every time unless you know how to shop.

Quick Tips
Does the boss give you a better worker upon your request? If not, fire them.
Is the company willing to do a test project for you? If not, don’t hire them
Does the company bid 10 hours on a 3 hour job? Don’t use them.
Did the company deliver sloppy work on a test project? Don’t use them.

Checking References
Did you check the company’s references online? It is always good to check references, but treat them with a grain of salt (if doing outsourcing, preferably sea salt). I checked one company’s references, and they were good. I read online reviews, and contacted three clients they gave me as references. They checked out well. So, I was safe, right? I asked them to do an estimate for a project that takes American programmers 3 hours, and Indian programmers a little longer (Things in India take longer because they have less experienced programmers allocated to YOUR job. The good ones work at Oracle and Intel in India). This company wanted 10 hours to do a 3 hour job AND charged quadruple per hour. I would have lost my shirt if I had relied solely on reviews. So, check reviews, but don’t rely on them. A review is only a statement from a company’s best client. What you really want to know is how their worst client feels.

The test project idea
You never know who a good company to work with will be. However, there are ways to weed bad companies out to improve your odds of being lynched by bad software companies. Putting them through a test run, or serious of test runs is one way to do it. Remember, companies that have salespeople or programmers that talk well at interviews DON’T DELIVER 80% of the time. Without a test run, you will get only talk, and no verification that they at least CAN deliver when they are trying. It still doesn’t say how they will perform when they stop trying, but at least a test run tells you something.

Being helpless is dangerous
You can lose money if you fire someone in the middle of a project. You can get sued for not paying someone for work they left half done. A bad company can damage your programming or data (and not care even a little bit). They can hurt your feelings, not to mention delay you for months on end without a second thought. Beware. You are dealing with scoundrels out there. Protect yourself.

How to ensure that the software company you hired will deliver!

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

It is commonplace in America for smaller programming houses to take on new clients when they have no resources to do the actual work. They typically do this either because they can not predict their future workload, or because they intentionally want to have a large backlog of orders so their staff will not be sitting around with nothing to do.

Unfortunately, what these companies typically do is to take on a new client, and immediately put them on the back burner. The client will have to wait months to get one week’s worth of work done. Lies, deceit, and other manipulative exchanges of reasons will accompany the sluggish work. The question is, how do you ensure that your new software company will not put you on the back burner?

(1) First of all, SMALL software companies don’t care about the long term business – by definition. Because if they did, they wouldn’t be small for long. They would treat their customers well, acquire new ones, but not lose the old ones that often. Smaller software companies typically mishandle all of their clients and lose them as fast as they come in. That guarantees that they will remain small (and inept) forever, until the market changes in which case they would simply vanish.

(2) Companies with offices typically get more done than companies where employees work from home. This is not a hard and fast rule, but I have many examples in my mental database of work-at-home scenarios. If the company is a large and reputable company and workers work at home, that might work. But, for small companies that don’t have a solid reputation, you are asking for trouble if people work from home. Companies with 1-5 people tend to be completely un-businesslike and irresponsible. Pair that with working from home and you have a disaster. If they have an office, and the office has not been populated by them for more than five years, they lack what Indians call: “Being well settled”.

On the other hand, companies who have had offices for years and have 6-12 people who work in the office daily, my experience has been that they are not perfect, but will get some serious work done. Companies with 20+ workers will get tons of work done. The size of the population inhabiting the office (during business hours) is directly proportional to how much work will get done on your project.

(3) Companies LIE about how many employees they have. You need to VERIFY that they really have 500 employees. Ask the boss to NAME THEM all and tell you a little about each of them. I am not joking. At least do this with the employees whose business pertains to your work. VISIT their office to make sure it really exists and that they really have 30 Java programmers with 10 years of experience per person, and not 4 Java programmers where the lead programmer has 3 years of experience who is leading a bunch of inept clowns with 1 year of experience.

(4) TEST these companies out. Give them a few test projects. Perhaps ask them for an estimate on a job. See if the amount of hours they need is reasonable. See if they ask good questions. Ask them to do a quick project to see if they actually do anything. How quick? You are paying for your test, so it is as quick as you like. A 1-hour test might be enough to see if they get off their rear!

(5) Getting programmers to deliver is similar to getting building contractors to deliver. They are notoriously late every step of the way, and two month projects generally take two years. A PENALTY contract might be hard to get them to sign, but it is at least something to think about if time is money. There needs to be a distinct penalty for sluggish or uncooperative behavior. They can ruin your company’s development plan for months if they don’t cooperate.

Potential Damages for Carelessness
Imagine that you hire a company who gets you to get involved in a long project and they stall half-way through. You will be put in the position where you have a choice of firing them mid-way (which is expensive and complicated) or waiting indefinitely for them to finish. You are at risk, and most software companies couldn’t care less about stringing you up and keeping you waiting indefinitely. Proceed with caution!

Following directions and consequences for not

Categories: Uncategorized | Tagged , | Leave a comment

Outsource: Following directions: When and where

When I test out software companies, I always take analytics on their performance. Testing people is easy. Getting analytics on what they SAY and how they PERFORM is easy. But, what about the interpretation of the analytics? That is not so easy.

Understanding how to interpret analytics is like seeing how a relationship will go based on the first date. The first date gives you some information about a person, or at least who they are pretending to be. But, it doesn’t prove how a person will behave in a long term relationship. What I learned, is that if a person doesn’t follow directions, that affects their performance in a variety of ways.

If you hand over an established website to a company, there are several considerations to think about. Are they secure for handling your site in the long run? Can they build new modules on your site? Can they update the technology over time as necessary? And can they quickly fix things that break? What I learned is that if you don’t follow directions, then you will not fix what you have been asked to fix — but, instead will be working on something else for me, or for another client. The order of critical and time sensitive steps is something that is greatly affected by the following directions analytic. Additionally, if something critical is broken, and you don’t fix it to specifications, then you create a delay in fixing code that is time sensitive. All 20,000 of your users will be delayed indefinately while a sluggish and uncooperative programmer screws around not following directions. Can you afford that?

Not following directions comes at a cost. Sometimes the cost is:

(1) Merely the cost of therapy bills for dealing with the frustration of dealing with someone who refuses to obey orders.

(2) Sometimes there is a financial cost for every hour something critical is left broken.

(3) Also, don’t neglect the fact that the programmer might fail to follow directions by working on the wrong project at the wrong time which screws up your ability to schedule projects.

Test your programmers by giving them an assignment with 10 documented steps. See how many of the steps they follow. The typical programmer will follow 6 out of 10 steps, and will only do several of those correctly, which means you have to harrass them to get everything up to specifications. What a nightmare!

Beware of American Programming Companies that sell availability

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

My experience hiring programmers in America is that they claim to have time to help you when they don’t. I had five instances in a row where I was offered 20 hours a week, and in all five cases 20 became zero. They didn’t even return phone calls in several cases. Baffling. Then, there were more conservative people who were more noncommittal. They also offered me time that they didn’t have. So, how do you know if your American programming company will give you what they promise when they generally don’t keep promises?

My answer is to hire more than one company at the same time. If one doesn’t have time, perhaps the other one does have time. Or, hire one American company and hire someone in a foreign country. Communication is the biggest problem with Eastern Europeans and Indians. But, they generally have time to get the work done. That doesn’t guarantee that they will be honest or accurate, but at least they are doing something!

In my experience, probably only about 10% of software companies are what I would call honest. Maybe my figure is off. Perhaps I am too optimistic. If they don’t lie about one thing, they are probably deceiving you about something else. Perhaps only 5% are honest. But, if you find someone who is “not that bad”, and gets the job done without screwing you too painfully, you are winning the game!

I had a dream where one Russian company said,
“We are not going to screw you more than a little bit today. You look like you have been screwed enough in the last few months”

On the other hand, if someone is handling your domain registration or hosting, any problem there can put you out of business. You need to trust your programming company / software company with your life. When hiring companies, ask yourself:

“Would I trust this company with my life?”
“Would I take a 3 day car ride with these people?”
“Would I let these people marry my daughter if I had one?”

If the answer is “Oh, hell no” to any of these three questions, keep shopping. Finding a good software company is like finding a needle in a haystack. You are more in danger of catching hay fever than pricking yourself. Let’s be realistic.

You might also like:

It is done — said the outsourced programmer

Leaving the job half done

The Indian software trick

Categories: India | Tagged , , , , | Leave a comment

It is amazing how dishonest so many companies are. In America they sell you on 20 hours a week when they don’t have a single hour available. Is it optimistic thinking? Are they just being unrealistic, or just plain dishonest? In India, they have different tricks. In India they have the hours, they just don’t necessarily want to allocate their best software developers to your dumb project.

Indians will try to pass off a beginner as a Senior Developer and charge you a higher rate. The problem for them is that I have them bid on a project as part of the screening. I know how long a senior developer takes on this type of project, so I can tell if they are either giving me a really slow senior developer, or a really inexperienced junior developer.

In any case, Indian companies who care about their reputation, as well as the reputation of their country should realize that India will get ahead much faster if they develop a reputation for honesty. Yes, most of the rest of the world is also crooked, but that doesn’t mean that you should be that way too.

Personally, I feel that government agencies should monitor what software companies do. There is too much fraud and trickery going on and it is just not funny. In the long run, honesty gets you long term reliable clients that you can grow your business with. Trickery gets you disgruntled clients who will dump you fast. How fast will your company grow if you lose your clients as fast as you get them?

You might also like:

How to ensure that the software company you hired will deliver
Click here

It is done — said the outsourced programmer

How to test a software company

Categories: Software Development | Tagged | Leave a comment

How to test out a software company!
If you have important projects, you can not put them in the hands of strangers without taking a huge risk. Interviewing companies will only let you know how well a company presents themselves, and background checking companies may get you inconclusive information.  One problem is that you have to give your FTP codes to new software companies, but what if they are not reputable?  What if they take two months to do a week of work after a lot of cracking the whip to get them to do something?  What if they won’t let your site function without paying them some unreasonable sum of money? It is risky hiring programmers.   Additionally, once a company has your FTP codes, it takes time to have server admin people change the FTP codes and send it to the new party.  Many things can go wrong and the process that should have taken a day or two took close to two weeks to have the new party able to login with the server codes. 
So, what can you do?
I interviewed many software companies.  The problem is that when you talk to the salesperson, they always put on a good front, so that you will feel confident about their company when they might not even be able or willing to work with you. Salespeople will tell you any type of lie to get you on board, and then once you are involved, you will be talking to the technical manager, and will never hear from the salesperson again. 
Lesson #1 – never believe anything the salesperson tells you — no matter what.
The technical managers will tell you what they can’t do, and will tell you all of the limitations, and will very happy to reject you as a client.  Also, technical managers typically do not like people like me talking directly to their programmers.  My projects are complicated, and without direct communication, we will have a mess that you can’t believe.  It is better if I am sitting side by side with the programmer during the tricky part so we can get it right the first time, but programming folks like to keep their clients as distant as possible — why?
Lesson #2 – dig by asking questions.. see if their staff is really in America or somewhere else?
Even if you are in India, you need to know if you are dealing with a real company.  Visiting them before you hire them makes sense. If you see a big office with dozens of very busy looking people, that is a good sign.  If it is a small office, and there are only a few people who look sluggish, or are absent a lot of the time — watch out!  If they are hiding their office and don’t want you to come — AVOID these people.   Many American companies have back office workers in Vietnam, India, China, or somewhere else, but want to charge an American price.  You might as well deal directly with India yourself unless that company is a great intermediary.
Lesson #3 – don’t believe a company that says they want you as a client
I was told by a few companies that they were willing to work with me as a client.  Many were anxious to set up interviews, but the interviews led to them asking me lots of questions and me not knowing who they REALLY were.  I only knew how they presented themselves.  I was flat out rejected by the most expensive company I interviews during the interview.  It was insulting, but at least they didn’t play games.  Another company said they wanted to work with me.  However, when I called for more information there were problems.  I could only get the information from Amanda, but whenever I called, Amanda was either out for the day, at lunch or at a meeting. This company refused to let anyone else answer my questions.  Finally after trying Amanda four times, I was told that I was not “A good fit” for the company.  I spent half a million in programming in the last decade. I’m not sure which part of half a million is not a good fit even for a fancy company.
Lesson #4 – Test them out on the phone
Many people at software companies are lazy and unresponsive by phone.  Call people and ask them to call you back and see what happens.  If they leave you high and dry now, you can rest assured that you will be left high and dry after you hire them and they have your FTP codes.  Call companies up and ask for information — see how fast they get back to you if at all.  Ask for an appointment to work on a small project to test them out.  See how long it takes them to call back.  Or, better yet, ask for the programmer to personally call you at a specific date and time.  Most programmers would not pick up a phone if they had a gun pointed at their head.  You can learn a lot by asking people to lift a finger and putting the ball in their court.
Lesson #5 – Have them do a small project
You don’t really know someone unless you have done activities with them. You can find out people’s quirks, and how cooperative or helpful they are if you do a mini-project with them.  If they are reliable on a small project, then try them out on a bigger project, and keep it growing.  You are in trouble if you have a huge project that you are desperate to finish, because programmers are typically busy and don’t have time to give you more than a few hours per week.
Lesson #6 – Consult a psychic
It is hard to know who to use.  Sometimes a good psychic can steer you away from a bad situation.
Good luck — you’ll need it!