I went to dig into some of the sources cited in Peopleware (see my previous two blog posts), and I fell in love with this 1984 article on Japan’s software industry and Hitachi Software Engineering. It’s a look into a company that feels like peak-era IBM: much bureaucracy and even more success.

Inside the Japanese Software Industry, by Denji Tajima and Tomoo Matsubara

I’m just going to pull some choice quotes.

Ah, the 80s.

  1. Work efficiency = Lines of code / Hours worked
  2. Reproduction efficiency = Lines of code produced / Hours worked
  3. Cost efficiency = Total cost / Lines of code
  4. Machine efficiency = Lines of code / Machine hours used

This is either an early use of libraries, or a super-early use of design patterns.

In each stage, frequently used programming structures, includingp arametric parts, were standardized and cataloged in libraries as “reusable pattern modules.” These structures can be recalled and combined with parametric variables and other pattern modules to generate new programs. Table 2 lists basic pattern modules.

Table 2. Basic reusable pattern modules in programming library

1 Main frame 2 Message reception 3 Message format and contents checking 4 DBMS processing 5 Message editing 6 Message switching 7 Initial screen mapping 8 Line overflow on screen 9 Error display on screen 10 PFK (Program Function Key) code analysis 11. Screen editing 12. Table lookup

This is an amazing addition to the normal tools (e.g. code review) to spread the programming culture you want. More companies should adopt this.

To improve programming discipline, programmers are assigned exercises every month, so they cannot avoid referring to the collection of algorithms. The exercises have the dual benefit of spreading good programming style and encouraging use of the library routines. The system is effective in preventing errors, such as miscalculation in the conversion between calendar dates.

And finally, some horrors never change.

Employees’ willingness to work overtime to complete projects to satisfy a customer’s needs is key to the success of new industry in Japan.