You must learn Japanese


No, I'm kidding. You don't want to waste your precious 2,200 hours on this obscure language, do you? You don't have to learn Japanese unless you intend to work in Japan or market your service in Japan. Or unless you hire a Japanese developer, which actually happened to me.

Any software project always comes with communication. However you are good at programming, you need communication with others. And it costs more especially when the client doesn't speak your language.

The cost of communication

I once had a job where I was the only Japanese developer on a multinational team. The company itself was Japanese. The biz team consisted of Japanese managers. Our Japanese company client ordered us an application for their new service.

What I was required to do, as a Japanese member, was to be a middleman between those Japanese people and the dev team. I negotiated with the client on the scope of features based on the tech team's estimation. I attended heaps of biz meetings and took the requirements back to the tech meetings.

I especially helped our Kiwi tech lead with his communication. Even though he could speak fluent Japanese, he couldn't read the room in meetings with the client. He needed to figure out Japanese formality. I sometimes wrote formal texts for him. I helped him with important communication, which he appreciated.

But it was also true that we spent more time on communication than development. I still did development tasks, but the ratio between dev and meetings was relatively even. Was it a waste of time? No. I admit it sometimes felt tedious, but I understood its necessity.

My salary was the necessary cost for them, in the price of having a multinational tech team in Japan, where most people don't speak English at all.

3-year-old document

I was also on this team of the company that had let the third-party developer build the application for years but decided to manage it with their own developers. They quickly gathered developers, which consisted of a few developers and a manager. They needed help, so I came in.

The first or second thing I noticed as I came in was that they never read documents of frameworks and libraries they were using. They usually gather information from random blog posts that could have been written three years ago. I saw those links shared on Slack whenever they got into trouble. Every time I shared official documentation, they seemed confused. I wondered why. Why don't you go for official documentation first?

I eventually learned why. Those Japanese boys couldn't be bothered to read the official documents because they were written in English and not yet translated into Japanese. This is why they use random Japanese blog posts when they google the technical specs. And it makes sense to them. I know some documents (especially of major services) are translated into several languages but are usually unnatural and hard to read.

When I realized this as a junior developer, I stopped using Japanese to look for documentation. It certainly has cost me. I probably still read English slower than Japanese—English is not my first language, after all. But once I got used to it, it paid off. It's made it possible to access broader and fresh information on the Internet. But some don't pay this cost, at least in Japan.

I don't know if this is a cost for them to pay, considering how costly it usually is to adapt to English as a Japanese. However, I feel like some great frameworks or libraries are not as popular in Japan. It's a bit of a shame that they are not reaching out to its potential audience because of language, because of communication.

Project Cost = Development + Communication

Along the way of my career, I came to understand the actual cost of software development. Even when you are working alone, communication happens. For example, refactoring is a form of communication with yourself three weeks later. Either of you has got to pay: yourself now or yourself later.

Every time I estimate a project, I try to remember the cost of communication. "It works" is not enough. That's just the development cost. You always need to include the communication cost. This usually results in a better estimation.

To determine the communication cost, I always ask myself, "Who is our client?" It can be your client who ordered an application, end users, coworkers, or myself in the future. Software development is not a programming competition.

If the users don't understand the project, it's nothing to them. Keep in mind that your audience needs to understand. And it does cost more or less. Things can fail if you forget about the cost of communication.