大事なのはコーディングだけじゃない……伊藤直也氏はエンジニアの力をどう評価するか

description

給与水準が高まり人気を集めるソフトウエアエンジニア職だが、優秀かどうかを評価するのは簡単ではない。面接でのコーディングテスト、競技プログラミングなどでスキルが比べられることもあるが、それらは実務とどれほど結びつくのか。また、そもそも高評価され多くの報酬を得るエンジニアとは、どんな力に富んだ人材だろうか。

エンジニアやデータサイエンティスト志望の大学生に向けたオンライン就職イベント「外資就活Terminal」の基調講演では、宿泊予約サイトなどを手掛ける株式会社一休のCTO(最高技術責任者)で、過去にソーシャルブックマークサービス「はてなブックマーク」の開発に携わったことでも知られる伊藤直也氏が、こうした疑問に対して持論を展開した。

聞き手は、外資就活Terminalを主催するハウテレビジョンの大里健祐CTO。昨今話題を呼んだブログ記事や投稿を取り上げつつ、エンジニアの評価に加え、開発組織の「心理的安全性」、注目すべき就職先などについても伊藤氏の見解を聞き出した。【藤崎竜介】
◇本記事は、2021年6月28日開催の外資就活Terminal基調講演の一部を編集したものです。

〈Profile〉
伊藤直也(いとう・なおや)
株式会社一休 執行役員CTO。
青山学院大学大学院博士課程前期修了後、新卒でニフティ株式会社に入社し、ブログサービス「ココログ」を開発。その後、株式会社はてなの取締役CTOに就き、はてなブックマークの開発などを主導した。フリーランスでの活動などを経て、2016年4月、一休の執行役員CTOに就任。
大里健祐(おおさと・けんすけ)
株式会社ハウテレビジョン CTO開発部長。
受託システム開発の現場などで経験を積んだ後、2015年10月ハウテレビジョンに入社。外資就活ドットコムの開発に携わり、モバイルアプリの刷新やGo、ReactNativeの導入などをリードしてきた。2020年3月よりCTO。



競技プログラミング強者は総じて優秀。でも仕事で活躍できるかは……

大里:最近、エンジニアの技術面接などをテーマにしたこちらのブログ記事が話題になりました。CTOを務める一休では、採用時にコーディングテストをやっていますか。

伊藤:いえ、実はあまり積極的にはやっていないんです。

大里:なぜでしょうか。

伊藤:以前の会社で、コーディングテストをやっていた時期もありました。それで、ある面接で候補者に社員3~4人の前でテストを受けてもらったのですが、その人は完全に手が止まってしまい……1文字も書けなかったんです。

でも結局我々は採用して、その彼は今、ある会社のCTOをやっています。

大里:当時、なぜ採用したのでしょうか。

伊藤:実は知り合い経由で彼のことを知っていて、選考の前段階から実力があることは分かっていました。コーディングテストは、他の候補者もやっているから一応やってもらったという感じですね。

結果、技術力があるはずの彼が1文字も書けなかった……。「このテスト自体が何か間違っているんじゃないか?」という感じでしたね。そんなこともあり、コーディングテストをやらなくなっていきました。

コーディングテストって、すごく特殊な状況ですよね。仕事では普通、コードを書いているところを誰かにじっくり見られることはないはずですから。

僕もすぐ近くでずっと見られていたら、うまく書けないかもしれません。

そんな特殊な状況への対応力を必ずしも試す必要はない、というのが当時の結論です。

今もコーディングテストをやっている会社はありますし、一概に意味がないとは言い切れないのですが、ある時点からやらなくなった会社が結構あるのは事実です。

description ↑オンラインで講演する伊藤氏

大里:なるほど。ただそうなると、エンジニアの技術力を採用段階でどう評価すべきか、という話になると思います。中途採用なら業務経験を深掘りすればある程度できるのかもしれませんが、新卒だと難度が高い印象です。

伊藤:僕の場合、中途でも新卒でも選考時の考え方はあまり変えていません。どちらも、候補者が過去に作ったシステムの基盤になる技術について、「なぜその技術を採用したか」といった問いにどう答えるかなどを重視しています。

対象の技術がReactでもNuxt でも何でもいいんですが、そうした質問にあまり明確に答えられないのだとしたら、合理的な理由ではなく雰囲気でその技術を選んでいる可能性があります。

単に便利だからとか速いからとかではなく、その技術の本質を理解して利用しているかは、すごく大事です。

あとは、過去に書いたプログラムを見せてもらいつつ、その設計について説明してもらうとかでしょうね。それで技術力はある程度分かると思います。

description

挙がっている記事には、競技プログラミングへの言及もありますよね。競プロはちょっと特殊な世界だと思います。やったことがありますが、求められるスキル、さらに言えば「使う脳みその種類」が一般的なソフトウエアエンジニアの実務とは全く違う印象です。

パズルを解くみたいなプログラミングというか……普通は実務でほとんど利用しないアルゴリズムを使ったりしますし。

大里:それが業務に直結するポジションもなくはないけど、結構限定的だったりしますよね。

伊藤:ええ。ただ、1つ言えるのは、競プロで強い人は間違いなくプログラミングが大好きですよね。総じて、エンジニアとして優秀な人は多いはずです。

一方で、だからといって仕事で活躍できるとは限らなくて、逆に競プロで勝てないからといってエンジニアに向いていないということは、ないと思います。

僕自身、競プロでは全然良い成績を出せませんでした。コーディングテストの話につながりますが、プレッシャーのかかる特殊な環境でプログラミングするのは苦手なのかもしれません……。

大里:競プロであまり勝てていない学生は、それを聞いて勇気づけられるかもしれないですね。

伊藤:まあ、とはいってもGoogleみたいに特殊環境でコードを書けるかをシビアに見る企業もあります。志望する企業がどんなポリシーなのかを踏まえて、考えたほうがいいでしょうね。

ソフトウエアエンジニアの年収をめぐる、「建前」論と「本音」論

大里:では次の話題に移りたいと思います。外資就活相談室のこちらの質問は、「実装が周りの10倍くらい速い優秀な人を引き止めるために、年収を10倍にする以外に何ができるか」といった内容でした。10倍速く実装できる人って実際にいるのでしょうか。

伊藤:何をベースに10倍なのか次第ですね。僕自身、プログラミング未経験者との比較なら生産性は100倍以上だと思いますが……。

まあエンジニアの一般的なレベルを基準にすると、その3倍くらい速く書ける人はそこそこいますよね。50人前後の開発組織なら、だいたい1~2人くらいは、そういう異常にコードを書く作業にフィットした人がいる印象です。

ただ、そうした人たちが周りの3倍の年収を得ているかというと、そうは言い切れません。そもそも、その人の生産性と年収は直接結びつくものではないですしね。

質問の内容からは少しずれてしまいますが、エンジニアの年収がどう決まるかについては、建前と本音の2通りの話ができます。

まず建前の話は、ビジネス上のインパクトにどれだけ貢献したかで年収が決まるというものです。極端な例ですが売上高1億円の会社が、あるエンジニアを採用することで10億円まで増収できるならば、その人の年収を2億円にしても十分メリットが出るわけです。

そのように、原則論だと年収はどれだけ業績に貢献したかが反映されるものです。

10倍の量のプログラムを書いたからといって、必ずしも売上高が10倍になるわけではないですよね。よくスキルが高ければ必ず報酬が高いと思われがちですが、それは誤解です。両者は関連性がありますが、直結はしていません。

description

確かに10倍速で実装できる人なら、10倍PDCAを回すことで、業績につながる成果を得やすくなるのかもしれません。

とはいえ、それはあくまで成果を左右するファクターの一つに過ぎません。コーディングスキルと同じくらい、性格だって重要ですから。

仮に大里さんが生産性10倍のエンジニアだとして、すごいスピードであるシステムを作ったとします。でも、マネージャーが「ここを直して」と求めた時、「はぁ?」みたいに拒むようなら、PDCAは回りませんよね。

周囲からのフィードバックを素直にコードに反映させられるかなど、生産性だけでない、いろいろなファクターがあります。

一方で本音の部分を言うと、報酬を決める最大のファクターは需要と供給の関係性です。その業界やその会社にとって大事で希少価値のある特質、スキルを持った人が入社すれば、必然的に高報酬になります。

多くの場合、この需給バランスがまず前提にあって、その上で活躍できているか、価値を出せているかで報酬が決まる感じでしょうね。

心理的安全性は、チーム内での衝突があってこそ。真理は少年漫画の中に……

大里:次の話題です。同じく外資就活相談室のこちらの質問は、「組織の心理的安全性をどう確保するか」についてです。

伊藤:これまでいろいろなチームを見てきましたし、心理的安全性が低いケースもありました。働く側から見たら、高い方がいいのは確かだと思います。

前提として強調しておきたいのが、心理的安全性は言葉の響き通り「いつも安心できる」みたいな意味ではないことです。

本当の意味は、例えば大里さんが変なものを作った場合、「それは違うよ」と言えるかどうか、その関係性を築けているかどうかです。言われた方も、傷つけるための厳しい言葉ではないと、信頼して受け止められるかどうか。そうやって躊躇(ちゅうちょ)なく議論できるのが、心理的安全性の高いチームです。「いいね!」と言い合い続けるチームではありません。

大里:ハードなコミュニケーションをするために求められる要素ですよね。

伊藤:そうですね。そして、それが確立されるにはある段階で衝突も必要だと言われています。「タックマンモデル」などが有名ですね。チームは形成期のあと、多くの場合「混乱期」を経て、統一期に至る……というモデルです。

少年漫画とかでも、個性的なキャラが集まったチームが良い雰囲気でスタートしつつ、たいてい中盤で崩壊しかけたりしますよね。その結果として、団結力が高まったりします。

開発組織でも同じようなことが起きるんです。長く続いている強いチームでも、時系列で振り返ると心理的安全性が低い時期があった、なんていうことが多いと思います。

なので、衝突が起きているからといって必ずしも悪い方向に向かっているわけではないですし、雰囲気が和やかだからといって心理的安全性が高いとも限りません。

一見良い雰囲気でも、衝突を恐れて次のフェーズに進めていないチームは結構あると思います。ひたすら優しい言葉を掛け合って、厳しい言葉は発しないみたいな……。

description

心理的安全性を確立する上で大事なのは、衝突し合ってでも達成したい「目的」があるかですね。

例えば一休では、2020年に「Go To トラベル」の対応ですごく大変なことがあったんです。新型コロナウイルスの感染状況などによって国の方針が目まぐるしく変わる中、毎日のように仕様を変えて「くらいついていく」必要がありました。

開発を担当したチームはそれまで、いまひとつまとまりに欠けていたのですが、そのプロジェクトを経て急に強くなったんです。大きな目的があったことが、影響したのだと思います。

大里:先ほど少年漫画の例が出ましたが、共通の強敵がいると団結して強くなる、みたいな感じでしょうかね。

伊藤:まさしく、通じるところがあると思います。

大里:なるほど。結構、真理は少年漫画の中にあるのかもしれないですね。

伊藤:そうかもしれませんね。「友情・努力・勝利」の世界というか。

就職するなら「フロンティア」にいる企業。自分が勝てる新しい土俵で勝負する

大里:この講演の視聴者に「伊藤直也さんに聞きたいこと」として募った質問では、「今就活生だったらどんな企業に入りたいか」というものがありました。

伊藤:あくまで僕の場合はですが、その企業がフロンティアにいるかというのが、一つのものさしになると思います。フロンティアにいかないとダメというわけではないですが、僕の経験から言えば、いけば面白いし、活躍したときの見返りが大きいですから。

ニフティに就職した時、今使われているようなウェブサービスはほとんどなくて、そもそもインターネット関連のビジネス自体、多くありませんでした。そんな中、プログラミングができたこともあって、若手でも「やりたい」と言ったことはほとんどやらせてもらえました。

次に入ったはてなでは、サービスを3日くらいで作ってリリースするなんていう、面白い経験もできました。当時はそれが許されたんです。インターネットは、そんな領域でした。

医療や金融といったエスタブリッシュメントというかミッションクリティカルな業界からは、チープな世界であるともみなされていましたしね。

そんな世界にあえて面白がって飛び込んだからこそ、今の自分があるんだと思います。

今就活生だったらブロックチェーンとかVR(仮想現実)の世界に飛び込むのかもしれませんね。それで成功するかは、正直分からないですが……。

description

大里:リスクを取るタイプでしょうかね。

伊藤:それよりも、普通にやったら一番になれないから、変わった道を選ぶ感じですね。僕は学歴も東京大学ではないですし、元々「普通の田舎者」でした。だから、「自分よりはるかに頭のいい人たちと正面から勝負したら、勝てるわけがない」という意識がありました。

はてなブックマークを作った時も、「Googleと同じことをやってもいいことは起こらない」という考えがあったんです。

Googleは当時天才みたいな人ばかりで、「コンピューターで全てを整理する」みたいな考え方をしていました。

それに対して僕がはてなブックマークでやったのは、人の力で良いコンテンツを集めることです。

ある意味、逆張りですよね。フロンティアというのは、そういうことです。強者の土俵では勝負しないで、自分が勝てる新しい土俵で戦う感じですね。

description


このコラムに関連したおすすめ求人はこちら
date_range 2021-08-18

会員登録のお願い

限定募集情報に応募するためには、会員登録の後プロフィールを入力いただく必要があります。

追加記入のお願い

限定募集情報に応募するためには、追加でプロフィールを入力いただく必要があります。

プロフィールを入力
審査をお待ち下さい

現在、ご入力いただいたプロフィールを審査しております。申し訳ございませんが今しばらくお待ち下さい。