サービスエンジニアとサービス開発と3年後

最近何人かからキャリアパスの相談を受けてて、話をしているうちに自分の考えが少し整理できた気がするので忘れる前にメモ。雑記。

## サービスエンジニア

僕の今いる部署に求められてるエンジニアは、技術をコアにしたエンジニアじゃなくて、サービスをコアにしたエンジニアだと思ってる。図の左側。技術を突き詰めて「この技術で何ができるか」というよりも、サービスのことを考えて「このサービスのためにあの技術が使えないか」という感じ。

f:id:bufferings:20181205074057p:plain

## アプリ開発とサービス開発

Webアプリの開発経験が10年以上あります、って人よりも、新卒の2,3年目の人の方が頼りになったりして、どういうところなんだろうなぁ?って思ってたんだけど。アプリ開発スキル、と、サービス開発スキル、が別のスキルってことなのかもしれない。

サービスを開発するときは、アプリの機能を実装するだけじゃなくて、全体のアーキテクチャ、インフラ、ビジネス側の運用、開発側の運用、カスタマーサポートどうするか、社外との連携どうするか、モニタリングどうするか、とか全部含めて考える。それに、そもそもふわっとした要望を元に生み出していくし。正解がないから失敗することを受け入れて前進するしかない。

ので、経験が長くてもアプリ開発だけをやってきた人はサービス開発のスキルがあんまりないし、新卒2,3年目でもサービスを任されてるエンジニアはアプリ開発のスキルが低くてもサービス開発のスキルが身につき始めてる。そして、サービスのことを話すときには、サービス開発スキルがある方が頼りになる。ということなのかなと。

前者の場合も別に悲しむ必要はなくて、むしろ土台がしっかりしてるので、そこを軸足にしてサービス開発スキルに目を向けていけば成長速度は速いと思う。

## エンジニア出身マネージャ

もし、エンジニアの経験を活かしたマネージャになりたかったら、アプリ開発スキルよりも、サービス開発スキルの方が重要になってくるのかなと思った。Java 12でどんな機能が追加されるかまでは知らなくていいけど、サービス全体を見てポイントを押さえる方がメインになりそう。そこに自分の強みを持って、マネージメントのスキルを広げていけば良いのかなと。

## シニアエンジニア

もし、シニアエンジニアになりたかったら、アプリ開発とサービス開発の両方のスキルをのばしていけば良さそう。Java 12の機能は知ってる方がいい。僕はこっち。

## 3年後にはチームを離れるつもりで

とまぁ、キャリアパスのことをぼんやり考えるときには、「3年後には今のチームを離れるつもりで動いた方がいい」と思ってる(「3年は我慢しろ」という意味ではない。我慢するくらいならすぐ異動していいと思う)。その後は好きな領域にFA宣言でもしたらいいかなと。

「そうすると、残された時間はあと2年だよね?」「このチームで学べることがいっぱいあるって言ってたけど、あと2年でFAしようと思うと、あと2,3ヶ月中にはこれくらいは身につけておきたいよね?」みたいなの。それに加えて、そういうつもりで仕事をしてると、時間を無駄にできないし、ドキュメントを残したりナレッジ共有をしたり、後継者を育てることの優先度があがるから、強いチームになるなって。

あと、マネージャもそのつもりでいると、より魅力的なチーム作りをするようになるかなぁと思ったりするけど、それはまた別の話。

今日もいちにちがんばろー(๑•̀ㅂ•́)و✧