1. Ray Wow FM
  2. #37 フルサイクルエンジニア、..
2020-03-04 14:28

#37 フルサイクルエンジニア、フルスタックエンジニアとは?

フルスタックエンジニアはあり得るのか?論争含めて、何をもってフルスタックエンジニアと呼ぶのか?そしてフルサイクルエンジニアとは?Netflixを参考にしながらゆめみでの定義と今後のフルスタックの流れについてお話しします
00:00
今日は、フルスタックエンジニア、フルサイクルエンジニアの話をしたいと思います。
MEMEでは、今、言葉の定義というところで、フルサイクルエンジニアというところをこれまで定めていました。
フルスタックエンジニアとフルサイクルエンジニアの違いなんですけれども、
まず、フルサイクルエンジニアという言葉は、Netflixが言葉として定義していた言葉なんですけれども、
それを採用してMEMEでも、フルサイクルエンジニアというのを既に定義しています。
具体的には、特にリーン開発などで、1から2週間とか短いサイクルで、
動くプロダクトを作る、実際に工程としても要求定義から関わって、
予見定義、設計、開発、テスト、デプロイという形で、動くものを1サイクル完結して、
最初の工程から最後の工程まで短い期間で行うという、そういう関わり方を行うエンジニアとして想定しています。
特に要求の変更が大きい、プロトタイプ開発から関わるようなプロジェクトというのは相当するのかなと思っています。
ただ、要求定義から関わるというのは、
意味合いとして、必ずしも要求定義を決定者として行うという意味ではなく、
通常、要求定義を決定者として行うのはプロダクトオーナーなので、
あくまで要求定義フェーズに主体的に関わり、
こういう機能であるべきというところを定義するところです。
そういったところから関わるというような位置づけとして定義していました。
このときのフルサイクルエンジニアの専門的な技術領域というところに関しては、
例えばフロントエンドとか、あるいはサーバーサイドとか、
そういう形で特定の技術領域というところを専門分野として持った上で、
関わり方として要求定義から、
実際のデプロイまで1サイクル関わるというイメージですね。
なので、フロントエンドフルサイクルエンジニアとか、
サーバーサイドフルサイクルエンジニアみたいな位置づけになっております。
今話したように、リーン開発とかプロトタイプ開発とか、
そういったものにおいて求められる役割というふうに定義しています。
その上で、フルスタックエンジニアというところもNetflixでは、
03:00
実際に求人募集などもしています。
シニアソフトエンジニアとして、フルスタックエンジニアというのを募集したりしています。
その場合、まずNetflixの定義ですと、先ほどの意味で定義しているフルサイクルエンジニアですね。
フルサイクルエンジニア、かつ技術的な専門領域として、
フロントエンド、リアクトとか、サーバーサイド、Javaとか、AWSなどのクラウドという形で、
フロントエンド、サーバーサイド、クラウドの三つの領域の専門的な技術を持っている。
というふうに定義しています
実際にどういうふうな役割として
そういうフルスタックエンジニアが求められるかというと
Netflixの場合ですと
マイクロサービス化されているので
そのアーキテクチャの前提で
ある程度限られた特定の機能単位
フィーチャーチームという形で
その機能を頻繁なサイクルでデプロイしていくというような
おそらく役割として求人募集がかかっていると
推測したんですけれども
その前提としては大規模なサービスの中で
機能単位で頻繁なリリースをしていくと
逆に言うと
そういう機能単位で頻繁なリリースを行うことができる
アーキテクチャになっているという前提で
フロントエンドサーバーサイド
クラウドの技術を専門的に持っていて
そしてフルサイクルとして
実際に要求定義からデプロイまでできるという形で
定義されていました
実際のところ
そのようなアーキテクチャで設計されていて
サービスを進化することができる
そういうサービスというのは
日本でもあまり少ないのかなとは思っていて
なのでNetflixが求めるフルスタックエンジニアというのは
日本では実際に募集されているかというと
06:04
そんな多くはないんじゃないかなと思っていて
どちらかというとフルスタックというと
例えばスタートアップとかが
人がとにかく足りないと
人がとにかく足りなくて採用できなくて
けどだけれどもリリースしないといけないとか
いう中で
フロントエンドからサーバーサイドから
インフラまで
しかも要求定義から全部やってくれみたいな
そんな
あるべきアーキテクチャ
あるべき組織設計の枠の中で
採用を行うというような形ではないような気がするんですよね
ただその日本の
例えばスタートアップが求めるフルスタックという
ものでさえもいわゆる
例えばネイティブのアプリ
エンジニアリングとして
iOSのエンジニアとかAndroidのエンジニアまで
技術スタックとして求めているということは
もうさすがにないと思うんですね
そこまで全ての技術スタックを専門的に
高い技術力を持っている人っていないので
なので本当の意味での
フルっていうところで
いわゆるフロントエンドとバックエンドと
クラウドができるという形であれば
確かにあり得るなというところ
およびそういうエンジニアリングが必要な局面というのは
確かにあると
確かにあるというのは
Netflixまでのアーキテクチャというところは
なかなか限られるとしても
実際にイメミでも
そういうフロントエンドサーバーサイドインフラが
できる人というのを求めるような役割があるんですね
具体的にはコーポレートエンジニアリングという形で
いわゆる社内システムとか社内のサービスというところを
内製で作っていくようなチームが
イメミでも発足しているんですけれども
そのコーポレートエンジニアリングチームに所属している
コーポレートエンジニアに関しては
まさにフロントエンドとサーバーサイドとクラウドというところを
ちゃんと技術的に抑えた上で
実際に要件定義から
設計開発テストデプロイというところを実施しています
要求定義というところまで関わることが
実際できる人もいれば
そこはプランナーとかプロダクトオーナーが実施して
要件定義から関わるという人もいるので
イメミでいうフルスタックエンジニアというのは
Netflixのようなフルサイクルかつフルスタックではなくて
工程としては要件定義から関わるという形で定義しています
09:05
実際に開発の比重が大きいので
例えばコーポレートエンジニアリングですと
要求定義から責任を持ってやるというのは
なかなか範囲が広すぎて難しいので
そこは分けてやるという形で
イメミの場合は要件定義から設計開発テストデプロイという工程を担当し
技術スタックとしてはフロントエンジニアサーバーサイドインフラを担当する人を
フルスタックエンジニアというふうに定義しました
実際のところでは今後
キャリアとしてエンジニアのキャリアとして
フルスタックエンジニアがあり得るかというと
大きなトレンドとしては
10年とか20年昔だとフルスタックというのはあったんですけども
今技術領域が非常に
幅広く細分化されているので
フルスタックというのは本当の意味では全部ってないんですよね
その上でフロントエンドバックエンドインフラが必要な
そういう役割があるかというと
あると思います
一つは先ほどお話ししたようなコーポレートエンジニアですね
二つ目三つ目というのは
もし今後必要とされるとすると
例えばリン開発とか
プロトタイプMVPを作るのは
プロトタイピングを行うフェーズとして
例えばリン
フルスタック
リンソフトエンジニアとか
リンエンジニアとか
そういうふうな形で
明確に目的を持った
役割のエンジニアみたいな形で
例えばですよ呼ばれたりとか
あるいはグロースハックエンジニアとか
サービスを成長させる中で分析を行って
改善点を洗い出して
コンパチを上げていくとか
KPIを上げていくような
実際に要求定義から関わる場合もあると思うんですけども
どんどんどんどん
フロントからサーバーサイドインフラっていうところを
完結してやっていけるような人とか
次々と改善していくようなイメージですね
という形で
何か特定の領域とか目的を持った
エンジニアリングっていう形で
フロントエンドサーバーサイドインフラっていう
フルスタックを実現できる人
一貫してできるっていうところが
必要とされるんじゃないかなっていうふうには思ってます
ただ求人で
フルスタックエンジニア求むみたいな
形にはならないかなとは思っていて
12:03
なのでコーポレートエンジニア募集ついては
技術スタックとして
フロントエンドサーバーサイドインフラ求めますよとか
グロースハックエンジニア募集ついては
技術スタックとして
フロントエンドサーバーサイドインフラ求めます
みたいな形で
特定の目的を持って
役割を担うエンジニアのスペシャリストっていう形で
おそらく求められると思うんですけども
その時は実際のところ
スタートアップで新人が
とにかく何でもやる羽目になって
いろいろやってましたみたいな
そうではなく
かなり経験があり
フロントもサーバーも
ある程度の経験がある中で
そういう特定のミッション
グロースハックやりたいとか
インプロダクト開発やりたいみたいな
形であったり
コーポレートエンジニア募集とか
エンジニアリングやりたいとか
あるいは場合によっては
大規模なマイクロサービスにおける
フィーチャーチームで
いろいろと開発をしていきたいみたいな
自分がこのサービスにかかりたいみたいな
そういうふうになっていくんじゃないかな
っていうふうに思っているので
明確に人が足りないから
何でもやってましたエンジニアとは違う
本当のスペシャリストみたいな感じに
おそらくなっていくんじゃないかな
とは思っていて
そうなってくると
フルスタックエンジニアって言葉自体は
より非常に
実質的には使われなくなるんじゃないかな
みたいな
そんなふうに考えています
その上でその意味では
フルサイクルエンジニアと
フルスタックエンジニアっていうのを定義して
なんだろうな
このフルスタックエンジニア論争みたいなところを
収束させるというか
その言葉の定義が
かみ合わないことによる
その議論が発散してしまうっていうところが
やっぱりありがちなので
そういうことがないように
定義はしたんですけれども
ユメミの場合だと
フルスタックエンジニアっていうのは
いわゆるコーポレートエンジニアリングとして
期待したいっていう
そういうふうに現状はなっております
今日はですね
フルサイクルエンジニアと
フルスタックエンジニアについてのお話でした
14:28

コメント

スクロール