「仕事で使うのは英語とPerlと第六感?」〜シックス・アパート・エンジニア対談

こんにちは。Six Apart ブログ編集部です。

先週、YAPC::Asia 2012の開幕にあわせて、Movable TypeのエンジニアLekumoシリーズのエンジニアの仕事ぶりをお伝えする記事を公開しましたが、今週はエンジニア対談ということで、プログラム言語や、英語、働き方、キャリアなどについて、ざっくばらんに語った内容をお伝えしたいと思います。聞き手は、Lekumoシリーズ エンジニアリング・マネージャの重田です。

taidan3.jpg左から、Lekumoシリーズ エンジニアリング・マネージャ 重田崇嗣、Movable Type エンジニア 高山裕司

重田 今回、採用ページをリニューアルしたということで、こう、エンジニアの対談をやってみようじゃないかってなったんですけどね......。でも、エンジニアって、こういうの読むのかなあ、長いと全然読まないんじゃないかと心配してるんですよね(笑)。

高山 読まない読まない(笑) せいぜい2ページくらいまでかなあ......。最初にツカんじゃえば長さは気にならないんですけどね。

重田 ふうむ......。

高山 む......。

英語の読み書きは......必須です!

重田 ハードル上がりましたけど、じゃ、始めますか(笑) えーと高山さんはどんな職責なんでしたっけ。

高山 Movable Typeのリードエンジニアですね。要求仕様をかき集めて、スペックに落としこんで、エンジニアさんに実装してもらって、チェックして、QA(Quality Assurances 品質保証)のチームに回す、というような、開発部隊のマネージメントです。

重田 チームのコミュニケーションツールはなに使ってます?

高山 Wikiですねえ。こういうスペックのページ作りましたよ、ってみんなに知らせて。そのスペックにフォルダができて、そこにアサインした人がコード書いて、って、何かあったらまたWiki書いて、みたいな感じです。
※ 2015年現在、改めて高山に現在の状況を確認 →「日々のコミュニケーションには Slack をメインで使っています。エンジニアだけではなくマーケの人なんかともチャットしてます。また、コミットやデプロイの結果を流したりしています。UI デザインなどは InVision、仕様などは Google Docs も利用しています」。

重田 ひたすら資料書く、っていう感じですか。

高山 そうですね。仕様とスペックのディスカッションは時間をかけます。開発では、最初の立ち上がるときの交通整理、って役割が一番大きいかもしれません。

taidan6.jpg

重田 海外の人と開発でやりとりしますか?

高山 直接、機能を担当してもらう、というのはないんですけども、ドキュメントの英語チェックとかはしてもらいますね。あとはバグリポートや新機能の追加リクエストが普通に外国から来ますし、それの対応をGithubでやったりしています。社内のコミュニケーションはもちろん日本語なんですけど、ドキュメントに落とすのはみんな英語です。社内には外国人のエンジニアもいますから。

重田 エンジニアとはいえ、英語の読み書きは必須......なのかな、必須だな、これは(笑)

高山 必須ですね(笑) バグ管理とかオープンなところで英語でやってるので。

重田 ちなみにいうと、英語はうちの会社入って英語力上がったんですか? それとも前職とかですでに上手かったとか?

高山 いや、ほんと会社入ったときは学校レベルでしたよ(笑) でも僕が入った時はシックス・アパートにまだアメリカのオフィスがあって、そこのメンバーと開発したりチャットしたりビデオ会議したりしてたんで、それで結構伸びましたね。駅前留学はしてないですけど(笑) ポッドキャストとかテレビの英会話番組も見たりしました。

重田 やっぱり勉強はしたんですね(笑)

高山 一応(笑) あーでも、一度中学レベルの文法を、なんか本買ってきておさらいしたんですけど、けっこうあれ、役立ってます。実はこれでけっこう会話できんじゃん、みたいな。もう、開発者同士の英語ってシンプルですし、使われる単語も決まってますし。あとは関係代名詞さえ押さえれば。

重田 僕の経験だと、時制って大事だなあと。過去形とか進行形とか。そのへんごちゃごちゃにしちゃうと、え? 仕事終わってんの? やってんの? どっちなの? みたいになっちゃって(笑)

高山 そうそう(笑) 特にミーティングとかだと文字にならないから過去形とか聞きにくいんですよね。

重田 でも、こっちが日本人ってわかると英語のレベル落としてくれますよね、たいてい。現地の人同士でしゃべってると「あれ、全然わかんねえ! この人いつも手加減してくれてたんだ」みたいな。

高山 あるある(笑)

重田 なんか、すげえ「英語できないとダメ」みたいな、厳しい流れになってきてますけど、ほんと、入ってくる前は中学レベルですから。ぼくも。

Githubにソースを公開するのは怖い?

重田 ちょっとMovable Typeの話に戻したいんですけども、有料の製品なのにGithubでソースが公開されているのって珍しいですよね。

高山 公開されているのはMTOS(Movable Type Open Source)ですね。でも、コアな部分は変わらないので、落としてきてビルドすればほとんどのMTの機能は使えます。
※2015年現在、オープンソース版の提供はしていませんが、ソースコードは公開しています。

重田 でもやっている仕事が、ほとんどオープンになっているのってエンジニアとして怖くないですか?

高山 以前は非公開で、社内で管理していたんですけど、一回、オープンのレポジトリになってそこにコミットするようになると、自分のコードが晒されて、ツッコミ受けて、また直して、って繰り返しているうちにわりと慣れてきたところはありますね。最初はすっごく怖かったですけど。コミットログはでも、社内限定の時よりも丁寧に書くようになりました。ツッコまれるの怖いから(笑) スピード的な仕事のパフォーマンスは一旦、落ちましたけど、慣れてくるとスピードも戻るし、チェックの精度は上がるので、結果的にはいいかなあと。

taidan1.jpg

重田 自分のコードを晒すの、抵抗ある人も多いですよね。

高山 そうですね。オープンソース系で活動でもしてなければ、みんな社内のコード書いてる人ばかりですし、それが普通だろうなあとは思います。でも今はGithubで活動する人も多いですし、特に若い人なんかは敷居が随分下がってるんじゃないかなあとは思います。

重田 これからのMovable Typeの開発は、やっぱりオープン前提で、っていうのは変わらない感じですか。

高山 そうですね。製品の価値としてどう、というのもありますけど、まず第一に作る側の姿勢としてオープンというのは大事にしたいですね。今でも、Githubのブランチ見ていただければ、あーこんなことやってんだー、っていうのがわかってもらえるかなーと思います。

プログラムを学ぶにはやっぱり写経

重田 今、MTの開発はどんな言語でやっていますか。

高山 Perl、PHP、JavaScriptあたりでしょうか。あとMTの場合はテンプレート書くときにHTML、MTタグがありますね。

重田 割合的にはどこがメインですか。やっぱりPerl?

高山 メインはPerlですね。管理画面はPerlですし。PHPは外部のものを見るときに使うくらいなんで。8対2くらいかな。

重田 ところで、高山さんってもともとPerlの人なんですっけ?

高山 Perlの人ではないです(笑) ちょいちょい書いてましたけど、VB、VC、Javaとかやってました。CGIを使うときにPerlをちょっといじるくらいで。Perlはメインじゃなかったです。

重田 じゃあ、英語と同じく、ここに入ったあとにメインになったという。中学生レベルのPerlってことか(笑)

高山 そうです(笑) うわあ、CPANってラクだなあ、みたいな(笑) やっぱり、自分で目的もなく勉強するより、仕事で要求される方がそりゃ、身につくのは早いですよね。趣味でかじって、仕事でとことんしゃぶりつくす、というか......。

重田 仕事だと、「できない」って言っちゃうと終わっちゃいますもんね(笑)

高山 そうそう(笑) 僕なんか前職は小さいSIerだったんで、お客さんになんか言われたら「とりあえずできま......や、やってみます」みたいな感じでしたし(笑)

重田 勉強はどうやってやりました? 僕なんかはもっぱら写経で、参考書買ってきてひたすら写して書いてって、言語のご作法覚えてく、みたいな感じだったんですけど。

taidan2.jpg

高山 基本は写経ですよね。やっぱり手を使って脳使って目を使って、ってやらないと覚えないですよね。本をパラパラ見るだけだと。

重田 こういうものを作りたい、ってところまで行くと急に楽しくなりますよね。参考書とかだと、ほら、つまんないものしか作らないから(笑)

高山 そうそう、ありますね。自分で課題が作れるようになるとほんと面白い。

「パートタイムからでもいいので応募してみて!」

重田 えっと、そもそもこの対談、エンジニア採用のためにやってるんですけども。けっこうなんというのか、うちの会社、ガチガチの教育プランとかなくて、自由な空気ですよね。

高山 うん。なかなかエンジニアは型にはめるの難しいし......(笑) 面接なんかするときはわりと、ファーストインプレッション大事にしてます。もちろん書類通ったあとの話なんですけど。けっこう第六感的なところに頼ってます(笑)

重田 あの、採用コンテンツとして第六感と言われると、「これからシックス・アパート応募しようかなあ」って思ってこのコンテンツ読んでる人になんにも役に立たないんですけども(笑)

高山 いやいやいや! そんな難しい話ではないんですよ!(笑) えっと、今度採用するときは、コード実際に目の前で書いてもらうのとかやってもらおうと思ってるんですよね。ってのは、僕が入った時、平田さん(平田大治。当社CTO)に、「じゃ、このバグを今直してみてもらえますか」って言われてやったのが妙に印象に残ってて。で、目の前で直して平田さんに見せたら「んー、そうだねー、じゃこれコミットしといてください」って言われてその日のうちにコミットして(笑)

重田 それ面接っていうよりもう普通に業務やってんじゃないすか(笑) それで採用になったんですか?

高山 なんかよくわからないですけど、コミットされたし大丈夫なんじゃね、とは思いましたけど、実際のところどうなんだろう。今度聞いてみよう(笑)

重田 へえー、面白い逸話だなあ(笑) 第六感はとりあえず置いておいて、書類はどんなとこ見ていますか。

高山 うーんと、やっぱりパッションです(笑) もちろんパッションだけではまあ足りなくて、経験です。経験っていっても、ただの言語とか、開発経験とかじゃなくて、総合的なお仕事としての経験。というのもMTの開発ってパッケージなんですね。すぐにお客さんのところに飛んでいけないし、導入から運用まで面倒を見れるわけでもない。バージョンもただやたらめったら上げればいいわけではないので、なにをやるのか、やらないのか、っていう取捨選択が大事なんですよね。こんな機能があるべきです! ってどんなに理詰めで来られても、リソースによっては削らざるをえないこともあるし。いろんな要求を持ってガンガンぶつけるような積極性を持ちつつも、そこに固執しないで全体を見据えた考えも同時にできる、っていう柔軟な人が理想です

taidan4.jpg

重田 また難しいことを......(笑) ところで今は、パートタイムのエンジニアも募集してるんですか?

高山 えーと、こだわりはないですね。パートタイムからでも、フルタイムからでも。とにかく応募してみてよ! って感じです。あとは僕の第六感ですけど(笑)

重田 やっぱり第六感なんだ(笑)

シックス・アパートでは現在、エンジニアを募集しています。詳細はこちらから。

Six Apart をフォローしませんか?

次の記事へ

ゆるふわトフトフ通信vol.3 ~ Movable Type 11周年おめでとー! ~

前の記事へ

Movable Type の Windows Azure 対応のお話