Yesterday, over coffee, “R” and I traded stories about Akiba, board games and business. However, the main thing that we wound up talking about was programming, or more exactly, why Japanese companies produce lots of code and little progress. To make a long story short, I’ve come to believe it is a failure of management. A failure to facilitate coding through the use of frameworks that amplify work output.
I mentioned the usual generalizations (Japanese aren’t good coders, the Japanese work environment involves a lot of talking and little doing), but “R” mentioned how he worked in a company where they produced a lot of good code and the project managers took care of the insufferable 3 hour meetings – and to be fair, I have too. So why the problem?
The first clue to us both started with frameworks. “R” spent weeks at one company trying to add table joins to a system which simply had nothing of the kind built-in. This reminded me of similar headaches while spending an year of my own time developing Pinki and only having a small search/listing website by the end.
The big clue to me was Fujitsu – and how they constantly had dozens of systems programmers working on Symbian and other tinpot mobile OSes for each of their feature phones. Particularly with feature phones, there was very little difference between handsets, but programmers had to spend obscene amounts of time doing low-level programming to enable old software to run on new hardware. It was rare for me to see anyone going home before the last train. (These were some of the best programmers in Japan, and they had families – even the “overtime bonus” was not reason enough to stay. )
What all these examples have in common is how companies and people brazenly avoid using programming force multipliers. Fujitsu still uses the old/creaky Symbian OS to this day, even though it is a pain to develop for and has little support / community left (particularly in comparison to Android and Win7). I was stupid enough to try to build a website without a framework, and had to re-solve a half dozen problems. R’s former company had settled on some Japanese-language only ghetto framework even though it had no proper DB layer.
My hypothesis is that a lot of Japanese companies produce little new because they have people solving solved problems over and over again. This is probably because of their inability to assimilate newer frameworks with better communities that automatically solve many of these problems for them.
Maybe this is because the English language barrier. You have billions of English speakers and X% are good programmers. Even if 2X% of Japanese speakers were good programmers, you will never have the depth of talent needed to develop native Japanese language versions of computer languages & the community that goes with them. You are restricted to a subset of frameworks, good or bad, that you can explain to your Japanese unilingual boss. He probably is severely risk-averse and is too old to be familiar with current programming technologies and shortcuts. How do you get him to let you program in Python/Django when he is still using Excel as a datastore (a shockingly common issue in Japan!)
I hear the weeaboos across the world now screaming “what about Ruby!”, but Ruby just proves the point. A Mormon Japanese dude (read: English literate, world-focused, non-Otaku, non-loner mindset) coupled with an excellent framework that gained fame world-wide (Rails). It’s nice that there are great Japanese Rubyists but they are not responsible for the popularity of the language.
There are alternative explanations – no money for advanced training, corporate mandates from backroom deals, fear of open source software, incorrect initial assumptions (IE: Japan is the source of all sorts of world class code), but none of them resonate with me.
If I’m right, the solution isn’t that hard. Give the Japanese programmers proper force multipliers in the form of good frameworks and libraries. Give them good training so they aren’t dependent on Google translator-fu. You will see an improvement.
This one post got about 10,000 hits through a kind link on Hacker News. You can follow the discussion there. I do not necessarily agree with everything, but it is all generally thought provoking.
I’m… honoured to see that somehow this made its way to Slashdot Japan, and was translated into Japanese. どうぞよろしくおねがいします。