the Hidden Realities of Computer Industry in Japan Japanese

4.1 Selling a Program by Weight

In most cases, the development costs of a program are determined by its "volume". Just like this book, the number of lines involved generally evaluates the volume of the program. You can hear programmers say, "we've developed a program of ten thousands of lines". The payment to the venders or programmers is arranged based on the line counts.

One can easily count the number of lines since most PCs are provided with the line counting functions.

It is, however, far more convenient if you print out the program and estimate its amount by its thickness. You may have heard a joke, "Program is evaluated by weight". This phrase implies the way of determining a program's price by measuring the weight of the physical output, or printed sheets of paper. Suppose, just as butcher's selling meat, that programmers determine the rate of each program in the unit of 100g or so.

The above story is definitely a joke. Through my career in a Japanese computer business, however, there were lots of times that I felt it was not necessarily a joke.

One day, I met shocking codes when debugging a program that had been written by other company. The program contained more than 300 lines of a repetitious pattern of a same process. If you want to repeat a pattern for ten times, all you have to do is to define a single command that repeats the process for ten times. But instead of using such method, the writer of this program had defined same process for ten times.

Simply removing the waste could reduce the program's size by 90%. It is natural that the size of a program gets larger if a same process is repeated for times as needed without using the repetition command. By doing so, anyone can easily double the length of a program.

As a result of further inspection, I had proved that the portion of the program was nothing but an unnecessary waste. Things were worse than that. The presence of the waste had deteriorated the performance of the total system. So we had removed the waste section, which resulted in the perfect running performance of the program.

Evaluated by the program's volume, what we had done could be a negative work. In other words, we had performed minus production. When I was engaged in the boring task, I used to say, "I have removed 500 lines", instead of saying, "I have written 500 lines of program". The amount of tasks we had done was therefore determined by how much waste we removed. The program had needed such hard "diet". If they had asked us in the first place, there is no doubt that we could have made more successful and stable one with just a half or one third the length of such redundant program. However, our work would never be fairly appreciated in this volume-oriented industry. No report form has a section to be filled out on how many lines have been removed. Only one thing what makes difference is just how many lines you have written or modified. You cannot submit a report saying, "the program has become perfectly operative after we eliminated whole waste."

Years ago we received an order from a laboratory of one of the major electric manufacturers to make a program for a VLSI chip. We had faced a deadline with lots of work left undone. I was not fully accustomed to the job and did not have sufficient skills. By the way, as is often the case with research and development, a proper environment including system devices is definitely required to run a program for the performance check. Lack of the above and other required factors had lead to the serious delay.

In addition, we were facing an another deadline. We must always meet the accounting deadline particularly when dealing with a large company. I asked a laboratory person for some advice on how to get by the deadline. His answer was more than I had expected. He said, "Just go to the room next to the accounting section. And you will find a pile of wasted document. You can pick up a program-like stack of paper and submit it to the accounting inspection." I said to myself, "Don't be crazy! How can I do such a thing in a business transaction." However, feeling the sense of guilty, I followed his advice in the end, for the very person working for the lab indicated it. Surprisingly, it had unsuspiciously passed the accounting inspection and the payment was made. Needless to say, we had later delivered a "honest" program.

As described before, even now, most people in this business judge the value of a program by weight or the number of lines. Although it's convenient, but can it be fully evaluate the program's value? What a raw deal for programmers! No one can get away with his/her work without any intelligence today. Even large dump trucks are now provided with automatic transmissions so that cute girls could easily maneuver. So our jobs should be valued by "technique", not by "strength" or "weight." Particularly the "high-tech" achievement that can obtain the goal without any program creation must be appreciated, at least.

You can be a victim of the foolish evaluation. Poorly made programs tend to be redundant. They are, however, likely to be more profitable than your honest ones. Worse yet, not only tedious will the awkward programs be, but they often suffer faulty performance. Can you imagine how these things are going on openly in Japan?

Copyright 1996, 1998 Hirofumi Fujiwara. Translated by S.S.
No reproduction or republication without written permission.

the Hidden Realities of Computer Industry in Japan Japanese