Findy Engineer Lab

次世代のエンジニアのキャリアを考える

マネジメントも「技術」のひとつ。技術志向だったエンジニアが、開発チームのディレクターに挑戦するわけ

こんにちは。粕谷大輔@daiksyです。インターネット上では「だいくしーさん」と呼ばれることが多いです。現在は株式会社はてなで、Mackerel開発チームのディレクターを務めています。Twitterなどで使っている、地獄のミサワ風のアイコンをご覧になった方もいらっしゃるかもしれませんね。このアイコンは、前職のフロントエンドエンジニアに描いてもらったものです。

今の自分の仕事は、エンジニアとデザイナーで構成される開発チームを指揮し、プロダクトの安定稼働と、定常的なデリバリーに責任を持つことです。「エンジニアリングマネージャー」という言い方をすると、分かりやすいかもしれません。

自分のこれまでのキャリア選択を振り返ると、もちろん結果論のようなところもありますが、ある程度狙いを定めてキャリアを歩んでこられたのではないかと思います。本記事では自分のこれまでのキャリアについて、「どのように狙いを定めて選び取ってきたのか?」ということを書いていこうと思います。

エンジニアとしてのキャリアのはじまり

ぼくのキャリアの出発点は、2001年に大学を卒業し、社員数20名くらいの小さな会社に就職したことに始まります。「狙いを定めたキャリアについて書く」と言っておきながら、最初の選択はそれほど深く考えた結果ではありません。

当時は就職氷河期と呼ばれた時代で、そもそも求人数がとても少なく、その中で比較的求人の多い業界がITでした。最初からIT業界を目指していたわけではなく、就職可能な企業を探していて、雇ってもらえたのがたまたまソフトウェア開発の会社だった、というだけです。

最初に就職した会社は、いわゆるSES(System Engineering Service)という業態でした。ソフトウェア開発を請け負うのではなく、ある開発プロジェクトに対して技術者としての役務を提供する形式です。

就職氷河期というくらいですから、世の中は景気が悪く、自分が参加可能な開発プロジェクトは地元にほとんどありませんでした。そのため、1つの案件が3ヶ月とか半年くらいの短いスパンで、東京や姫路など各地を転々と渡り歩くことになりました。半年後の自分がどの街に住んでいるかも分からない。そういう生活に疲れて、転職を決意します。

次に転職した会社が1年で倒産してしまう、などのハプニングもありましたが、その次に中堅のSIに就職することができ、ようやく生活が安定しました。そこで6年ほど勤めることになります。

クラウドによる環境の変化への焦り

大きなキャリアの選択は、2010年ごろ始まります。業界紙などで、いわゆる「クラウド」というキーワードが頻繁に登場するようになっていました。2020年を生きる我々は、クラウドコンピューティングの恩恵を当たり前のように受けていますが、10年前はまだそこまで一般的ではありませんでした。

「クラウド」に関する情報収集の一環で、セールスフォースのセミナーに参加したときのことです。基調講演の話者は、セールスフォース創業者のマーク・ベニオフ(Marc Benioff)でした。彼は次世代のコンピューターリソースを、発電所に例えていました。

曰く、かつて発電機は、電力を必要とする工場などで個別に設置されていた。やがて巨大な発電所が建設され、電力が安価に提供されるようになった。しかし、最初はそれに批判的な立場の人もいた。発電所からの送電が停電したら業務が止まるではないか、と。現代の我々は発電所のメリットを知っているから、そう批判する人はほとんどいない。コンピューターリソースも、いずれ同様の状態になる。

「偽物クラウドへの注意を促すために日本に戻ってきた」、セールスフォースのベニオフ氏 | 日経クロステック(xTECH)

まだ「クラウド」にピンときていなかった自分にとって、このたとえ話はとても腑に落ちました。ソフトウェア開発を取り巻く周辺環境が大きく変わりつつあるという実感を、ようやくこの段階で得ることができました。

その頃のぼくは、仕事でコードを書く、ということをあまりやらなくなっていました。小さなチームのリーダーとか、プロジェクトのサブリーダー的なポジションを任されるようになり、メンバーの進捗管理や顧客との打ち合わせといった仕事が増え、マネージメント的な業務の比重が大きくなっていました。

そんな中、クラウドコンピューティングに代表されるように、ソフトウェア開発の周辺環境が大きく変化しつつあることを感じていた自分は、この新しい流れに乗れないとまずいのではないか、という強い焦りを抱えていました。マネージメントではなく、プレイヤーとしてこの流れに乗らなければ、技術者として今後生きていけないのではないか、とも思いました。

IT勉強会への参加から見いだされた活路

2010年ごろには、もう一つ業界に大きな潮流がありました。2000年代後半から盛んになってきた、いわゆる「IT勉強会」の隆盛です。強い焦りを抱えていたぼくは、その活路をIT勉強会に見出したのです。

焦りはありつつも、具体的にどうすればよいのか、まだ何の手がかりもなかったぼくは、目についたIT勉強会に片っ端から参加しました。Twitterのアカウントを作ったのもこの頃です。そうしていると、自分がやりたいことの輪郭が少しずつ見えてきました。

ITコミュニティに関わっていると、その中でもスタープレイヤー的な人たちがいることが分かってきます。自分とあまり年齢が変わらないような人が、当時の先進的な(ように自分には見える)技術の話題を壇上で披露してくれます。そのような人々は、自分が雲の上のものだと思っていたクラウドを使いこなし、まさに新しいソフトウェア開発の変化の真っ只中で活躍しています。

この人たちのいる世界の切れっ端にでもしがみつかないと、自分は死ぬ、と思いました。今この瞬間に、ここで彼らの世界に飛び込まなければ、二度と追いつけない。しかし今ならギリギリ間に合う、そう思いました。当時の自分は30歳を超え、当時まことしやかに囁かれていた「プログラマー35歳定年説」のリミットの直前にいました。

IT勉強会に片っ端から参加していたぼくは、そこでScalaというプログラミング言語の存在を知ります。関数型言語のエッセンスが詰め込まれつつも、馴染(なじ)みのあるオブジェクト指向言語に近い手触りを持つScalaに熱中しました。やがて参加する勉強会の方向性もだいたい定まり、自分でも勉強会を主催したりしながら、転職を考えはじめます。

次のキャリア選択の目標と行動

これまで、わりと流されるままに就職し、キャリアについて深く考えてこなかった自分でしたが、次のキャリア選択には明確な目標がありました。当時の自分から見て、「新しい変化」に見えていたソフトウェア開発の現場に携わること。そのために次のような条件を設定しました。

  • 自社プロダクトを開発していること
  • アジャイル開発を取り入れていること
  • クラウドを活用していること
  • できれば今勉強しているScalaで仕事がしたい

一方で、当時の自分の職務経歴書では、自分が目指す環境に対してアンマッチであることは分かっていました。とはいえ、職場での仕事内容はそこまで思い通りにコントロールできませんから、自分でコントロール可能なITコミュニティでの活動で存在感を発揮し、他者からの自身の見え方を、自分が目指す環境に寄せていこうと考えました。

そこで採った手段が、スターエンジニアの猿真似です。具体的には、コミュニティに熱心に顔を出し、ブログを書いたり、LTやセッションに登壇したりしました。最近のITカンファレンスでは発表の希望者も大勢いるので、事前にプロポーザルを提出し、選考を経て登壇者が決定することが多いですが、当時はまだ牧歌的で、希望者は先着順で登壇の機会を得られることが多かったのです。

所詮は猿真似ですから、自分がスターエンジニアたちと同様の実力を有しているか自信はありません。おそらく当時の自分には、そこまでの実力はなかったでしょう。ただ、実力が伴わなければ、それはそれで結局は見抜かれてしまいますから、やっているうちに実力も追いついてくるだろう、くらいの開き直りで活動をしていました。

今思い返すと、よくもまぁそんな大胆なことをやったな、と少しぞっとしますが、当時はそのくらい追い込まれていたようなところもありました。

コミュニティ活動も職歴にして狙い通りの転職

勉強会で登壇するような活動を続けながら、並行して転職活動もしました。会社業務での経験だけでは自分の希望する職場とはマッチしないと自覚していたぼくは、職務経歴書の先頭に会社での職務経歴ではなく、コミュニティでの活動歴を書くようにしていました。

そうして何社かと面談を繰り返しているうちに、あるソーシャルゲーム開発のチームに参画できることになりました。開発言語はScalaで、本番環境のプラットフォームはAWS、XPを主軸としたアジャイル開発を取り入れているチームでした。まさに狙い通りの転職ができました。

話は少し脇に逸れますが、実はこのとき、今勤めているはてなへの応募も考えたことがあります。当時のはてなはPerlのイメージが強く、さすがに自分のスキルはミスマッチ過ぎるだろうと悩み、応募すべきかをなぜか占い師に問いました。占いの結果は「行くべきではない」。結局は応募すらせず、はてなへの挑戦は一度断念しました。

ところで、ぼくはだいたいどの会社に行っても、在籍して1, 2年経つとリーダー業を任される、ということを繰り返していました。おそらく自分にはリーダーとかマネージャとしての素養があり、当時の上司はそれを目にかけて抜擢してくれていたのでしょう。新しい会社でもやはり、チームを取りまとめるような仕事が多くなっていました。

しかし、そうした自分の素養に気付いていなかったぼくは、まだ現場のエンジニアとしてコードを書いて暮らしたいな、と思っていました。

ソーシャルゲーム開発の会社でアジャイルを体験したぼくは、Scalaコミュニティに加えて、アジャイル開発のコミュニティにもよく顔を出すようになっていました。あるとき、はてなの京都オフィスで開催された自動テストの勉強会に参加し、はてなのエンジニアがScalaに取り組んでいることを知ります。

その後、Mackerelのベータ版が公開され、それがScalaで開発されていたのです。ちょうど、はてなでもMackerel開発に携わるScalaエンジニアを募集しており、アプリケーションエンジニアとしてチームに招かれることになりました。占い師に「行くべきではない」と言われて3年ほどがたっていました。

スーパーエンジニアでないからこそのスキルに気付く

当時のMackerelチームは、はてなの現CTOである大坪@motemenがディレクターを務めており、新サービスの開発チームということもあって社内でも特に精鋭のエンジニアが集められていました。まだ自分はコードを書いて暮らしたい、と意気込んで参画したわけですが、自分以外全員がスーパーエンジニアという状況で、めちゃくちゃにへこんだのをよく覚えています。

そのような開発の現場に必死で食らいつきながら、一方で、自分はこのチームでどのように存在感を発揮すべきかを考えていました。あるとき、当時のCTOとの面談で、「自分はちゃんと活躍できているのでしょうか?」と聞いたことがあります。その時、次のようなことを言われました。

我々はあなたをスーパーエンジニアとして招いたのではありません。エンジニアとして、はてなで必要な能力を持っていることは認めていますが、あなたには、これまでの経験で獲得した、大人力のようなものに期待をしているのですよ。

当時よく出入りしていたアジャイル開発のコミュニティにおいても、マネージメント的な面白さのようなものは薄々感じていました。しかし、「自分はエンジニアとして活躍したくて、これまで活動してきたのではなかったか?」とずいぶん葛藤したりもしました。

ぼくはそれまで、マネージメントは先天的な能力に強く依存されると考えてきました。カリスマというか、生まれながらにして人を惹きつけるような魅力があって、周囲にはいつもその人を慕って人々が集まってくるような、そんな人がマネージャーになるべきだと思っていました。人見知りの自分にはそのような役割は向いていない、という思い込みがあったのです。

しかし、アジャイル開発のコミュニティに集う人々と交流をしたり、はてなでマネージメントに携わっている人々を見ているうちに、その考え方に少しずつ変化が生じはじめます。みんなとても熱心にマネージメントについて勉強しているし、マネージャーから発せられるメッセージにとても論理的な筋道や、データ的な裏打ちがありました。

それまでもなんとなく気付いてはいたのですが、マネージメントは生まれながらの才能などではなく、後天的に学習によって習得可能な「スキル」なのだ、ということに思い至ったのです。

ぼくがエンジニアにこだわり続けていたのは、それが「スキル」を伴って評価される仕事だからです。世の中に通用するスキルをきちんと身に付けていれば、たとえ会社が変わっても同じように評価されるはずだ、というところに魅力を感じていました。マネージメントがスキルなのであれば、それも同じように魅力ある仕事なのではないか、こう考えるようになりました。

マネージャーであっても技術系のキャリアパス

もう一つの考え方として、ぼくの中でマネージャーとしてのキャリアの先にあるものが、事業責任者だったり経営だったり、エンジニアリングというよりもビジネスに寄っていくような行く末のイメージがありました。

しかし、世の中におけるITの重要性の高まりによって、CTOやVPoEといった、エンジニアリングやエンジニア組織を主軸においたマネージャーのキャリアが増えつつあることにも思い至りました。今ではエンジニアリングマネージャーという名前によって一般的になりつつあるキャリアです。この方向性であれば、自分の能力と、嗜好を一致させることもできるのではないかと考えました。

そうして、自分の得意分野をちゃんと発揮して、チームで存在感を出していこう。エンジニアとしての仕事を主軸に置きつつ、マネージメントにも興味をしめして当時よく参加していたアジャイルコミュニティでの活動や研究に重点を置いていこう。ということを考えるようになっていました。

そんなあるとき、当時のディレクターからサブディレクターというポジションに抜擢してもらいました。チームの中ではスクラムマスター的な役割を担うことになりました。このときに自分を抜擢してくれた当時のディレクターからは、今の自分のプロダクトやマネージメントに対する考え方についてとても多くの影響を受けています。

そして、その後ディレクターに就任し、今となってはやはり仕事でコードを書くことはほとんどなくなってしまったのですが、日々エンジニアやプロダクトと向き合いながらマネージメントをする日々に、今のところ満足して暮らしています。

さいごに ─ 漫然と過ごすくらいなら狙いを定めてみよう

こういったキャリアの話は、生存バイアス的な側面が強く、ぼくの場合もさまざまな幸運によって着地している部分は少なからずあります。とはいえ、何もせずに漫然と過ごすよりは、ある程度狙いを定めてそれに向けて振る舞う方が、望みの結果に至る確率が上がることも確かだろうと思います。

ここにはうまくいったパターンしか書きませんでしたが、この裏ではそれなりの失敗もたくさんあります。狙った会社が不採用だったこともたくさんありますし、IT勉強会での登壇にしても、今思えば大失敗だった回も数え切れないほどあります。とはいえ、これを読んでいる皆さんがぼくのこれまでの失敗のことなど知らないように、他人には自分の小さな失敗などどれのことだか分かりませんから、やれることは手当たり次第にやったらいいだろうと思います。

ぼくは今、現状の自分にはそれなりに満足しつつも、10年後の自分のことを考えながら、ああでもない、こうでもないと思い悩む日々を過ごしています。ここ1、2年でも、狙いがうまくいったりいかなかったり、いろいろですが、わずかでもうまくいった、ということがそれなりにあるので、それを積み重ねた結果、大きな意味では狙い通りのキャリアになっているといいな、と思っています。

本文が皆さんのキャリア選択にとって、わずかながらでも良い影響を与えられたならとても嬉(うれ)しいな、と思います。