See below for the English version.
この記事はANDPAD Advent Calendar 2023 22日目の記事です。
こんにちは、リアーキテクティングチームの白土(@kei_s)です。今回は、我々のチームの公用語を英語にしたお話のご紹介です。
リアーキテクティングチームとは
ANDPADシステムでの複数のドメインに横断した問題に対応するため、「リアーキテクティングチーム(略称: リアーキチーム)」という名前の専任チームを組織し開発課題に対応しています。現在主に Rails アプリケーションに関連する改善を行っています。ブログやイベントで取り組みをいくつかご紹介しているので、興味があればぜひご覧ください!
- Kaigi on Rails 2022 「実践 Rails アソシエーションリファクタリング」で伝えきれなかったこと - ANDPAD Tech Blog
- なぜ リアーキテクティング専任チームを作ったのか - Speaker Deck
今回はチームによる改善の取り組みではなく、チームの中で使う言語を英語にした背景と目的、難しいポイントと工夫をお伝えします。
英語を用いる背景
アンドパッドの開発組織は日本語ネイティブのメンバーだけではありません。海外の開発拠点としてベトナムに現地法人を設立し開発組織を立ち上げたり、インドからの開発メンバーが日本にジョインしています。
blog.findy-team.io andpad.co.jp
ただこれまでの開発体制では、ベトナムの開発組織は日本の開発組織とは独立して開発を行っていたり、インドからのメンバーはある程度日本語を話せたりと、日本の開発チームが非日本語ネイティブなメンバーと直接やりとりする機会はあまりありませんでした。
2023年11月からリアーキチームの戦力増強として、ベトナムの開発メンバー(仮名: Aさん)に入っていただくことにしました。これは現状のアンドパッドの開発体制では初めての試みです。
この背景には、現状ベトナム側メンバーが、日本のメンバーの習熟度が高いシステムを深く理解するのが難しいという課題があり、その架け橋としての役割を期待している点があります。
またリアーキチームは基本的にはシステムの改善がメインミッションですが、開発組織全体の開発力の底上げも我々のゴールの一つにしています。日本の開発組織が非日本語ネイティブのメンバーを受け入れられるようにすることはチームのゴールに合致していると考え、前向きに取り組んでいます。また、システム改善がメインのため比較的スケジュールの都合をつけやすく、英語化のための工数を取りやすいという点もあります。
チームの公用語を「下手な英語」に
元々リアーキのメイン業務は3人のメンバーで行っていました。私を含めみんな、大っぴらに英語が得意です!とは言えませんでした。とはいえメンバーの何人かはすでに社内での英会話レッスンに参加していたり、取り組みに理解をしていただいて、恐る恐るですが前向きに始められました。
始めるにあたってチームの共通認識としたのは、我々のチームの公用語は「下手な英語」にする、ということです。これは、ある科学者が国際学会の基調講演で話したという内容のパクリです。
「科学の世界の公用語は、へたな英語(プア・イングリッシュ)です。どうかこの会期中、あらゆる人が進んで議論に参加されることを望みます」
「科学の世界の公用語はへたな英語(poor English)」の起源について - 愛・蔵太の気になるメモ(homines id quod volunt credunt))
これは英語が不得意であることを卑下する必要はないという意思表示でもあります。Aさんにもこの認識を理解していただき参加してもらっています。
何を英語化しているか
次に、具体的にどのようにチームでの開発を進めているかをご紹介します。
まず、基本的にチームでのコミュニケーションは全て英語にしています。毎日の朝会、スプリントごとのふりかえりとプランニング、モブプロなど、チームとして集まる場面では全て英語を用いています。また Slack のチームチャンネルでのコミュニケーション、チーム会議の議事録も英語で記述しています。
また既存のドキュメントの英語併記も段階的に進めています。Pull Request テンプレートに英語を併記したり、既存の議事録を共有する際に翻訳したものを併記するなどしています。チームの長期的な目標を定めたマインドマップがあるのですが、こちらもAさんが機械翻訳を使って日本語から英語にしたものを作成してくれました。
どうやっているか
元々英語が得意でないメンバーだったので、正直なところ負荷はあります。とはいえ無理に進めると継続できないため、試行錯誤しながら工夫を積み重ねています。
具体的には以下のような工夫をしています。
定例会議のアジェンダを文書化する
朝会やスプリントごとのふりかえりとプランニングのアジェンダを文書化しています。Aさんの参加前から日本語でまとめていましたが、これらを英語化しました。チームでは定例会議のファシリテーターを持ち回りにしているのですが、あらかじめ進め方を英語で記述しておくことでファシリテーターが毎回英作文する必要がなく、スムーズに会議を進められるようになりました。
Google Meet の字幕機能
Aさんの英語はかなり聞き取りやすい方と感じていますが、それでもリスニングはなかなか難しいです。ミーティングはリモートで行っているため、Google Meetの字幕機能を活用しています。字幕を読みながらリスニングすることで、内容を理解する速度が向上していると感じています。
字幕を日本語翻訳する機能もありますが、精度がイマイチだったため利用していません。
DeepL 等の機械翻訳
発言したい内容を英訳する際や、英語での文書記述にフル活用しています。特に、会議のファシリテーターやモブプロのドライバーが画面共有をしている際、その画面に DeepL の翻訳画面をそのまま映し、その場で言いたいことを翻訳して伝えるようにしています。
最近の機械翻訳は精度が高いとはいえ正しくないこともあります。特に日本語で主語を明示しない書き方をすると "you" を主語として翻訳することが多く、誤解の元になり得るのでチェックは必須です。
「ちょっと説明難しいので日本語で」
会議中、込み入った内容を英語で話すのはやはり難しいです。機能の設計やタスクの優先順位などを議論する際には、日本語でも内容をまとめるのが難しいことを話したい場面はあります。そのようなとき「すみません少し日本語で」として日本語で議論をすることを許容しています。
このとき気にかけているのは、日本語で議論するのはワントピックだけにする、日本語での議論が完了したら必ず英語で結論を共有する、という点です。チームでの非日本語ネイティブがAさんだけで、日本語での議論が長引きすぎるとAさんにチームに参加している意味がなくなってしまうため、この点には気をつけています。
英語化の影響
チームに参加したAさんは早速バリバリ活躍してくれています。会議でも積極的に発言・提案してもらっていて、チームの戦力増強としては大成功と感じています。Aさんは日本語を話すチームの中で開発するのは初めてとのことでしたが、例えば会議中わかりにくい内容を「今の話は〜ということ?」と確認してもらったりと、「下手な英語」に協力してくれています。
また開発組織全体には、Pull Requestテンプレートの英語併記やドキュメントの英語化を進めるなど、今後非日本語ネイティブのメンバーが参加する際の素地を固めている段階です。まだまだ足りているとは言えないので、引き続き進めていきたいです。
リアーキチームとしては、会議の進め方やコミュニケーションがこなれてきていて、チーム開発の「型」が見えてきたという感触があります。ただ、この型をそのまま別のチームに移植できるかというと、メンバーそれぞれの負荷やタスクの性質によっては難しいと感じています。とはいえ、前例として工夫を積み重ね共有することで、より良い開発組織づくりをしていきたいと考えています。
今回リアーキチームの取り組みをご紹介しましたが、アンドパッドの日本での開発組織は現在、大多数の日本語ネイティブのチーム、我々のように英語を公用語としたチーム、英語と日本語を併用しているチームがあります。また、ベトナムの開発組織と橋渡し役ができる人材もいます。英語ができなければいけない、というわけではないことをご承知おきください。もし仕事で英語を用いるのに興味がある、マルチリンガルな力を活かしたいエンジニアの方はぜひご連絡ください。
アンドパッドでは共に働いてくださる仲間を大募集しております。 一緒に開発組織を良くしていきたい!そんな方はぜひ下記リンクよりご応募・お問合わせください。
A story about making English our team's official language
This article is written as Day 22 of ANDPAD Advent Calendar 2023.
Hello, this is Shiratsuchi (@kei_s) from the Re-architecting team. I'd like to share with you the story of how we made English the official language of our team.
What is the Re-architecting team?
In order to address issues that cross multiple domains in the ANDPAD system, we have organized a dedicated team named "Re-architecting Team" to address engineering issues. Currently, we are mainly working on improvements related to Rails applications. You can read about some of our initiatives on our blog and at our events, if you are interested!
- Kaigi on Rails 2022 「実践 Rails アソシエーションリファクタリング」で伝えきれなかったこと - ANDPAD Tech Blog
- なぜ リアーキテクティング専任チームを作ったのか - Speaker Deck
This time, instead of improvement efforts by the team, I will share with you the background, purpose, difficulties and techniques for using English as the team's primary language.
Background of using English
ANDPAD's engineering organization is not limited to native Japanese-speaking members. We have established a subsidiary in Vietnam as an overseas engineering base with its own engineering organization, and we have hired engineers from India in our organization in Japan.
blog.findy-team.io andpad.co.jp
However, until recently, our Vietnam engineering organization worked independently of the Japanese engineering organization. Furthermore, our engineers from India could speak Japanese to some extent, so the Japanese engineering team did not have many opportunities to directly communicate with non-Japanese English speakers.
We have decided to have a Vietnamese engineer (pseudonym: A-san) join our team in November 2023 to increase the strength of our team. This is a new initiative for the ANDPAD engineering organization.
Our Vietnamese engineers have encountered difficulty when attempting to deeply understand the systems currently being developed by the Japanese teams. We hope that A-san can act as a bridge between the two organizations in Vietnam and Japan.
Also, while the main mission of our team is basically to improve the system, one of our goals is to improve the development capability of the entire development organization. We believe that making the Japanese development organization more receptive to non-Japanese native speakers is in line with the team's goals, and we are working positively to achieve this. Also, since the main focus is on system improvement, it is relatively easy to schedule and take up man-hours for English conversion.
The official language of our team is "poor English".
Originally, our teams's main business was conducted by three members. None of us, including myself, could openly say, "I am good at English". Nonetheless, most of the team were already participating in in-house English conversation lessons, and they understood the reason behind this initiative. Although we were a bit intimidated, we were able to start the project with a positive attitude.
When we started, the common understanding of our team was that the official language of our team would be "poor English". This is a paraphrase of a keynote speech given by a scientist at an international conference.
"The common language in the scientific world should be poor English, just as I am speaking now. Dear lady and gentleman scientists having gathered here from throughout the world! Please do not hesitate to discuss and exchange opinions actively and frankly in any English you can speak."
「科学の世界の公用語はへたな英語(poor English)」の起源について - 愛・蔵太の気になるメモ(homines id quod volunt credunt))
This is also a statement that there is no need to be embarrassed about being poor at English, and we ask A-san to understand this perception and participate.
How our team uses English
Next, I would like to explain how our team uses English for software development.
First, all team communication is in English. We use English for all team gatherings such as daily meetings, sprint retrospectives, sprint planning, mob programming, etc. We also use English for communication in the team channel on Slack and for the minutes of team meetings.
We are also progressively translating existing documents into English. For example, we added English to Pull Request templates, and add translated versions of existing minutes when they are shared. We have a mind map that defines the team's long-term goals, and A-san used machine translation to convert the document from Japanese to English.
How we do it
Since the members were not originally good at English, there is a burden on us to be honest. However, if we force ourselves to proceed, we will not be able to continue, so we are developing techniques for using English through trial and error.
Specifically, we have devised the following.
Agenda templates for regular meetings.
We have prepared agenda templates in English for daily meetings, sprint retrospectives, and sprint planning. We had been prepared templates in Japanese prior to A-san's participation, but we have now converted them into English. We rotate the facilitator of the regular meetings, and by following the agenda template in English, the facilitator run the meetings smoothly in English.
Closed captioning for Google Meet
We feel that A-san's English is quite easy to understand, but listening is still quite difficult for us. Since our meetings are held remotely, we make use of the subtitle function of Google Meet. By listening while reading the subtitles, I feel that my speed of understanding the content has improved.
There is also a function to translate subtitles into Japanese, but we did not use it because the accuracy was not good enough.
Machine translation by DeepL etc.
We use machine translation for translating what we want to say into English and for writing documents in English. In particular, when a meeting facilitator or the mob programming driver is sharing their screen, they open the DeepL translator and use it to assist in translating as needed.
Although recent machine translations are highly accurate, they may not be correct. In particular, when writing Japanese without specifying the subject, "you" is often translated as the subject. This is a common source of misunderstanding, so it is essential to be aware of such quirks of the translator.
"It's a little hard to explain, so let me explain it in Japanese."
During a meeting, it can be difficult to discuss complicated topics English. For example, when discussing the design of a feature or the priority of a task, there are times when it would be difficult to summarize even in Japanese. In such cases, we allow discussion in Japanese by saying, "Excuse me, I will speak a little in Japanese".
At this time, we are careful to limit discussion in Japanese to only one topic at a time. We always share the conclusion in English after the discussion in Japanese is complete. We are careful about this because if the only non-Japanese native speaker on the team is A-san, and the discussion in Japanese goes on for too long, A-san has essentially been excluded from discussion. This defeats the purpose of having A-san participate in our team.
The Impact of English conversion
A-san actively contributed to our team as soon as he joined. He has been proactive in making comments and suggestions at meetings. We feel that he has been very successful in strengthening our team. This is the first time for A-san to work with a Japanese-speaking team, but he cooperated with our "poor English". For example, when the discussion during a meeting was difficult to understand, after the meeting he presents his interpretation and asks us to confirm if his understanding was correct.
We are also in the process of preparing the entire development organization for the participation of non-Japanese native speakers. For example, we have rewritten our Pull Request template in English, and are making documentation available in English. there is still much to be done, so we will continue to work on this.
Our team has grown more comfortable with meeting procedures and communication in English. We are beginning to see some "patterns" for using English in our team development process. However, I feel that it will be difficult to transfer these patterns to other teams in their current form. The workload and nature of the tasks of engineers in other teams varies widely. Nevertheless, we would like to create a better engineer organization by accumulating and sharing our innovations as a precedent.
In this article, I introduced our team's efforts in using English as our official language. ANDPAD's development organization in Japan currently includes many teams whose native language is Japanese, teams like ours whose official language is English, and teams that use both English and Japanese. We also have people who can act as a bridge to the Vietnamese development organization. You do not need to be fluent in English. If you are an engineer interested in working in English or want to utilize your multilingual skills, please contact us.
ANDPAD is looking for people to join our team. We look forward to improving our engineering organization together! If you are interested in joining with us, please apply or contact us from the link below.