こんにちは、CTOのあんちぽちゃんです。ペパボにはエンジニア職位制度というのがあるのですが、それをちょっとアップデートしようとしています。その際に社内向けに書いた文章があるのですが、せっかくなんでペパボのことを知ってもらうために、こちらにも貼っておきます。
2018年上半期の職位制度立候補についてお知らせいたします。いつもとは異なり、内容に入る前に、CTOとしてのあんちぽの考えを述べたいと思います。しばらくおつきあいください。
これからのペパボのエンジニアについて
「IT産業においては、物事は常に変化し続ける。そして変化し続けることだけが不変である」と僕はよくいっています。僕自身がエンジニアになったのはちょうど10年前、2008年の頃でした。2008年といえば、iPhoneが日本で発売開始された年です。エンジニアリングにまつわる環境は、あれから随分変わりました。どう変わったかをいま書き出してみたら、それだけで長大なリストができたので削除して書き直しているのですが、それぐらい変わったわけです。そして、これからも変わり続けるでしょう。
世間では、これからはAIだとかIoTだとか、はたまたブロックチェーンだとかいわれて久しい昨今ですが、実際問題、これからの技術はどうなっていくのでしょうか。結論、そんなことは僕にはわかりませんが、きっと、いつの間にか気づいた時にはそれらは当たり前になっていて、なかった頃には戻れない、そういうものの基盤技術として普及していくでしょう。かつて携帯電話がそうであり、これから自動運転がそうなっていくように。
変わり続けることだけが変わらない。いざ変わってしまったあとには、それが変化の結果であることすら忘れられてしまうぐらい徹底的に変わってしまう。そういう産業において我々が成長し、社会に対してより大きな価値を残していくにはどう生きていけばいいのか。これからの技術そのものを正確に予測することは難しい以上、個別の技術に「投資」するのもいいのですが、自分がどうありたいのか、そのためにはどうしたらいいのかを考え、実行することがより大事だと思っています。
ところで、ペパボのエンジニアをCTOとして見てきた中で、どんどん成長していくエンジニアには、以下の特徴があるように感じます。
- やっていき、のっていくこと
- ユーザ体験を向上させる技術を選択できること
- プログラマブルなアプローチで課題に取り組むこと
これらの特徴は、ペパボで大きく成長するエンジニアとしての美質であるのみならず、上述してきたような変化し続けるIT産業の中で、「我々が成長し、社会に対してより大きな価値を残していくにはどう生きていけばいいのか」という問いに答え得ることであるとも思うのです。技術要素がどのように変わろうとも、この3点を踏まえて行動を続けていれば、きっと新しいことにキャッチアップし続け、価値を作り出せるだろうからです。そのため、評価・職位制度は、ペパボのエンジニアにおけるこうした美質を伸ばすことを支援する制度であるべきだろうと考えます。
1. やっていき、のっていくこと
この話はあちこちでしているので、詳しく述べるまでもないでしょう(詳細は、下記スライドを参照のこと)。物事はリーダーシップ(=やっていき)だけでは動きません。フォロワーシップ(=のっていき)とともにおおきなムーブメントとなっていくものです(どんなに素晴らしいミュージシャンであっても、まったく反応を見せないオーディエンスの前では、いいパフォーマンスはできないでしょう)。また、それは立場によってどちらがどちらかの役割に固定されるものでもありません。たとえば、年若いひとの「やっていき」を、ベテランが「のっていき」という形で支えるのは推奨されるべき行動ですし、積極的にのっていくことでそういうサイクルをあちこちで作ることをしていきたいものです。
そのため、「大切にしてほしい3つのこと」の「みんなと仲良くすること」のひとつとして、この「やっていき、のっていくこと」をみんなが幅広く実践していってほしいなと思っています。また、成長したいエンジニアのためのtips的な余談を述べると、成長が早いひとは、(もしかしたら多くのひとの直感には反して)「やっていき」よりもむしろ「のっていき」のほうが高いように感じます。積極的にのっていくことで成長にドライブがかかるのでしょうし、技術を学ぶというのは、端的にいって先人にのっていくことでもあるのでしょう。
この件については、以下のスライドにまとめてあるので、ご覧ください。
2. ユーザ体験を向上させる技術を選択できること
我々はエンジニアとして、それぞれにある種の傾向を持っています。それは、Webやインフラあるいはモバイルエンジニアという技術のレイヤだったり、PHPやRuby、はたまたGoやElixirといった言語によることだったり、UIを作るのが好きだとかバックエンドの仕組みを作るのが好きだったりします。そのことは、各位がエンジニアとしての強みをいかに見出していくかということですし、もっといえば美意識や趣味の問題であって、ここでいう「選択」というのとはちょっと違う話です。
(註:といったからといって、技術個別の詳細な知識を軽視しているわけではありません。たとえば「バッドノウハウこそエンジニアリングの本質」に、僕は強く同意しています。この辺の話はまた別途しましょう)
ケンタロさん(註:ペパボの社長)とこの件で話していて納得した例を元にちょっと広げてみます。たとえば、ZOZOTOWNはアパレルのECサイトで、ペパボのEC支援事業とはやや異なるものの、その技術的な要素についてみれば、いってみればWebサービスなので、僕らの考えが及ばないほどの違いがあるわけではないでしょう。しかし、ユーザ体験を究極的に向上させることを考えた先に、たとえばZOZOスーツみたいなものを突然作ったりする。技術要素としてはかなりジャンプがあったはずです。その証拠に、第1弾は生産に失敗し、あの水玉スーツに変更されたりしています。
ここでいう「ユーザ体験を向上させる技術を選択できること」というのは、そういう意味における選択です。まずは、よいユーザ体験を提供すること。そのために、足りない技術があれば学ぶし、なければ研究開発して作るし、ということです。「大切にしてほしい3つのこと」にいう「ファンを増やすこと」の、エンジニア的な実践でもあるでしょう。
3. プログラマブルなアプローチで課題に取り組むこと
たとえば、Infrastructure as Codeなどという言葉が人口に膾炙して久しい昨今です。これは、ごく単純にいえば、これまで経験に基づいて人手で行っていたようなインフラに関する作業を、コードという形式的な表現を用いることで、ソフトウェアのように共有・実行・検証できるプロセスに置き換えていこうというものですよね。より一般的にいうと、対象をプログラマブルなものにしていく技術的趨勢の帰結です。
テストコードを書くことにしても、上記の趨勢のただ中から生まれてきたプラクティスです。手動による検証やドキュメントではなく、コードによる自動的な検証、すなわち、Test as Codeというわけです。ただ、いまでは普通のことになっているので、わざわざそんな言い方を誰もしないというだけのこと。IaCについても、将来はそうなるでしょう。それがこの先、IoTでいえば「モノ」自体がどんどんプログラマブルになっていくわけですし、ブロックチェーンにおいては、スマートコントラクトに代表されるように、契約の執行ということですらプログラマブルになってきています。
どういう技術を学ぶのが「投資」として効率がよいか、すなわち、個別の技術要素が将来どうなるかは、先述の通り誰にもわかりません。しかし、中には確かな「趨勢」というのもあるわけで、それはたとえばここでいう「対象をプログラマブルなものにしていく」ということです。そのようなアプローチをとれるスキルを伸ばすことは、「投資」としても間違いないでしょう。
というわけで、職位制度について上記の考えに基づき、アップデートをかけようと思っています。
(以下、社内文書なので省略)
……ってな感じで、制度のアップデートに際しての僕の思いを述べました。アップデートの内容は、大きくは職位の定義を上記の考えに基づく内容にあらためたということと、エンジニアの給与についても上昇する方向で見直しをかけたということの2点になります。我々はこのような考えに基づいて、よりよいサービスを提供するべく今後もやっていこうと思っています。よろしくお願いいたします。