はじめに
BASE BANK Departmentで開発責任者をしている斉藤です。
BASE BANK Departmentは金融領域の事業を担当しています。
Departmentに在籍しているエンジニアは10名ほどです。
私たちは全員がフルサイクルエンジニアを目指しており、この記事ではその理由を紹介します。
フルサイクルエンジニアとは
私たちが考えるフルサイクルエンジニアとは、ソフトウェアライフサイクルの全域に責任を持ち、ユーザーに価値を届けることにフォーカスするエンジニアのことです。
先日、同僚のDoarakkoが書いた「フルサイクルエンジニアとしてどう事業に貢献するか」に記載のあった表現もまさにそのとおりだと思っています。
エンジニアリングに軸足を置きつつ、事業に貢献するために必要なことをなんでもやるエンジニア
フルサイクルエンジニアはNetflixのTech Blogで公開された「Full Cycle Developers」に由来するものです。
今回の内容に関するところを要約すると、以下のような内容になります。
- ソフトウェアライフサイクルとは、アイデアを顧客向けの製品やサービスに効果的に変換するための開発と運用の全体・全責任を指す
- ソフトウェアライフサイクルの目的は、time to value(価値を生み出すまでの時間)を最適化すること
- Full Cycle Developerとは、ソフトウェアライフサイクル全体に責任を持つ開発チームのメンバー
- Full Cycle Developerは、ソフトウェアライフサイクル全体を通して専門知識を活用し、自動化や効率化を推進し、直接的なフィードバックループを通じて学習と改善に貢献する
元記事はDevOps文脈の具体例も多いですが、上記のことを踏まえると目的は同じだとおもっています。
私たちはエンジニアが企画から要件定義、設計、開発、テスト、QA、運用、ふりかえりを含めた全域で活躍することを期待しています。
なぜ目指すのか
1. 部分最適ではなく、全体最適するため
私たちのゴールはユーザーの課題を解決し、価値を届けることです。
狭義の開発だけでは価値を届けるところまで見えづらいと考えています。
その中でのボトルネック解消、最適化は部分最適になりかねません。
ソフトウェアライフサイクル全体に関わりながら、全体を俯瞰することで、本当のボトルネックはなんなのか、課題がななんなのかが見えてきます。
そのボトルネックや課題をチームで解決することで、届けられる価値を増やせたり、届けるスピードをあげていくことできるはずです。
Netflixの言葉を借りれば、私たちも「time to valueの最適化」のためにフルサイクルエンジニアを目指しています。
2. 少人数で新規事業の仮説検証を高速に実現するため
私たちは0→1の新規事業立ち上げを行っています。
昨年はPAY.JP YELL BANKを立ち上げ、今年もいくつかの企画が進んでおり、今後もそういう機会は多いでしょう。
当たり前ですが、新規事業でもソフトウェアライフサイクルを回していき、プロダクトをより良いものにしていきます。
この時に多くのエンジニアがいなければソフトウェアライフサイクルを回せない、改善できない状態は新規事業の立ち上げにとって大きなコストになります。
その分だけ立ち上げが難しくなってしまうでしょう。
一人一人のエンジニアがソフトウェアライフサイクル全体で活躍し、PdMやデザイナーなどのメンバーと協力しながら、少人数でサイクルを素早く回せることができれば、コストを抑えられます。
その結果して、コストパフォーマンスよく、仮説検証をたくさん行えることで、事業の立ち上げ成功の確率を上げられます。
新規事業を成功に導けるチームを目指すうえで、フルサイクルな関わり方は不可欠です。
フルサイクルエンジニアの活躍で事業を成功に導きます。
3. 成長しながら、開発を楽しむため
施策としての成否はもちろん、設計や実装の成否も実際にリリースしてみないとわかりません。
ユーザーの反応を受け取ったり、プロダクトが伸びることで、よかった点や改善点が見えてきます。
だからこそ、なぜつくるのかを考え、設計、実装し、リリースし、フィードバックを受け取る。さらにフィードバックから改善する。
この一連の流れにすべてに関わることが、エンジニアとしての成長につながると私たちは感じています。
自分たちが実装するものの背景はなにで、リリースした結果どうだったのか、それらを深く理解することで、開発がより創造的で、おもしろくなっていくと私たちは信じています。
フルサイクルエンジニアが集まるとどうなるか
越境が当たり前になる
フルサイクルで開発を進めるには、職域や職能の壁を越えることが不可欠です。
「誰の仕事か」ではなく「プロダクトを前に進めるために何が必要か」に目を向けて動けくことが求められ、
「ここから先は他のメンバーの担当」「これは自分の仕事ではない」と線を引かず、
プロダクトを前に進めるために必要だと思ったことには自ら行動するという姿勢がチームに自然と広がっていきます。
そうなると、職能を超える越境が当たり前になり、連携が生まれ、チーム全体で価値を届ける動きが加速します。
オーナーシップが生まれる
ソフトウェアライフサイクル全域で活躍し、自ら意思決定し、実装し、リリースし、運用し、ふりかえり、改善する。
このような動きを繰り返していくことで、エンジニアの中に「自分がプロダクトを伸ばす」という意識が育ちます。
そして、職能に関係なくチーム全員がフルサイクルに動き、プロダクトを伸ばす意識を持てると、それぞれがより良く回すための意思決定と行動ができるようになります。
その結果として、ユーザーに価値が届くまでの時間(time to value)も短くなり、スピードと質を両立できる強いにチームになっていきます。
おわりに
ここまで書いてきたことは、もしかすると当たり前に感じるかもしれません。
実際、私たち自身もフルサイクルで関わるのが自然と思っています。
ただ、その当たり前をチーム全体で継続し、組織の文化として根づかせていくのは簡単ではありません。
私たちのチームも、まだ理想には届いていません。目指し続けている最中です。
「一緒に目指してみたい!」と思ってくれる方がいれば、とても嬉しいです!