今年も RubyKaigi の日がやってきた。
RubyKaigi が終わると、だいたい決まって皆、「あー、もっと英語ができたらなあ」とか言うのがお決まりだ。初めて Ruby 会議に参加したのはもう7年前 になるのだけど、その頃から比べると、海外からの参加者がたくさん増え、セッションもほぼ半分は英語でのものになった。そんな中、僕も含めてだが、自分の英語の未熟さを改めて痛感する機会なのではないだろうか。
そんな人たちにオススメの方法を紹介したい。それは「インターナショナルなメンバーで構成される開発チームの会社で働く」ことだ。いま、コントラクターとして開発のお手伝いをさせてもらっている MediWeb での経験を実例に書いてみる。
9月から MediWeb でお世話になっており、Gold Sponsor 枠で RubyKaigi に参加させてもらったのでそのお礼という意味もあるが、あくまで個人の見解で、この働き方がエンジニアにとっては結構いいんじゃないかと思っているので、勝手に個人のブログで紹介しています。
英語に慣れることができる
まず、僕のバックグラウンドを紹介しておくと、2000年 - 2004年の4年間、サンフランシスコに本社を置くソフトウェアの会社で国際化やローカライズをおこなう QA のエンジニアとして働いていた。なので、一応英語でエンジニアとして仕事をすることは経験している。とはいえ、同僚はネイティブではなくロシアやウクライナ出身のソフトウェアエンジニアばかりだったので、一番聞き取りやすいのはロシア語なまりの英語という感じだった。普通の人よりは、そりゃあだいぶしゃべれるとは思うが、自分的には4年間住んでいたわりには、うーんあまりうまくなってはいないなあ、という自己評価だった。
さらに10年以上のブランクでだいぶ僕の英語力は落ちていたのだが、MediWeb で働き始めて3ヶ月経ち、だいぶ元に戻ってきたかなあと実感している。
3Bees というクリニック向けに予約管理や順番管理の機能を提供するクラウドサービスを Rails で開発しているのだが、本番環境にデプロイするコードは必ずペアプログラミングで書くということが徹底している。開発チームの出身は、フランス・ウクライナ・ポーランド・アメリカ・カナダなど国際色豊かで、そのメンバーと変わるがわるペアを組む。なかには日本語ペラペラの方もいるとは言え、ほぼコミュニケーションは英語、さらにランチも開発メンバーと一緒に行けば英語しばりなので、毎日英語のフリーレッスンを受けているのと同じだ。他にもソースコードのコメント、PRのコメントなど、デフォルト言語は英語だ。
正直最初の2週間とか知恵熱出そうだったが今はもうだいぶ慣れてきた。お金払ってフィリピン留学などして英語を勉強する人がいる中、お金もらっている上に英語も勉強できるなんて、なんともお得な環境だと思う。
今までにない笑いのセンスとかが新鮮、色々な価値観に触れることができる
開発はスクラムの手法にのっとって行なわれ、1週間が1スプリントなため、毎週金曜日にレビューをおこない計画をおこなったあとに、ときにはオフィスで軽くビールを1杯2杯飲んで祝ったりする。
ビールが入れば酔拳よろしく、僕もだいぶ話せるようになり、そんななかである時、フランス語の R の発音は日本人には難しい、みたいな話をしたら紹介された動画がこちら↓
VIDEO
いやあ、これだいぶツボに入って笑ったんだが、こうした笑いの感覚が日本人とはちょっと違っていて面白い。ほかにも北欧の国のどこかのコメディ番組でしかけるドッキリとかも見せてもらい新鮮だったり、CSS で手こずっているときには、Slack で「これ見ろ!」とか言ってこんな Gif 画像が送られてきたり。。こういうのを何と言えばいいのか、上品というかなんかウィットに富んでいる感じだ。
View post on imgur.com
なかには、え?まったくわからんよ、というものもあったりはするが、それも含めて楽しめることができる人には良いんじゃないかなと思っている。
日本的ブラックさが皆無
性格的に結構遠慮がちで、意外と気をつかってしまう。ちょっときついこと言われると気にしちゃったり、「あの人、僕のことどう思っているのかなあ?」とついつい気にしてしまう性格なのだが、そんな僕がアメリカで働いていたときは、正直相手がどう思っているのかとかまったく察しがつかないため、そうした気遣いがほぼ不要で、人間関係で悩むことなく、楽だったことを覚えている。
インターナショナルな開発チームだと、それとかなり似た感覚で仕事ができ、僕にとっては懐かしく心地よい。
新卒で入った会社はそれなりに日本的で、「飲みにいくぞ」と言われたら必ず行かないといけないみたいな上司部下、先輩後輩の間柄というのがあり、大学で一応体育会系の、例えばビール瓶はラベルを上に向けて注ぐといったしきたりを経験してきた僕にとっては、それはそれで楽しくもあり苦ではなかったのだが、継続的に心おだやかでいられるには、欧米式のいい意味でドライな関係というほうが向いている。たぶん多くのソフトウェアエンジニアと共通する価値観じゃないかと思う。
それぞれ自分の時間を大切にするという価値観を持っており、むしろ定時で帰ることがよしとされる。睡眠不足や働き過ぎ、体調崩して、普段のパフォーマンスが出ないのならプロフェッショナルではない、とみなされるようだ。
プロフェッショナルであるという感覚、チームで開発しているという意識が強い
コードは必ずペアプロでおこなう、Pull Request は必ずペアに入っていない別の人にレビューしてもらうなど、開発をすすめていく上でのルールをきっちり守るという雰囲気がある。アメリカで働いていたときにも良く思っていたことだが、決めたルールには皆ちゃんと従うんだなあという印象を持っていた。その理由ははっきりしないのだが、アメリカでもそしてインターナショナルなチームでも言えることであるが、価値観の違う様々なバックグラウンドを持つ人同士で仕事をするには、明文化されたルールだけが唯一の共通のよりどころになるため、よりきっちり守るのだろうかと思っている。
日本的感覚だと、「なにも杓子定規にきっちりしなくても」とか、「融通利かせようよ、こういうときは例外ね」とか言って、なあなあになってどんどん例外が増えていき、破綻し始めるということがある。一方、少しずつルールを最適化していきながら、それにはきっちり従うということを続けていくと、うまく回り始めた時に、特にソフトウェア開発ではとても効率的に物事が進むようになる。
一方で、いい意味でドライということと一見矛盾するかもしれないが、スプリントが終わったときの軽い打ち上げや、障害対応でランチとれなかった時には皆でピザを注文してオフィスで食べるなど、チームで開発しているなあと感じることも多い。
誕生日のときに覚えのない Pull Request がアサインされていて、開いてみたらこんな感じの内容で↓ 粋な感じだ。
まとめ
ソフトウェアエンジニアとして働くなら、海外の会社が環境的に良いと思うのだけれど、たとえばアメリカで働くとなると生活のこととか、こどもがいたら教育のこととかそれなりに大変だ。加えて、サンフランシスコはまだだいぶましだとは思うのだけれど、メシがあまりよろしくない。
「インターナショナルなメンバーで構成される開発チームの会社」でならこれまで挙げた外国で働いたときには得られるメリットを享受しつつ、東京ならおいしいところはたくさんあるし、治安が最高の日本という環境で生活できる。
Ruby/Rails で開発をおこなっているインターナショナルな会社は、探せば存在するので、これまで紹介した環境にあいそうだなあと思う人は、そうした会社で働くことにチャレンジしてみてはどうだろうか。
MediWeb もそうした会社のひとつで、RubyKaigi ではチームのメンバーがウロウロしているはず。僕も参加するので、もし興味があったら @jishiha にメンションをくれれば、どんな感じで働いているのか紹介しますし、開発チームの人にもつなげます。
あるいは本気に正式にコンタクトしたいという方は、こちらへ↓
» 医療クラウドのメディ・ウェブ | 採用情報