今週末は3連休!仕事も最近バタバタしてたのがだいぶ落ち着いてきたし、またこっちで働くことについて語ってみようかね。

 

 

アメリカで「まっとうに」ソフトウェアエンジニアとして働くのに、どのくらいの英語力が必要かというと、ぶっちゃけめっちゃ必要!要は、こっちの大学でコンピュータ・サイエンスを専攻して、一般教養の英語(ライティング)やスピーチ、歴史、社会学、その他諸々のクラスの他、専攻の教科を全部こなして、卒業できるくらいの英語力が必要よ!

 

例外は、例えば日本のオフィスで採用されて、アメリカのオフィスにトランスファーしましたっていう場合かなー。「日本から来たお客さん」枠に入るから、こっちの人よりはちょっと大目に見てもらえる(ように見える)。

例えば、日本から来た英語がそれほど流暢でない人に、あえて(必要最低限以上の)プレゼンテーションさせたり、新規採用での面接官のパネリストにさせたりはしない。そういうのは、ちゃんと察してもらえる。。。(少なくともはじめのうちは。)

でも逆に、他の人がやってる仕事をやれてないわけだから、プロモーションとかちょっと難しくはなると思うけど。

 

 

じゃあ、まっとうに周りのネイティブスピーカーと同じだけの業務をこなすのにどれだけ英語を使うのかというと、日々のコミュニケーション以外に今考えつくのはこんな感じ。

 

1)日々のスクラム・ミーテイング

今はアジャイルでの開発をしてるとこが多いと思う。

アジャイル方式は、ソフトウェアの機能を小さく分けて、早いペース(2〜4週間)単位でリリースしていく方式。小さい機能をリリースしたら、また次のプランニングのサイクルに入っていく。そうやって、機能を徐々に追加していく。

なので、日々の進捗管理が重要になってくる。つまり、ほぼ毎日、30分から1時間程度のスクラムミーティングが行われる。

チーム全体の現在のタスク一覧をみんなで見て、それぞれの担当者が進捗状況、なにかトラブル(ブロッカー)がないかとか、今日はどの作業を行うか、など、それぞれ報告し合ったりアドバイスしたり・もらったりする。

そうやってチームメンバー(10人前後くらいかな)を一巡するので、さくさくとテンポよく話さないといけない。

 

その他プロジェクト関連のミーティングも色々節目節目である。

 

 

2)ドキュメントの作成

色々ドキュメントがあるわね、仕様書とか、障害が発生した場合、その報告書とかね。。

書いたドキュメントはミーティングでチームメンバーに口頭で説明してフィードバックをもらったりする。拙い英語で書いておしまい、じゃない。

 

 

3)サポートのトレーニング

新しい機能ができたら、リリースに合わせて技術サポートの人たちにトレーニングを行ったりする。小さい機能追加なら必要ないんだけど、大規模な機能が追加されたら、その新機能の説明、デモ、簡単な技術デザイン、既存の問題や制限、トラブルシューティングの方法、よくある問題、などなどを説明し、質疑応答を行う。大抵チームの数人で共同でプレゼンする。

 

 

4)サポートチームからのエスカレーション

もちろん開発チームは顧客とは直接コミュニケーションは取らず、そういうことはサポート部門が行う。

でももしサポートが問題を解決できない場合、そういう場合はサポートから開発チームにエスカレーションされて調査依頼がされる。

そうすると、その時々の担当エンジニアがサポートの担当者とコミュニケーションを取って、問題解決していく必要がある。

 

 

5)障害対応(オンコール)

緊急な障害対応が必要な場合、時間帯に関わらず、必要に応じてその機能を開発・実装したチームが呼ばれることがある。

たいていそういう緊急を要する場合は、色んな部門から関係者が集まってウェブミーティングをして、リアルタイムでデバッグしたりログ解析したりして、ディスカッションして解決策を模索する。障害が解決するか原因が特定されるまで、何時間経っても開放されないこともある。

 

 

 

そういうわけで、技術力さえあれば引きこもってコーディングしてればいい、ってわけじゃないのよ。

(あんま引きこもってるだけだと、昇進に響く。)