Full Cycle Developer ~ さういうエンジニアに私はなりたい~
先日このツイートを目にしました。
しかし、Full Cycle Developerってすごく良い言い換えだよなあ。Full-Stackだと持ってるスキルにフォーカスがある感じだけど、Full Cycle だと「一連の開発サイクルに責任を持ちますよ(そのために広範なスキルを身につけてるよ)」という感じで、アウトプットにフォーカスが当たってる感じがする。
— (やさいち|yasaichi) (@_yasaichi) 2019年5月8日
このツイートは私がフルスタックエンジニア(という呼び方)に対して抱いていた小さな違和感に答えを出してくれました。 そして私はFull Cycle Developerにこそなりたいのではないか?と思ったので改めて調べてみました。
Full Cycle Developer とは?
「設計・開発・テスト・リリース・運用・サポートというソフトウェアのライフサイクル全体を担うエンジニア」
のことです。
出典
出典はこの記事のようです。英語ですがわかりやすく説明されていたので興味がある人はぜひ読んでください。 medium.com
参考情報
日本語の情報としてはajitofmで言及されていました。有名な企業の取り組みと合わせて語られていて、とても理解しやすかったです。 ajito.fm 特にFull Cycle Developerについては28分ごろから語られます。
冒頭で引用した (やさいち|yasaichi) (@_yasaichi) | Twitter さんのツイートも参考になります。
そうなると、このいわゆるFull Cycle Developersの役割は「いかに仮説検証のサイクルを速く回すか」ということになり、サイクルを速く回せたり(実装力)ボトルネックを取り除く力(問題設定、解決力)が彼らの専門性ということになるんだけど、これは一部の方には受け入れるのが難しいかもなと思う。 https://t.co/RNqkSr3zFw
— (やさいち|yasaichi) (@_yasaichi) 2019年5月8日
Full Cycle Developer の要旨
紹介した資料で十分な理解は得えられますが、私がFull Cycle Developerに関して重要そうだと感じたことを紹介したNetflixの記事とajitofm#37からいくつか抜粋します。
- Full Cycle Developerには各種使いやすいツールの導入が必要
- ツールやプラクティスのセットを提供・支援する横断的な組織があるとより良い
- Full Cycle Developerは全てのライフサイクルにエンジニアリングを適用し、自動化などシステム中心のアプローチによってスケールさせる
- Full Cycle Developerが生まれた背景にはマネージドサービスの充実や学習環境が整ってきたことがある
- 近年のエンジニアはFull Cycle DeveloperとSpecialistに二極化している
- それぞれ向き不向きや好みがあり、Full Cycle Developerのみで良いわけではない
所感
私はこれまでなんとなくフルスタックエンジニアになりたいだとか、CTOを依頼された時に自信を持ってYESと言えるエンジニアになりたい*1とぼんやり考えていました。また、特定の領域に尖ったものを持てず、器用貧乏なだけではないかと悩むこともありました。 しかし、今回Full Cycle Developerという定義づけ・呼び方を知り、自分の目指す姿の輪郭を捉えることができた気がします。
私はユーザの声を聞きたいし、サービスのドメインを理解して優先順位付けをしたいし、データから改善の糸口を探りたいし、設計をしたいし、実装したい。 欲張って、多くのスペシャリストに頼って、全体最適にあらゆるアプローチに取り組んでいきたいです。
*1:CTOに必要な能力を兼ね備えたいだけで、CTOをやりたいわけではない