Starting work in Japan as a lowly new graduate - did someone say COBOL?

From Wikipedia’s COBOL entry:

Critics have argued that COBOL’s syntax serves mainly to increase the size of programs, at the expense of developing the thinking process needed for software development. In his letter to an editor in 1975 titled “How do we tell truths that might hurt?”, computer scientist and Turing Award recipient Edsger Dijkstra remarked that “The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense”.

Yet COBOL lives on and is taught to new graduates by a company that is only around ten years old.. in Japan!

A friend of mine graduated recently graduated in March from a prestigious Tokyo university with a degree in economics and went to work for a major Japanese ERP (Enterprise Resource Planning) software company (the name of which I will not disclose, other than to say that they could use some serious help in their product naming!)

Japanese One-month Summer Internships

First let me give a little background. As a university senior in the summer before graduation, she had a one month internship at this company. In Japan, most students don’t have internships of any kind before graduating, and the ones that do are usually quite short. Unlike an internship in the U.S. where interns do real work, her internship was essentially a one month class. During this time the interns were all paid salaries to essentially attend classes about programming in Delphi (with homework of course.) Odd, I thought, that Japanese companies have to pay salaries to teach their employees skills that by American standards they should have learned in college.

The final assignment of the internship was to design a computer system to be used at a hotel front desk, using Delphi. I helped her brainstorm features for the project, and at the end of her internship, she made a presentation about her program, and based on that she was offered a job to work there after graudation. Since this was a bit ambitious for students who had never written a program, the final program didn’t have to fully work and students were allowed to make presentations highlighting their ideas for features rather than actually implementing them.

As you may already know, in Japan students graduate at the end of March and uniformly start their full time jobs on April 1. It is also typical for Japanese companies to have numerous months of initial training for all entering graduates. In my friend’s case, the training picked up where the internship left off, and started with several skill tests about programming. My friend called them “algorithm tests,” but it sounds more like they were more about control flow (think flowcharts and program logic.) At the end of the first week, the desks of all the new employees were rearranged in order of their scores on the test, and my friend’s desk was the last in the room, due to her receiving the lowest score. People who score well on the tests receive a higher starting salary, quite unusual for Japanese companies, where two people could be hired for a programming job and one could have been writing shareware for 5 years and already know how to program and the other never have touched a line of code in his life, and they both get the same starting salary. (This other facet of Japanese companies, i.e. not encouraging their employees to come in with any existing knowledge or experience relevant to their new job, fascinates me but should be the subject of another post.)

Alive and Well in Japan: COBOL

After the “algorithm tests” came their next subject: COBOL development! The incoming employees were given a 2-page COBOL programming assignment, but were told that they needed to teach themselves COBOL first. No textbook, no office hours, no teaching assistant to help or asking questions, they had to figure it all out. Certainly this is an interesting idea. Also it turns out, no partial credit for programs that don’t work; it’s all or nothing. Trying her best, my friend searched for a book on COBOL. The first store she checked didn’t even have any. Luckily eventually she found one. By the time she asked me for help, she had already spent some time trying to read the book and figure out the assignment, but was basically no better off than when she started.

When she first asked me for help, my reaction was, “COBOL? Someone still uses that?” Even stranger considering her company was started in 1996. How could they possibly have any legacy COBOL code? I’m not sure if they just use it for training, but I still find it odd that they would even use it for that purpose. My friend theorized that maybe if nobody knows COBOL then it’s a good thing since nobody would have an advantage on doing the assignments. But I don’t really agree with that, since people who already know how to program can pick up COBOL pretty quickly. I have bachelor’s and masters degrees in Computer Science (graduating about ten years ago) and I have never had to use or look at COBOL. So I found it amazingly strange that in 2008, a 12 year old company in Japan is still using COBOL.

The actual assignment was a relatively simple program that iterated over records from a work hours database to calculate salaries for employees, keeping running totals by group and division within the company. For anyone with any programming experience, it is not that difficult, except for the strange and outdated syntax of doing it in COBOL. They called it an example of “control break” programming, a term I have never heard used anywhere but here, which essentialy seems to be what in C would be a while true loop with an embedded conditional break statement. In this case, due to the various running totals, it required about 3 nested control break loops, which is definitely some tricky program flow logic for someone who majored in economics and had never touched a line of code in her life.

I tried to explain the basics of how to do the assignment, only to discover that she had no idea of what a function or even a variable was! Apparently the new hires were expected to learn the basics of programming, including COBOL and SQL and control flow, entirely by themselves. Only 10% of the people were able to complete the assignment and the remaining 90% were given a [useless] extension to the due date.

In the end, it proved impossible for her to create a working COBOL program in the given time. I felt bad for all the effort she had put into it (remember there’s no partial credit), not to mention all the time I spent trying to help her by explaining various computer science concepts.

Only in Japan?

What exactly does a system like this accomplish? I always try to respect the different way things are often done in Japan, because often there is (or was) some good reason for doing it the way that they do. But in this case, I can’t see what this really accomplishes. Demotivate some employees who used to be excited to start their first job after graduation? Why doesn’t the university system teach Japanese students skills which they will use in their jobs? If the company wants their new hires to do something which they did not learn in college, why don’t they teach them or give them support to help them learn themselves? So many questions… no easy answers.

I’ve talked to some other friends about this and they say they’ve never heard of training at other Japanese companies that is quite as extreme. But still I can’t imagine this happening anywhere else but here.

About the Author

BlissfulJapan

One Response to “ Starting work in Japan as a lowly new graduate - did someone say COBOL? ”

  1. Funny how just after I read this very interesting story (thanks, it was great), I log into Safari and see that one of the latest books they have added to their bookshelf is “SAMS Teach Yourself COBOL: in 24 Hours”. Published 11/28/1998 but just now added to Safari.

    http://safari.informit.com/9780768685510

    Best Regards,
    Rick

    P.S. Found your site through Linked In.

Leave a Reply

You can use these XHTML tags: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <em> <strong>