2014年9月28日日曜日

英語コミュニケーションにおける graceful degradation

前回の英語関連エントリが評判よかったようなので、もう 1 つ英語ネタで。

英語環境で仕事をするようになってから、「どうしたら英語が上手くなりますか?」という質問をよく受けます。最も効果的で汎用的な英語が上手くなる方法は、「遅くとも高校から英語環境で生活する」ことだと思います。日本人の同僚を観察するに(ということは統計的にはほとんど意味ないんだけど)、高校から海外だと発音もきれい、大学からだとコミュニケーションは流暢だけど発音はダメ(なことがある)、という感じを受けます。

・・・という、ほとんどの日本人(私を含む)に適用不可能なことを書いても意味が無いので、もう少し別のことを書きます。

「どうしたら英語が上手くなりますか?」という質問の真意が「どうしたら英語で仕事ができるようになりますか?」=「英語で仕事ができるようになるには何をすれば良いですか?」なのだろうと解釈すると、いろんな本・サイトに「Yes/No をはっきりする」とか「マネージャーと積極的に話す」とかいろいろ書いてありますが、それ以外に、英語で仕事する前に知りたかったなぁと私が思うのは、「コミュニケーションにおける graceful degradation」です。

システムの graceful degradation とは、あるモジュールが失敗したときに、システム全体が失敗するのではなくて、品質は低下してもいいので回答を返す、という考え方です。
コミュニケーションにおける失敗には「聞いていても分からない」「話してることが伝わらない」の 2 つがありますが、前者の方が圧倒的に多いので、そちらについて考えます。

例えばこういう状況がありえます。
"So I think the problem is ajfxwa dafjsf wafewef.  Probably it was under heavy GC due to ljdfaefew ffljfk adjfwe, or adfj kjkfj.  I can think of three possible solutions.  One, adfwefawejaef.  Two, adfawae.  And maybe adfaseafef.  What do you think, Ken?"
自分が知ってる単語と基本的な英文は聞き取れるので、「何か問題が起こっていて、GC のせいらしい。彼は 3 つの解決方法を考えていて、自分の意見を求めている」ということは分かったけど、重要なところが全然分からない。

"ajfxwa dafjsf wafewef" が聞き取れるように、「えいご漬けをやりましょう」「フィリピン英会話をやりましょう」「外国人の彼女を作りましょう」というのは、それはそれで中長期的には大切なことだと思います。が、まさにいま聞かれてるその内容が分からないときに「リスニング力を高めましょう」というのは答えになってません。そして、何をどれだけ頑張っても、こういう状況は日常的に発生します。

まずやってはいけないことは、フリーズしたり、「何かわかんないけど Yes と言っとこう(あとで誰かに聞こう)」というやつです。これはコミュニケーション全体が失敗したことになります。
"Pardon?" とか "Can you repeat that?" とか言っても良いのですが、これは要するにリトライなので、あまり graceful ではありません。
部分的には理解できているので、「ここは分かってる。残りが分からない」ということを相手に伝えられれば、建設的に話を続けることができます。

まず、全部は分からなかったことを伝えます。
"I don't fully understand that."
そして、聞き取れたことを元にして、聞き取れなかった点を聞きます。
"It was under GC due to what?"
"What are the three solutions again?" / "What was your proposal?"
(どうでもいいけど、2 番目の例のように過去形にすると、「(聞き取れたけど)忘れちゃった。何を提案したんだっけ?」という感じになる)

こういう質問にすると、自分が分からなかった点を明確になるので、相手の回答が分かりやすくなります。それでも分からなかったら、
"I still don't get it.  Can you draw/illustrate that on a whiteboard?"
などと言って、視覚的な理解に持ち込むという手もあります。

もしこれがミーティング中の会話で、「自分が分からないことでミーティングを長引かせたくないなぁ」と思ってしまう場合は、
"I don't quite understand it yet.  Can we talk offline?"
などと言って、その次の話題に進むこともできます。(この "offline" は「この後で」みたいな意味)


リスニング力を高めて多くの英語を聞き取れるようになるのは良いことですが、それよりも重要なのは、聞き取れなかったときにできる限り graceful にコミュニケーションを継続することだと思います。
仕事における会話はだいたいパターンがあって、その対応に必要な英文も暗記できる程度しか無い、と私は思うので、まずそれを覚えることを昔の自分にすすめたいです。(逆に、ランチタイムのどうでも良い話はパターンが無いのでとても難しい。)

「そのパターンと定型文はどこで手に入るのか」というのが問題ですが、・・・機会があればまとめてみたいと思います。

ミーティングについては、この本がパターンと定型文がまとめているので、とても良いと思います。(全体的にソフトウェア業界には硬すぎる英文だけど・・・)


2014年9月21日日曜日

「英語が苦手でもアメリカで働けるけど偉くなるのは難しい」

というような言葉を今までに2, 3人から聞いたので、実体験に照らして書いてみます。結論から言うと、これは自分の経験と合ってます。

まず前提として、私は今まで 2 つのアメリカ系会社で働いたけど、どちらも「働きやすい会社ランキング」みたいので 1 位、2 位に入るようなホワイト企業です。こういう会社は、大抵 diversity を重視してるし、社員の教育レベルも高いので、英語が下手というだけでマイナスになることは(少なくとも目に見える範囲では)ありません。まぁ、そうではないブラック企業に英語が苦手な日本人が入社することは考えにくいので、これはそれほど無謀な前提ではないでしょう。
あ、あとソフトウェアエンジニアであることが前提です。英語が苦手な人がアメリカで弁護士として働くのは無理でしょう(どうだか知りませんが)。

英語が苦手でも働ける
これについては、2 つの理由が考えられます。

  1. コードが共通語になる
  2. 結果を出していくうちにコミュニケーションコストが下がる

1 つめは当たり前ですが、ソフトウェアエンジニアの成果物はソフトウェアであって、ドキュメントではないので、コミットメッセージの文法が間違って(よくある)ても、デザインドキュメントの文章がこなれてなく(よくある)ても、それだけで問題になることはありません。
もう 1 つは、仕事で結果を出していると、「この分野については彼が凄く詳しい」「彼にレビューしてもらうと有意義なコメントをしてくれる」と思われて、質問・相談される機会が増えます。相手は明確に知りたいことがあるから耳を傾けてくれるし、こちらは自分の得意分野を話せばいいし、これは楽です。

ものすごく主観的ですが、エンジニアの能力を
α × [技術力] + (1 - α) × [コミュニケーション力]
で測れるとすると、α = 0.8 かなという感じです。0.5 では絶対ないし、0.95 でもないです。両極端のケースを 2 つとも見たことがありますが、どちらもうまくいきませんでした。

英語が苦手だと偉くなるのは難しい
「偉くなる」をきちんと定義すると「job level が上がる」ということです。Engineer 1 とか Junior Analyst などから始まって、上の方には Principal Engineer とか Fellow などがあります。Job level が上がることによって、

  1. ディスカッションが増える
  2. 仕事を delegate しないといけない
  3. 全然知らない人と話す機会が増える

ということが変わります。自分の経験上は。

まず、ソフトウェアの設計や方向性がそもそも正しいのか、目的に合致してるのかということを議論する機会が増えます。この時点ではコードは無いし、ドキュメントはあるとしても凄く大雑把なので、口頭での議論になります。あと、「明らかに間違ってる」とか「もっと効率良く書ける」ことを指摘するのに比べて、「こっちのデザインの方が良いんだ。なぜなら、将来的にこの方向に拡張する可能性が高いから」という議論は、客観的に確実な正解がないぶん、難しいです。

次に、今まで自分がやっていたことを junior developer に任せて、自分は別の仕事をすることになります。が、自分の経験的には、英語が苦手だと delegation を避けたくなります。
例えば、自分でやれば 2 時間で終わる仕事があり、delegate するとなると最初の説明と、その後のサポートに 1 時間かかりそう(でも英語が流暢なら 15 分かも)。となると「じゃあ自分でやるか」と考えてしまいがちですが、これを続けていると、いつまでも同じ仕事をすることになってしまいます。だいたい、2 時間で終わる仕事というのは、その後のサポートとかを考えると、トータルで費やす時間は 2 時間どころじゃないものです。そうすると、本来自分がやるべき仕事のための時間が無くなってしまって良くないです。

そして関わる人の範囲が広がります。最初の頃は、自分のチームとマネージャーと、担当のプロダクトの人を話してれば良くて、みんなが自分のことを知ってるので話しやすいです。これが徐々に、隣のチーム、全然知らないチーム、大きなプロジェクトのプロジェクトマネージャーと、セキュリティの話をセキュリティ担当者と、予算の話をキャパシティチームと、製品の適合性について買収予定の会社の人と、などなど、自分の土俵外の話を、全然知らない人と話す機会が増えます。



ということで、「英語力の不足を技術力で補う」ことがだんだん難しくなる(ように私は思う)という話でした。これもチャレンジだと割り切って、楽しめれば良いと思います。
あと、「英語が苦手」な人は「英語が下手」なんだけど、「英語が下手」でも「英語が苦手」とは限らなくて、稀に「下手だけどちゃんとコミュニケーション取れてる」人がいますよね。そういう人はいいなーと思います、ホントに。