社会に出るに際してどういうキャリアを積んでいこうか迷っている・会社を選ぶ上で働き方を重視しているみなさんへ。領域特化・あるいは様々な技術を扱うキャリアの特性を考えながら、CARTAで実践しているサービスのライフサイクルに関わる「フルサイクル開発者」という生き方について紐解きます。
スペシャリスト?フルスタック?whichではないフルサイクル開発者という生き方技育祭 2022秋2022年10月14日CARTA HOLDINGS Inc.
View Slide
こんな悩みはありませんか?CARTA HOLDINGS Inc.● 「スペシャリスト」「フルスタック」などのワードは聞くが、実際自分には何が向いているのだろう🤔● 技術特化、様々な技術を扱うそれぞれのキャリア特性ってなんだろう🤔● ビジネスにも関わっていきたい場合、どんなキャリアを歩めばよいだろう🤔
お話することCARTA HOLDINGS Inc.社会に出るに際してどういうキャリアを積んでいこうか迷っている・会社を選ぶ上で働き方を重視しているみなさんへ。領域特化・あるいは様々な技術を扱うキャリアの特性を考えながら、CARTAで実践しているサービスのライフサイクルに関わる「フルサイクル開発者」という生き方についても紐解きます。その上で、様々な経験をしてきて現在フルサイクル開発者のわたしからみなさんにアドバイスができたらと思います。
アジェンダCARTA HOLDINGS Inc.● 自己紹介● フルサイクル開発者の説明の前に○ ビジネスの成り立ちについて○ エンジニアは何を担うのか● フルサイクル開発者とは何なのか○ Netflixの事例○ フルスタックと何が違うのか● わたしのキャリア● キャリア特性ごとのアドバイス● まとめ
自己紹介
自己紹介河村 綾祐(Ryosuke Kawamura)株式会社CARTA HOLDINGS / Zucks取締役CTODSPを中心に、Zucksの全プロダクトに携わっている。ビジネス視点を忘れずに、フルサイクルを地で行くエンジニア。2019年10月より現職。 Twitter:@r_kawaiimuraCARTA HOLDINGS Inc.
フルサイクル開発者の説明の前に
ビジネスの成り立ちについて
ビジネスの起こりCARTA HOLDINGS Inc.アイディアが形になってお金を生み出している状態起業家 顧客ビジネス価値
ビジネスの起こりCARTA HOLDINGS Inc.誰でも使えるツールで実現されているSpread Sheetメールチャットエンジニア起業家 顧客
ビジネスが目指すもの 〜規模拡大〜CARTA HOLDINGS Inc.売上/利益をあげる 顧客を増やす起業家 顧客
ビジネスの成長を妨げるもの 〜手作業の限界と人件費〜CARTA HOLDINGS Inc.手作業起業家 顧客
エンジニアは何を担うのか
ビジネスにおけるエンジニアの立ち位置CARTA HOLDINGS Inc.起業家顧客エンジニアサーバwebサイト
WebアプリケーションWebアプリケーションとエンジニアの責務 / 領域CARTA HOLDINGS Inc.顧客サーバサイドDBフロントサイドデータサイエンスクラウドインフラ
Webアプリケーションスペシャリストとは?CARTA HOLDINGS Inc.顧客サーバサイドDBフロントサイドデータサイエンスクラウドインフラ
Webアプリケーションフルスタックエンジニアとは?CARTA HOLDINGS Inc.顧客サーバサイドDBフロントサイドデータサイエンスクラウドインフラ
フルサイクル開発者とは何なのか
ビジネスの価値提供の流れCARTA HOLDINGS Inc.提案実装運用改善顧客起業家エンジニア
ソフトウェア開発における「工程分担」CARTA HOLDINGS Inc.設計 開発 テスト リリース 運用管理顧客サポートそれぞれの工程に担当者がいる時間
ソフトウェア開発における「開発の流れ」CARTA HOLDINGS Inc.リリース設計開発テスト運用管理サポート開発サイクルを速く回すことでプロダクトの価値を速く高められる
工程ごとに担当者やチームが別れていたら...?CARTA HOLDINGS Inc.設計 開発 テスト流れが途中で止まってしまう時間リリース 運用管理はよやれ
流れが途中で止まると?CARTA HOLDINGS Inc.リリース設計開発テスト運用管理サポートはよやれサイクルが途中で止まることでプロダクトの成長が止まる
PR: 実はこの本にだいたい書いてあるそうですCARTA HOLDINGS Inc.フルサイクルエンジニアによる 「アフターDX」の世界がここにある● 株式会社CARTA HOLDINGS 監修、和田卓人 編● 272ページ● A5判● ISBN:978-4-908686-15-3● 2022年8月8日 第1版第1刷 発行● 本書は2020年8月に発行した『Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち』の改訂版です。事業をエンジニアリングする技術者たち ― フルサイクル開発者がつくるCARTAの現場
Netflixの事例
Netflixの事例 ~アジェンダ~CARTA HOLDINGS Inc.Netflixにおけるフルサイクル開発者―開発したものが運用する● ソフトウェアライフサイクル○ 今までの開発スタイルを紐解く● 開発したものが運用する○ DevOpsとの出会い● 開発者ツールによるスケール○ 価値を届けることに向き合うために● フルサイクル開発者○ 理想とする形を実践する
① ソフトウェアライフサイクル– 今までの開発スタイルを紐解く –Netflixの事例CARTA HOLDINGS Inc.
ソフトウェアライフサイクル – 今までの開発スタイルを紐解く –CARTA HOLDINGS Inc.出典:Netflixにおけるフルサイクル開発者―開発したものが運用する - CARTA TECH BLOG● もともと個々のライフサイクルコンポーネントは独立したチームでそれぞれが専門家だった● この専門化された組織はそのセグメント内では効率的だが、ライフサイクル全体の非効率性を作り出す● ライフサイクルの一断面のみを担当する専門家チームを持つとサイロ化が進む● コミュニケーションオーバーヘッドの増加、ボトルネックの発生、フィードバックループの非効率性● 結果、最終的な顧客への価値提供を遅らせる
② 開発したものが運用する– DevOpsとの出会い –Netflixの事例CARTA HOLDINGS Inc.
開発したものが運用する – DevOpsとの出会い –CARTA HOLDINGS Inc.出典:Netflixにおけるフルサイクル開発者―開発したものが運用する - CARTA TECH BLOGサイロを解体しフルソフトウェアライフサイクルの共同所有を奨励することで、学習とフィードバックを最適化することができる責任を外部化するのではなく開発チームに与えることで、ダイレクトなフィードバックループと共通のインセンティブを持つことができる各開発チームは開発上の課題、パフォーマンスのバグ、キャパシティープランニング、アラートの欠如、パートナーサポートといったものを受け持っている
③ 開発者ツールによるスケール– 価値を届けることに向き合うために –Netflixの事例CARTA HOLDINGS Inc.
開発者ツールによるスケール – 価値を届けることに向き合うために –CARTA HOLDINGS Inc.出典:Netflixにおけるフルサイクル開発者―開発したものが運用する - CARTA TECH BLOG● 一連の開発ライフサイクルに対するオーナーシップによりソフトウェア開発者に求められることは大幅に増えるが、開発上の共通する要求を単純化したり自動化するツールによって負荷を軽減できる● これらのツールを手中にして、開発チームはプロダクトのドメインの問題解決に集中することができる
④ フルサイクル開発者– 理想とする形を実践する –Netflixの事例CARTA HOLDINGS Inc.
フルサイクル開発者 – 理想とする形を実践する –CARTA HOLDINGS Inc.出典:Netflixにおけるフルサイクル開発者―開発したものが運用する - CARTA TECH BLOG驚くべき開発ツールを持ち、設計、開発、テスト、デプロイ、運用、サポートといったフルソフトウェアライフサイクルへの責任を持つ開発チームだ。フルサイクル開発者はソフトウェアライフサイクルの全ての分野において知識があり効果的であることが期待される。
フルスタックと何が違うのか?
フルスタックと何が違うのか?CARTA HOLDINGS Inc.フルスタック● 1人のエンジニアの技術的な「引き出し」の話○ アプリフロントエンド○ Webフロントエンド○ バックエンド○ インフラ○ etc● ライフサイクルでいうと主にDesign, Develop, Testのところで特に力を発揮するイメージ
フルスタックと何が違うのか?CARTA HOLDINGS Inc.フルサイクル● アイデア・価値が届くまでを1つのライフサイクルとみて、それを一人の技術者で滑らかに回していく● このサイクルを何度も繰り返し、よりよいプロダクト・サービスを提供していく● 価値を届けるための動き方についての定義である● フルスタックであることは十分条件であり、必要条件ではない
わたしのキャリア
わたしのキャリアCARTA HOLDINGS Inc.独立系SIer2005.04主に大規模toB受託開発プログラマシステムエンジニアプロジェクトリーダー勉強することばっかで面白みしかなかったインターネット広告2013.10HR領域自社サービス2008.02営業/運用部門がすぐ隣にいる組織今思えばプロダクトを中心に据えた組織だった少数精鋭SIer2010.07iOS/Android/Webアプリのフロントエンド/バックエンド/インフラそして火消しでもなんでもやるマンになった1社目 4社目〜現在2社目 3社目外資スタートアップの日本ブランチ売るためのツール/フォーマットなど何でも作った後にCARTA HOLDINGSに仲間入り
人の夢をデジタルで叶えるエンジニアどういうエンジニアになりたかったかCARTA HOLDINGS Inc.
人の夢をデジタルで叶えるエンジニア● 「できない」理由を技術にしたくない● 「こういうことやりたいんだよね」というアイデアを持っている人に対して、「それ、こうやればできるよ」と技術で解決したい● そういう人々に寄り添うエンジニアでありたいどういうエンジニアになりたかったかCARTA HOLDINGS Inc.
わたしのキャリア 1stCARTA HOLDINGS Inc.独立系SIer2005.04主に大規模toB受託開発プログラマシステムエンジニアプロジェクトリーダー勉強することばっかで面白みしかなかったインターネット広告2013.10HR領域自社サービス2008.02営業/運用部門がすぐ隣にいる組織今思えばプロダクトを中心に据えた組織だった少数精鋭SIer2010.07iOS/Android/Webアプリのフロントエンド/バックエンド/インフラそして火消しでもなんでもやるマンになった1社目 4社目〜現在2社目 3社目外資スタートアップの日本ブランチ売るためのツール/フォーマットなど何でも作った後にCARTA HOLDINGSに仲間入り
わたしのキャリア 1stCARTA HOLDINGS Inc.● 受託開発の会社○ 企業や組織が求めているシステムの開発を請け負う○ それに沿ったシステムやソフトウェアを開発・納品○ 新卒で入った会社だったので、多少無理してがんばっていた気も● 経験したこと○ SNMPプロトコルを使ったネットワーク装置の監視○ ホット/スタンバイのフェイルオーバーを自前で実装○ 10時間かかってたバッチを1時間に■ 1000行以上のSQLを見ても日和らなくなったのはここでの経験が大きい キラキラした仕事ではないけど、自分たちでなんとかする、なんとかできるんだ、というのを学んだ
わたしのキャリア 2ndCARTA HOLDINGS Inc.独立系SIer2005.04主に大規模toB受託開発プログラマシステムエンジニアプロジェクトリーダー勉強することばっかで面白みしかなかったインターネット広告2013.10HR領域自社サービス2008.02営業/運用部門がすぐ隣にいる組織今思えばプロダクトを中心に据えた組織だった少数精鋭SIer2010.07iOS/Android/Webアプリのフロントエンド/バックエンド/インフラそして火消しでもなんでもやるマンになった1社目 4社目〜現在2社目 3社目外資スタートアップの日本ブランチ売るためのツール/フォーマットなど何でも作った後にCARTA HOLDINGSに仲間入り
わたしのキャリア 2ndCARTA HOLDINGS Inc.● 自分にとって初めての自社サービス会社へ○ 自分たちで作ったものを、自分たちでお金(売上)に変える○ 組織もそこまで大きくなかった○ 業務を委託しているエンジニアは外部にいたが、社内にはエンジニアは少数しかいなかった● 経験したこと○ DevOps的な業務○ オンプレでのサービス提供○ 営業の方たちと一緒に営業同行も行う 自分たちが作った機能に対して身近なところからフィードバックをもらえる環境は得難いものだと感じた
わたしのキャリア 3rdCARTA HOLDINGS Inc.独立系SIer2005.04主に大規模toB受託開発プログラマシステムエンジニアプロジェクトリーダー勉強することばっかで面白みしかなかったインターネット広告2013.10HR領域自社サービス2008.02営業/運用部門がすぐ隣にいる組織今思えばプロダクトを中心に据えた組織だった少数精鋭SIer2010.07iOS/Android/Webアプリのフロントエンド/バックエンド/インフラそして火消しでもなんでもやるマンになった1社目 4社目〜現在2社目 3社目外資スタートアップの日本ブランチ売るためのツール/フォーマットなど何でも作った後にCARTA HOLDINGSに仲間入り
わたしのキャリア 3rdCARTA HOLDINGS Inc.● 再び受託開発の世界へ○ ちょうどタイミング的にアプリ内課金が出始めの頃(ソシャゲ黎明期) = ビジネスの転換期○ ここでは時代のおかげで様々なことに携わるのが当たり前○ フルスタックぽいことはここから体現している● 経験したこと○ フルスタックエンジニア○ 技術領域・事業ドメインを選り好みせず開発に取り組む○ 一時期プロジェクトを6個ほど同時に捌き、アシュラマンと呼ばれる 大変と呼べる仕事もあったし、デスマーチも経験(真似はしないでね)
わたしのキャリア 4th~CARTA HOLDINGS Inc.独立系SIer2005.04主に大規模toB受託開発プログラマシステムエンジニアプロジェクトリーダー勉強することばっかで面白みしかなかったインターネット広告2013.10HR領域自社サービス2008.02営業/運用部門がすぐ隣にいる組織今思えばプロダクトを中心に据えた組織だった少数精鋭SIer2010.07iOS/Android/Webアプリのフロントエンド/バックエンド/インフラそして火消しでもなんでもやるマンになった1社目 4社目〜現在2社目 3社目外資スタートアップの日本ブランチ売るためのツール/フォーマットなど何でも作った後にCARTA HOLDINGSに仲間入り
わたしのキャリア 4th~CARTA HOLDINGS Inc.● 外資インターネット広告会社○ 海外のエンジニアと一緒に仕事をしたいと思い外資へ● 感じたこと○ 小さなスタートアップではあったが、優秀なエンジニアが多かった■ ロシア出身でモニタリングのためのバックドアを仕込みまくる凄腕CTO■ 気の優しいエンジニアリングマネージャ■ UCLA卒のフロントエンジニア■ スタンフォードに修士で通ってるシステム管理者■ インドのバンガロールで停電になりながらもしっかり開発やテストを行うエンジニア 比べるサンプルは小さいが、日本のエンジニアもかなり優秀、という認識を持てた
わたしのキャリア 4th ~ 現在CARTA HOLDINGS Inc.● 外資インターネット広告会社〜現在○ 以降はずっとインターネット広告に携わる○ 良い仲間に恵まれている● 経験したこと○ 今でこそ当たり前の動画広告を、日本で一番最初に始める(当社比)○ 一番大きかった経験としては、USヘッドクォーターからMBO■ 今までのプロダクトを捨てる決断をして日本独自で3ヶ月でリプレース○ 後にCARTA HOLDINGSにJOINするきっかけへ 今までの集大成として色々なものに携わる = フルサイクル開発という生き方 へ
Q. なんで毎度違うことをしてるの🤔ここまででみなさんが感じているであろうことCARTA HOLDINGS Inc.
A. 経験したいことを優先的に考えていたここまででみなさんが感じているであろうことCARTA HOLDINGS Inc.
Q. なんで毎度違うことをしてるの🤔A. 経験したいことを優先的に考えていた● ユーザが近くにいるところで仕事がしたい● ビジネスの転換期なので流れに乗りたい● 一度は海外に出て働いてみたい● 信頼できるチーム・メンバと働きたいここまでみなさんが感じているであろうことCARTA HOLDINGS Inc.
Q. なんで毎度違うことをしてるの🤔A. 経験したいことを優先的に考えていた● 転職は手段であって目的ではない● ちなみにCARTA内では実質3社目(いずれもインターネット広告)○ これは複数事業を抱える会社の強みここまでみなさんが感じているであろうことCARTA HOLDINGS Inc.
みなさんに伝えたいことCARTA HOLDINGS Inc.「早すぎる最適化をしていないか?」"Premature optimization is the root of all evil"- 早すぎる最適化は諸悪の根源である -出典:ドナルド・クヌース - WikipediaThe Art of Computer Programming - Wikipedia
「早すぎる最適化」とは?CARTA HOLDINGS Inc.経験もあまりないうちに、領域を決めること本当にそこに「余地」はないのか、常に考え続けましょう
なぜそう思うのかCARTA HOLDINGS Inc.https://twitter.com/makoga/status/1314419529984872448● 現在は CTOという「ロール」がついている だけ● そこだけに 最適化・フォーカスをしているわけではない● いつでも肩は温めている(つもり)● 20年近くやってきて未だに「これだ!」と自覚できるような領域はない● 強いて言えば、事業を考える人々に近いところでエンジニアリングし続けることができている、だけ● 最適化なんて恐れ多い
キャリア特性ごとのアドバイス
キャリア特性ごとのアドバイス ~アジェンダ~CARTA HOLDINGS Inc.● スペシャリストを考えている人へ● フルスタックエンジニアを考えている人へ● フルサイクル開発者を考えている人へ● いずれにも大事なこと● 悩んでいる人へ
キャリア特性ごとのアドバイスCARTA HOLDINGS Inc.スペシャリストを考えている人へ
スペシャリストを考えている人へCARTA HOLDINGS Inc.【スペシャリスト向きの人】● 既に学校の専攻などで素養がある人○ ex) データサイエンティスト■ applied data science(応用データサイエンス)はあらゆる場所で活躍できる■ 従来広告領域だけだったが、DXされた様々なビジネスで求められている○ ex) セキュリティエンジニア■ 手口の巧妙化、対策の高度化■ IPAの情報セキュリティや海外事例を追い学ぶ(脆弱性情報・インシデント事例)
スペシャリストを考えている人へのアドバイスCARTA HOLDINGS Inc.強みがあることは素晴らしい● 本当に強みかどうかは常に客観な事実から● 自分を俯瞰する強みが廃れたときのリスクも考慮していこう● 技術・ビジネスの移り変わり、パラダイムシフトは起きる隣接する領域への興味関心を持っていこう● 要素を分解して考えてみる● フロントエンド => ビルドツール、対向のAPI、Web最適化、...● バックエンド => データベース、CI/CD、IaC、APIがどう使われているか、...● データサイエンティスト => MLOps、データプラットフォーム、...● etc
キャリア特性ごとのアドバイスCARTA HOLDINGS Inc.フルスタックエンジニアを考えている人へ
フルスタックエンジニアを考えている人へCARTA HOLDINGS Inc.【フルスタック向きの人】● 特定の技術にこだわりがない人● いろいろな経験をつみたい人
フルスタックエンジニアを考えている人へのアドバイスCARTA HOLDINGS Inc.爪を研ぎ続けよう● 求められる環境は必ずある(事業会社の新規立ち上げ・スタートアップ・受託開発…)● おすすめは重要度も緊急度も高い仕事にたまに向き合うこと○ 制約があると気が引き締まる(諸説あります)複数の領域を扱えることは素晴らしい● 何と言われようと自信を持ってほしい● 常に客観的に見続けてほしい
フルスタックエンジニアを考えている人へのアドバイスCARTA HOLDINGS Inc.様々な領域をつまみ食いしがちな問題は起こりうる● 俗にいう「器用貧乏」な状態● 何でもできる = 何にもできない(全体的に弱い、強みがない)と捉えられがち○ そんなことはない○ その中でも強みはなにか?■ T型を目指す便利屋になってしまう● 良い側面としては、それは周囲からの信頼のあらわれでもあるかもしれない● 言語化能力・ヒアリング能力大事○ めんどくさい人にはならないように■ 敢えてなる人もいる○ 相手のコンテキストを正しく理解する■ 「顧客が本当必要だったもの」
キャリア特性ごとのアドバイスCARTA HOLDINGS Inc.フルサイクル開発者を考えている人へ
フルサイクル開発者を考えている人へCARTA HOLDINGS Inc.【フルサイクル開発者向きの人】● フルスタックの技術志向に加えて…● より技術をビジネスの価値につなげたい人○ ユーザーに利益をもたらすものを届け、フィードバックを得て、更なるユーザ体験の改善を行いたい!○ 利用状況を監視して、ユーザが困ってることを可視化し、効果的に改善したい○ ビジネスサイドと一緒に物事を考えて、カタチにしたい
フルサイクル開発者を考えている人へCARTA HOLDINGS Inc.フルサイクル開発者はスペシャリストにも踏み出せる● ソフトウェアエンジニア -> データサイエンスエンジニア● ソフトウェアエンジニア -> データエンジニア全ては価値を届け続けるために
フルサイクル開発者を考えている人へCARTA HOLDINGS Inc.ようこそCARTAの門へさあエントリーを
いずれにも大事なことCARTA HOLDINGS Inc.興味がある領域だけにフォーカスし過ぎない● リスクは常にある● 変わり続けられること自らの選択肢を狭めないこと● 業態● 事業ドメイン● 技術領域価値を届けることにフォーカスすること
キャリア特性ごとのアドバイスCARTA HOLDINGS Inc.キャリアに悩んでいる人へ
最初の一歩はみんな失敗したくない● でも大丈夫、失敗ってそもそも何?自分と向き合ってみよう● 何がしたいか● どんな仲間と仕事がしたいか● 他に優先度が高いものはあるか● 3-5年後どうなりたいか、60歳になったら?いろいろなエンジニアと話をしよう● 働くイメージを持てるように● 様々な可能性に目を向けられるようにキャリアに悩んでいる人へCARTA HOLDINGS Inc.
まとめ
まとめCARTA HOLDINGS Inc.そんなわたしからのキャリア特性のアドバイスを参考に、ぜひ考えてみてほしいよフルサイクル開発者についてはビジネス・ソフトウェア開発のサイクルで厚めに解説、フルスタックエンジニアとの違いを説明したよ「早すぎる最適化」をしていないかは常に意識してほしいよビジネスの成り立ち、その中でエンジニアが何を担うのかを通して、スペシャリスト、フルスタックエンジニアの説明をしたよわたしのキャリアとなぜそういう道を辿ったかの説明をしたよCARTAはフルサイクルな働き方を実践している人々がたくさんいるよ