|the Hidden Realities of Computer Industry in Japan||Japanese|
Software development sounds hi-tech, but its Byzantine maze of subcontracting is roughly comparable to that which is found in other low tech industries. Most software houses consist of employees numbering fewer than ten. Most work in regular apartments.
Computers used to be expensive. Now they are within the reach of individual consumers. The most important thing in software development is the human brain; it's an industry where labor cost predominates.
These small software houses rarely have their own products to sell. Only a handful do. Most are companies in name only. In reality there is only a slim difference between them and temporary employment agencies. They hire programers on a monthly basis. And this they do not themselves but only by the order of their parent companies. Small software houses cannot afford to have sales forces to win orders by themselves.
Now how do the big parent companies look at the whole situation? When they outsource software development, they first look at the size of the software houses. They don't care how competent the programmers are. They only look at the size of the capital, the number of the employees, the size of the sales, how old the firm is, etc.
Most big corporations have to open a bank account for transactions. For this the software houses that get contracts have to be bigger than most. Since many big corporations are willing to open only a limited number of accounts, they are often dead set against hiring new subcontractors. When they open a new account their accounting department conducts a thorough check. It's natural for them to do so because what they are paying for is not a tangible thing, and therefore they want to make sure that their subcontractors are trustworthy.
Only the person who does the actual hiring has some idea about the quality of the final product. The software houses attach a report to the program, but only a person well versed in programming can understand it. It's a precarious business hiring a software house.
A big parent firm may sometimes end up hiring a tiny software house as the consequence of not being able to find a bigger sized firm to do the job. In such a case it does not open an account to pay this small firm that does the actual code writing. Instead it chooses to deal indirectly with this software house via a bigger and more trusted firm that it has a regular business with. This means that the originating big firm is sub-subcontracting the job to the small software house.
The middle firm does nothing, but gets a commission for merely acting as an intermediary. This intermediary is usually a well recognized software house or temp agency. Or, in overwhelming cases it has a keiretsu relationship with the big parent firm. Such a keiretsu company has a similar name as its parent company's, usually with a few extra characters added. These companies sometimes do the job themselves, but in a large number of cases they merely subcontract jobs to smaller firms. Work comes in waves, thus the need for levelling them. For that they have to subcontract some of their jobs from time to time. This kind of "twice" subcontracting is quite frequent. "Thrice" subcontracting is also quite common.
At each stage of subcontracting the parent company gets ten to twenty percent for commission. This commission can exceed thirty percent depending on the relative strength of the companies. So when it gets to the bottom, three generations removed from the top, the money it receives can be less than half of the initial amount.
A while back, I was hired by a subcontractor to do a project. An engineer at this subcontracting firm led the project, but he was not so competent. Since the originator was a big corporation and moreover the project was funded by a grant from the government, we had to prepare a detailed report at every stage of our work. It was I who did most of the work, but on the report three names had to be included: myself, the engineer at the subcontracting firm, and someone else whose name I do not remember. The third person is someone whose name I was asked to include in older to process the paper and get paid.
There is a limit to how much one programmer can be paid according to the rules of the government, but in the real world it is next to impossible to hire a skilled programmer for a such a measly fee. Thus the need to concoct more names to be included on the report. Once a company gets to a certain size it can get away with anything.
A report had to prepared every month. Each time we had to come up with "hanko" seals of fictional programmers. Preparing these monthly reports was deemed more important than writing good programs. Engineers hate this type of paper work. Our productivity falls drastically merely at the thought of having to waste our brain for such a drudgery. But we have to do it to get paid.
In most cases programmers don't even want to punch their time cards. I for one always forgot to do so at my places of employment. Usually a female employee at the office ended up punching them on my behalf. But the problem was my clocking out. The poor woman clocked me in, but I did not clock out. So the company ended up with a mountain of my time cards with no evidence of how many hours I worked. It's a mystery to me how I was actually paid. What did the accounting department do? A software house should be equipped with a device to detect the leaving of its employees.
Back to the main point. There has to be a system where a person who does the actual hard work an be paid directly by the originator of the job. In this way, the programmer can get more money resulting in greater motivation to do a better job. But the system is not set up that way. The current system where the intermediary gets too much for no real labor works against the benefit of programmers who do the actual work.
The big company that initiates the chain of subcontracting understands this, but finds it hard to change the system. The party that benefits most under the current system is the intermediaries who are the exploiters of us all.
This is not just a matter of money. Good communication can be compromised under the current system. A software program is like a long novel. It's a collective work done by various individuals each doing his or her chapter. Good communication is between them is crucial. Otherwise the final product can be a cranky clockwork.
It is therefore very dangerous to subcontract programming job without giving it much thought. Like the message game where the original message is polluted by each act of transmission, each layer of subcontracting distorts the original intent of the program.
|the Hidden Realities of Computer Industry in Japan||Japanese|