PERSPECTIVE
Exposing the Truth Behind Offshore Development

by Vitaly Rudovich

My interest in offshore development in general, and within the former USSR in particular, led me to implement an experiment. The results of this experiment are both amusing and insightful. The scenario below is based on my experience, but should not be taken completely literally.

In the experiment, I created a virtual project for a virtual customer. The project was typical, a few database tables, a few graphs, lots of bookkeeping calculations, lots of input dialogs, and lots of reports. The software would be used at the client’s branches in the U.S. and Germany. I estimated that a team of five people could complete the job within two months. I then went to several firms in Russia and asked them to provide an estimate for doing this work on behalf of a U.S. based client.


The First Attempt.


The first person I asked was my old friend, who had worked with foreign companies for over five years. After we chatted awhile, I told him the reason for my visit.

"No-o-o!", my friend replied. "This is quite uninteresting to us. If it involved some future technology, then we’d jump on it."

"What do you mean by future technology? There are lots of projects like this, and the number of such projects is not going to decrease."

"Oh, no. We want something modern. Perhaps Java, or Internet based development. And we like to use Microsoft Foundation Class. This application must work with OS/2 and Windows 3.11, and the interface would be like DOS!"

"But many companies sell software for DOS even today. And OS/2 is installed in Germany and in many companies, including banks. And banks pay generously for software."

"No. Money is not the main issue. If banks want us to implement an Internet project, then we’re ready to go."

"I doubt that. The Internet is still very expensive in Europe. OK, I’m sure someone else in Russia will want to do this job."


The Second Attempt

At first, it seemed that I was in luck with the second firm. They liked the job, and their fee was reasonable. Unfortunately, the project discussion then took a wrong course. We began talking about the project conditions. My question of when the customer could expect to see a class diagram aroused astonishment.

"But why would they need a class diagram? We’ll create the program and let them see the program itself. Next you’ll be telling me they want the source code too!"

"Of course they want the source code. What did you expect?"

"Hm. Where on earth did you get such a customer?"

"They are a serious company. They develop software themselves, but they have a shortage of programmers and they need this done by a contractor. So what about the class diagram?"

"I don’t know about that. We were planning to implement the project in Lisp."

"Lisp?"

"A programming language."

"I know that Lisp is a programming language. But why in Lisp? Why do you want to force fit this project into Lisp? Is this the only language that you know?"

"No. We don’t know Lisp at all. The project itself is trivial. To compensate for this waste of our time, we’ll study Lisp."

"The client will never agree to Lisp."

"Then we’ll use Active-X."

"For OS/2???"

"No problem! We’ll only be using a few standard controls, so we’ll write them for OS/2 as well."

"In two months you learn Active-X and implement the custom controls and complete the project?"

"Well, not two but three."

"The client will never agree. They work with C++ and all of the libraries must be portable."

"OK! Give us four months and we’ll complete the project."

"Why in four? This project is only a two month job. No more."

"I think you are correct. Half the time we’ll work on this rubbish, and the other half of our time we’ll work on something useful. Otherwise, it will be a waste of our time. We would scream from boredom."

"So you expect the client to pay for your work and also to pay for your amusement? And you think they will like this deal?"

"Don’t worry about that. We’ll hang noodles on their ears. [editors note: a direct translation of the Russian phrase, whose meaning is both obvious and colorful.] It certainly won’t be the first time."

"Let me throw water on your plans. This time they won’t succeed. The customer can do this work and knows the correct duration, plus they will check the implementation approach."

"Then why should we bother with this project? This is absolutely uninteresting. My team won’t be bothered with such rubbish. Bring us something interesting."

"So long. I’ll look for someone less picky."


The Third Attempt

As fate would have it, a less picky man had heard about my needs. His indignation was boundless.

"I don’t understand this contempt for bookkeeping projects. Why such snobbery? As a producer of bookkeeping tasks, I’ll tell you that no-one can development a good bookkeeping application without experience."

"Very interesting. What do you mean by producer of bookkeeping tasks?"

"I direct the software and my programmer does the implementation."

"What? Only one programmer?"

"Yes, only one. The complexity is in the idea, not the implementation. Knowledge and experience are needed for this!"

"But the software needs to handle U.S. and German bookkeeping."

"You’re kidding! German too?"

"OK, everyone is saying that the project is not interesting. How are you going to keep your programmer interested?"

"Hm. I’ll find out."

Apparently, determining the niceties of morale stimulation does not take much time. The "producer" came back in less than a minute.

"No problem. I asked my programmer. He pointed to the refrigerator standing in the office and said that the more beer was in the refrigerator, the higher his stimulation and interest. He assured me that there does not exist a task so uninteresting that there cannot be enough beer."

"Hm. And what about the languages? You would need to be fluent at least in English, and some German would not hurt either."

"No, I don’t know any foreign languages. But I really don’t need this project, I’ve got plenty of my own. I just felt compelled to talk to you on behalf of the people that write bookkeeping software."

The Fourth Attempt

Taking into account my experience thus far, I then approached another friend. I was skeptical from the beginning, because this friend is a higher level analyst. However, he agreed to look at the project. At first, he studied the specifications intently. After a time, his face took on a tender-sorrowful expression. When he was done reading, he acted as if he was dealing with a third-grade boy with mental problems. His entire appearance conveyed that he did not have a high opinion of the author of the specification. For several seconds there was a mournful silence, then he looked somewhere off into the distance and opened to the first page of the specification. He started:

"Of course, they understand nothing. Look at this! Who designs databases like this? And their requirements for possible changes in the constants within the calculations? Don’t they realize that they need not just modifiable parameters, but a complete script language so that a user may modify not only the numbers but also the formulas themselves. And here. Haven’t they heard of security? Any hacker could break such a net defense in five minutes. Also, the entire architecture should be three-tier client server. Obviously, this isn’t their area of specialization. Tell them we’ll implement the project, but first we must rewrite the specification. We’ll make it ten times better. Or, they can send the author of this specification here and we’ll teach her something. It’s simply comical. I can’t believe this specification!"

"What do you suggest? I simply go to them and say that they are fools? Do you think that they would be happy and agree immediately that some genius from Russia is going to teach them, the foolish children?"

"Don’t worry, I’ll write everything down. Precise and clear. Let them read my paper and think about it."

"OK, write it down."

After presenting the paper to the client, I was forced to tell my friend that the client said they did not need his service. They told my friend that systems such as he described have been on the market for ages but belong to another price group. Also, the client’s customer base is oriented toward users with low end requirements. I also shared with my friend that the client asked me, "Why do all Russians have such big heads?"


The Fifth Attempt

With a full understanding of what approaches would not work, I set out to find a company that would undertake the project correctly. I finally found a man that was not afraid of the conditions of development. He told me:

"I know what we’ll do. We’ll test a new process on this project."

"Which process."

"Something I read about from the Software Engineering Institute. They have a white paper that describes how to organize this process. We’ll develop the process using this project as a pilot test. Plus, we can gather different metrics . . ."

"Wonderful. And how much will developing this new process cost?"

"Now much? Nothing."

"Well, let’s start with the fact that you must plan at least five percent of your budget for measurements. And, while you are initially implementing the program this will be closer to fifteen percent. Also, creating the process definition diagrams and documenting those process steps will take time and money. And what about software to support the process? When will you find time to develop it?"

"We’ll buy the software. We’ll insert it into the estimate of expenditures and in the future keep it for our use."

"Well, then why should the customer pay for it?"

"Well also be developing a process, and he’ll get a guarantee."

"Guarantee of what? Many companies with a CMM rating still have problems with quality and deadlines. Also, many fail in their effort to implement a process. Why does the customer need to bother with your process?"

"A good process will enhance the morale of the programmers."

"How do you know that?"

"I just think so."

"OK. Write up your proposal and I’ll see if the customer will pay you to implement a process while you are building his software."


A Few Words in Conclusion

Of course, I finally did find a company that performed the work for the customer. They used one senior developer and two programmers, plus seven part time student programmers to complete the project.


Note From the Editor

Although this article is focused on off-shore development, it has many interesting parallels with work done here in the United States, and even with the arrogance of individual programmers working within a company.



For more information about Vit, please view Vit's webpage at http://home.pages.de/~Vit