Upgrade to Pro — share decks privately, control downloads, hide ads and more …

スペシャリスト?フルスタック?whichではないフルサイクル開発者という生き方 / 42TOK...

CARTA Engineering
November 06, 2023
1.2k

スペシャリスト?フルスタック?whichではないフルサイクル開発者という生き方 / 42TOKYO-SPECIAL-LECTURE-231106

社会に出るに際してどういうキャリアを積んでいこうか迷っている・会社を選ぶ上で働き方を重視しているみなさんへ。領域特化・あるいは様々な技術を扱うキャリアの特性を考えながら、CARTAで実践しているサービスのライフサイクルに関わる「フルサイクル開発者」という生き方について紐解きます。

CARTA Engineering

November 06, 2023
Tweet

More Decks by CARTA Engineering

Transcript

  1. アジェンダ CARTA HOLDINGS Inc. • 自己紹介 • まずは ◦ ビジネスの成り立ちについて

    ◦ エンジニアは何を担うのか • フルサイクル開発者とは何なのか ◦ Netflixの事例 ◦ フルスタックと何が違うのか • わたしのキャリア • キャリア特性ごとのアドバイス • まとめ
  2. みなさんに伝えたいこと CARTA HOLDINGS Inc. 「早すぎる最適化をしていないか?」 "Premature optimization is the root

    of all evil" - 早すぎる最適化は諸悪の根源である - 出典: ドナルド・クヌース - Wikipedia The Art of Computer Programming - Wikipedia
  3. ソフトウェア開発における「開発の流れ」 CARTA HOLDINGS Inc. リリース 設計 開発 テスト 運用 管理

    サポート 開発サイクルを速く回すことで プロダクトの価値を 速く高められる
  4. ソフトウェア開発における「開発の流れ」 CARTA HOLDINGS Inc. リリース 設計 開発 テスト 運用 管理

    サポート サイクルが途中で止まることで プロダクトの成長が止まる はよやれ
  5. Netflixの事例 ~アジェンダ~ CARTA HOLDINGS Inc. Netflixにおけるフルサイクル開発者―開発したものが運用する • ソフトウェアライフサイクル ◦ 今までの開発スタイルを紐解く

    • 開発したものが運用する ◦ DevOpsとの出会い • 開発者ツールによるスケール ◦ 価値を届けることに向き合うために • フルサイクル開発者 ◦ 理想とする形を実践する
  6. ソフトウェアライフサイクル – 工程や役割を細分化し過ぎて自らの首を締めてたことに気づいたよ – CARTA HOLDINGS Inc. 出典:Netflixにおけるフルサイクル開発者―開発したものが運用する - CARTA

    TECH BLOG • もともと個々のライフサイクルコンポーネントは独立したチームでそれぞれが専門家だった • この専門化された組織はそのセグメント内では効率的だが、ライフサイクル全体の非効率性を作り出す • ライフサイクルの一断面のみを担当する専門家チームを持つとサイロ化が進む • コミュニケーションオーバーヘッドの増加、ボトルネックの発生、フィードバックループの非効率性 • 結果、最終的な顧客への価値提供を遅らせる
  7. 開発したものが運用する – 要は開発から運用のそれぞれの工程を1つのチームでやろう! – CARTA HOLDINGS Inc. 出典:Netflixにおけるフルサイクル開発者―開発したものが運用する - CARTA

    TECH BLOG サイロを解体しフルソフトウェアライフサイクル の共同所有を奨励することで、学習とフィード バックを最適化することができる 責任を外部化するのではなく開発チームに与える ことで、ダイレクトなフィードバックループと共 通のインセンティブを持つことができる 各開発チームは開発上の課題、パフォーマンスの バグ、キャパシティープランニング、アラートの 欠如、パートナーサポートといったものを受け 持っている
  8. 開発者ツールによるスケール – 開発チームの特性に依らないツール群を抽出し、専門家を置こう– CARTA HOLDINGS Inc. 出典:Netflixにおけるフルサイクル開発者 ―開発したものが運用する - CARTA

    TECH BLOG • 一連の開発ライフサイクルに対するオーナーシップによりソフトウェア開発者に求められることは大幅に 増えるが、開発上の共通する要求を単純化したり自動化するツールによって負荷を軽減できる • これらのツールを手中にして、開発チームはプロダクトのドメインの問題解決に集中することができる
  9. フルサイクル開発者 – ソフトウェアライフサイクルを回し、顧客に価値を提供しよう – CARTA HOLDINGS Inc. 出典:Netflixにおけるフルサイクル開発者―開発したものが運用する - CARTA

    TECH BLOG 驚くべき開発ツールを持ち、設計、開発、テス ト、デプロイ、運用、サポートといったフルソ フトウェアライフサイクルへの責任を持つ開発 チームだ。 フルサイクル開発者はソフトウェアライフサイ クルの全ての分野において知識があり効果的で あることが期待される。
  10. フルスタックと何が違うのか? CARTA HOLDINGS Inc. フルスタック • 1人のエンジニアの技術的な「引き出し」の話 ◦ アプリフロントエンド ◦

    Webフロントエンド ◦ バックエンド ◦ インフラ ◦ etc • ライフサイクルでいうと主に Design, Develop, Testのところで特に力を発揮するイメージ
  11. フルスタックと何が違うのか? CARTA HOLDINGS Inc. フルサイクル • アイデア・価値が届くまでを1つのライフサイクルとみて、 それを一人の技術者で滑らかに回していく • このサイクルを何度も繰り返し、

    よりよいプロダクト・サービスを提供していく • 価値を届けるための動き方についての定義である • フルスタックであることは十分条件であり、必要条件ではない
  12. わたしのキャリア CARTA HOLDINGS Inc. 独立系SIer 2005.04 インターネット 広告 2013.10 HR領域

    自社サービス 2008.02 少数精鋭SIer 2010.07 1社目 4社目〜現在 2社目 3社目 主に大規模toB受託開発 ビジネスのためになんでもやる 営業/運用部門がすぐ隣にいる プロダクト中心な組織で開発 技術的に なんでもやるマンになった iOS/Android Webアプリ  フロントエンド  バックエンド インフラ 外資スタートアップの 日本ブランチ ここでCARTAに合流 いまここ
  13. CARTA HOLDINGS Inc. 独立系SIer 2005.04 インターネット 広告 2013.10 HR領域 自社サービス

    2008.02 少数精鋭SIer 2010.07 1社目 4社目〜現在 2社目 3社目 主に大規模toB受託開発 勉強することばっかで 面白みしかなかった 営業/運用部門がすぐ隣にいる プロダクト中心な組織・文化 外資スタートアップの 日本ブランチ ここでCARTAに合流 色々 経験できそう わたしのキャリア 1st 技術的に なんでもやるマンになった iOS/Android Webアプリ  フロントエンド  バックエンド インフラ
  14. 学んだこと: 「自分たちでなんとかする、なんとかできるんだ」 CARTA HOLDINGS Inc. • 受託開発の会社 ◦ 企業や組織が求めているシステムの開発を請け負う ◦

    それに沿ったシステムやソフトウェアを開発・納品 ◦ 新卒で入った会社だったので、多少無理してがんばっていた気も • 経験したこと ◦ SNMPプロトコルを使ったネットワーク装置の監視 ◦ ホット/スタンバイのフェイルオーバーを自前で実装 ◦ 10時間かかってたバッチを1時間に ▪ 1000行以上のSQLを見ても日和らなくなったのはここでの経験が大きい     キラキラした仕事ではないけど、自分たちでなんとかする、なんとかできるんだ、というのを学んだ
  15. CARTA HOLDINGS Inc. 独立系SIer 2005.04 インターネット 広告 2013.10 HR領域 自社サービス

    2008.02 少数精鋭SIer 2010.07 1社目 4社目〜現在 2社目 3社目 主に大規模toB受託開発 ビジネスのためになんでもやる 営業/運用部門がすぐ隣にいる プロダクト中心な組織で開発 火消しでもなんでもやる マンになった 外資スタートアップの 日本ブランチ ここでCARTAに合流 わたしのキャリア 2st ユーザの近くで 仕事したい!
  16. 学んだこと: 顧客とビジネスサイドからフィードバックをもらえる環境はありがたい! CARTA HOLDINGS Inc. • 自分にとって初めての自社サービス会社へ ◦ 自分たちで作ったものを、自分たちでお金(売上)に変える ◦

    組織もそこまで大きくなかった ◦ 業務を委託しているエンジニアは外部にいたが、社内にはエンジニアは少数しかいなかった • 経験したこと ◦ DevOps的な業務 ◦ オンプレでのサービス提供 ◦ 営業の方たちと一緒に営業同行も行う       自分たちが作った機能に対して、顧客とビジネスサイドからフィードバックをもらえる環境は得難いもの
  17. わたしのキャリア 2nd – フルサイクルの芽生え – CARTA HOLDINGS Inc. 提案 実装

    運用 改善 顧客 起業家 かわむら 価値 いいじゃん
  18. わたしのキャリア 3rd CARTA HOLDINGS Inc. 独立系SIer 2005.04 インターネット広 告 2013.10

    HR領域 自社サービス 2008.02 少数精鋭SIer 2010.07 1社目 4社目〜現在 2社目 3社目 転換期・流れに ノリたい 主に大規模toB受託開発 ビジネスのためになんでもやる 営業/運用部門がすぐ隣にいる プロダクト中心な組織で開発 技術的に なんでもやるマンになった iOS/Android Webアプリ  フロントエンド  バックエンド インフラ 外資スタートアップの 日本ブランチ ここでCARTAに合流
  19. やったこと: 今まで学んだことをフルに使って「価値を生む」 CARTA HOLDINGS Inc. • 再び受託開発の世界へ ◦ ちょうどタイミング的にアプリ内課金が出始めの頃(ソシャゲ黎明期) =

    ビジネスの転換期 ◦ ここでは時代のおかげで様々なことに携わるのが当たり前 ◦ フルスタックぽいことはここから体現している • 経験したこと ◦ フルスタックエンジニアとして働く ◦ 技術領域・事業ドメインを選り好みせず開発に取り組む ◦ 一時期プロジェクトを6個ほど同時に捌き、アシュラマンと呼ばれる    大変と呼べる仕事もあったし、デスマーチも経験(真似はしないでね)
  20. CARTA HOLDINGS Inc. 独立系SIer 2005.04 インターネット 広告 2013.10 HR領域 自社サービス

    2008.02 少数精鋭SIer 2010.07 1社目 4社目〜現在 2社目 3社目 主に大規模toB受託開発 ビジネスのためになんでもやる 営業/運用部門がすぐ隣にいる プロダクト中心な組織で開発 火消しでもなんでもやる マンになった 外資スタートアップの 日本ブランチ ここでCARTAに合流 わたしのキャリア 4th~ 海外エンジニアと 働いてみたい
  21. 学んだこと: 海外のエンジニアに囲まれて「日本のエンジニアもかなり優秀」と気づいた CARTA HOLDINGS Inc. • 外資インターネット広告会社 ◦ 海外のエンジニアと一緒に仕事をしたいと思い外資へ •

    感じたこと ◦ 小さなスタートアップではあったが、優秀なエンジニアが多かった ▪ ロシア出身でモニタリングのためのバックドアを仕込みまくる凄腕CTO ▪ 気の優しいエンジニアリングマネージャ ▪ UCLA卒のフロントエンジニア ▪ スタンフォードに修士で通ってるシステム管理者 ▪ インドのバンガロールで停電になりながらもしっかり開発やテストを行うエンジニア    比べるサンプルは小さいが、日本のエンジニアもかなり優秀、という認識を持てた
  22. やったこと: MBOから自分たちで伸ばすことで、フルサイクル開発という生き方に CARTA HOLDINGS Inc. • 外資インターネット広告会社〜現在 ◦ 以降はずっとインターネット広告に携わる ◦

    良い仲間に恵まれている • 経験したこと ◦ 今でこそ当たり前の動画広告を、日本で一番最初に始める(当社比) ◦ 一番大きかった経験としては、USヘッドクォーターからMBO ▪ 今までのプロダクトを捨てる決断をして日本独自で3ヶ月でリプレース ◦ 後にCARTA HOLDINGSにJOINするきっかけへ           今までの集大成として色々なものに携わる = フルサイクル開発者という生き方 へ
  23. 実は5thがあってな? CARTA HOLDINGS Inc. CARTA 現在 信頼できるチーム・ メンバと働きたい • CARTA

    HOLDINGS ◦ フルサイクル開発という考え方 を組織化 ◦ CARTA MARKETING FIRMでCTOに ◦ 2社目で経験したフルサイクルを組織として体現している会社だった ▪ 入社時点で既にフルサイクルを体現している部分もあった • 信頼できるチーム・メンバーと働ける環境を「創る」側に
  24. みなさんに伝えたいこと CARTA HOLDINGS Inc. 「早すぎる最適化をしていないか?」 "Premature optimization is the root

    of all evil" - 早すぎる最適化は諸悪の根源である - 出典: ドナルド・クヌース - Wikipedia The Art of Computer Programming - Wikipedia
  25. なぜそう思うのか CARTA HOLDINGS Inc. • 現在は CTOという「ロール」がついている だけ • そこだけに

    最適化・フォーカスをしているわけではない • 20年近くやって未だに「これだ!」と自覚できるような領域はない • 事業を考える人々に近いところでエンジニアリングし続けること ができている、だけ • 最適化なんて恐れ多い
  26. スペシャリストを考えている人へ CARTA HOLDINGS Inc. 【スペシャリスト向きの人】 • 既に学校の専攻などで素養がある人 ◦ ex) データサイエンティスト

    ▪ applied data science(応用データサイエンス)はあらゆる場所で活躍できる ▪ 従来広告領域だけだったが、DXされた様々なビジネスで求められている ◦ ex) セキュリティエンジニア ▪ 手口の巧妙化、対策の高度化 ▪ IPAの情報セキュリティや海外事例を追い学ぶ(脆弱性情報・インシデント事例)
  27. スペシャリストを考えている人へのアドバイス CARTA HOLDINGS Inc. 強みがあることは素晴らしい • 本当に強みかどうかは常に客観な事実から • 自分を俯瞰する 強みが廃れたときのリスクも考慮していこう

    • 技術・ビジネスの移り変わり、パラダイムシフトは起きる • つまり「強み自体」も変化する 隣接する領域への興味関心を持っていこう • 要素を分解して考えてみる • フロントエンド => ビルドツール、対向のAPI、Web最適化、... • バックエンド => データベース、CI/CD、IaC、APIがどう使われているか、... • データサイエンティスト => MLOps、データプラットフォーム、...
  28. フルスタックエンジニアを考えている人へのアドバイス CARTA HOLDINGS Inc. 爪を研ぎ続けよう • コンフォートゾーンから出る瞬間を意識的に作る ◦ おすすめは重要度も緊急度も高い仕事に向き合うこと ◦

    制約があると気が引き締まる(諸説あります) • 焦る必要はない ◦ もがいていれば、求められる環境は必ずある ◦ 事業会社の新規立ち上げ・スタートアップ・受託開発… 複数の領域を扱えることは素晴らしい • 何と言われようと自信を持ってほしい • 常に客観的に見続けてほしい
  29. フルスタックエンジニアを考えている人へのアドバイス CARTA HOLDINGS Inc. 様々な領域をつまみ食いしがちな問題は起こりうる • 俗にいう「器用貧乏」な状態 • 何でもできる =

    何にもできない ◦ 「全体的に弱い、強みがない」と捉えられがち ◦ そんなことはない ◦ その中でも強みはなにか? ▪ T型を目指す 便利屋になってしまう • 良い側面としては、それは周囲からの信頼のあらわれでもあるかもしれない • 言語化能力・ヒアリング能力大事 ◦ めんどくさい人にはならないように ▪ 敢えてなる人もいる ◦ 相手のコンテキストを正しく理解する ▪ 「顧客が本当必要だったもの」
  30. フルサイクル開発者を考えている人へ CARTA HOLDINGS Inc. 【フルサイクル開発者向きの人】 • スペシャリティ・フルスタックの技術的な垣根に加えて… • より技術をビジネスの価値につなげたい人 ◦

    ユーザーに利益をもたらすものを届け、フィードバックを得て、 更なるユーザ体験の改善を行いたい! ◦ 利用状況を監視して、ユーザが困ってることを可視化し、効果的に改善したい ◦ ビジネスサイドと一緒に物事を考えて、カタチにしたい
  31. 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の現場
  32. 最初の一歩はみんな失敗したくない • でも大丈夫、失敗ってそもそも何? 自分と向き合ってみよう • 何がしたいか • どんな仲間と仕事がしたいか • 他に優先度が高いものはあるか

    • 3-5年後どうなりたいか、60歳になったら? いろいろなエンジニアと話をしよう • 働くイメージを持てるように • 様々な可能性に目を向けられるように キャリアに悩んでいる人へ CARTA HOLDINGS Inc.
  33. まとめ CARTA HOLDINGS Inc. そんなわたしからのキャリア特性のアドバイス を参考に、ぜひ考えてみてほしいよ フルサイクルエンジニアとフルスタックエンジ ニアとの違いをビジネス・ソフトウェア開発の サイクルを交えて説明したよ 「早すぎる最適化」をしていないかは常に意識

    してほしいよ ビジネスの成り立ち、その中でエンジニアが何 を担うのかを通して、スペシャリスト、フルス タックエンジニアの説明をしたよ わたしのキャリアとなぜそういう道を辿ったか の説明をしたよ CARTAはフルサイクルな働き方を実践している 人々がたくさんいるよ