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

Kyash Tech Talk #5マネジメント 技術負債の返済計画と事業のバランス

Kyash Tech Talk #5マネジメント 技術負債の返済計画と事業のバランス

Masahiko Matsuura

November 30, 2022
Tweet

Other Decks in Programming

Transcript

  1. ©2022 Kyash Inc. ©2022 Kyash Inc. 技術負債の返済計画と事業のバランス 2022/11/30 Tech Talk

    #5 マネジメント 2022.10更新 Kyash Techチーム ServerSide Engineering Manager Masahiko Matsuura(masamatsu66)
  2. ©2022 Kyash Inc. 2 自己紹介 映像機器メーカー、物流スタートアップを経てKyashに2020年6月にJoin。 サーバーサイド全体をマネジメントしています。 • 2社目の途中からEMに抜擢してもらい、それ以降自分には合っているのかなと感じてEM方向に進んでいます •

    元々HWメーカーにいたのでC++など比較的ローレベルな環境を好みます(2社目はPHP/Laravelでしたが、こ れはこれで好きです) • 他社システムとのAPI連携などをやってきた経歴も長いです。 • 最近ゲーミングPCを買ってオジサンながらAPEX Legendsを頑張ってます 松浦 優彦(まつうら まさひこ) Backend Devチーム Manager
  3. ©2022 Kyash Inc. 3 目 次 1. Kyashの技術負債 2. 返済の取り組み

    〜PAN祭り編〜 3. 機能開発にフォーカスした時期 4. 開発生産性という意味での取り組み編 Table of contents
  4. ©2022 Kyash Inc. ©2022 Kyash Inc. Kyashの技術負債 4 4

  5. ©2022 Kyash Inc. 5 Kyashの成り立ち 最初から技術選定が出来るエンジニア・CTOがいたわけでは ない • エンジニアの体制が整ってきたのは後から •

    最初は創業者の鷹取CEO1名で始まった。 golangの選定も実は元銀行員の鷹取がプログラミングを齧ったりしつつ 行っていた
  6. ©2022 Kyash Inc. 6 Kyashの成り立ち 初期の設計は・・・ • かなりモノリシックだった • レイヤードアーキテクチャ?何それ美味しいの?

    • 色々と同期的 • EC2で普通に動いているだけ、仮想化とは一体・・・ • 履歴の構造がカオス • 開発環境はDocker for Macでめちゃくちゃ重かった
  7. ©2022 Kyash Inc. 7 Kyashの成り立ち 色々と直している • モノリシック→マイクロサービスに • 新しく作るマイクロサービスはDDD・オニオンアーキテクチャに基づき設計

    • 非同期基盤をAWS SNS・SQSで整備 • EC2→ECS Fargateへ移行 • AWS RDS→Auroraへ移行 • 開発環境をEC2へ移行、DockerをLinuxネイティブに動かせるように
  8. ©2022 Kyash Inc. 8 Kyashの成り立ち ただし・・・ • 初期のサービス・DBは依然としてファット ◦ 特に残高変動などコアロジックほど剥がしにくい

    • 非同期で動くべきものが未だに一部は同期的なまま • EC2で動くバッチもまだ多数残っている • リポジトリによっては新旧のディレクトリ構成が混在しており保守性が下がっている
  9. ©2022 Kyash Inc. レイアウトの適用 9 技術負債返済のバランスは難しい • 事業体としてユーザー価値の提供速度が一番大事 • かといって動くもの最優先で負債を積み続ける、あるい

    は生産性の上がる取り組みをしなかった場合は長期的に はその速度が落ちる • このバランスは全ての会社が悩み続けているはず • Kyashも時期によって変遷がある
  10. ©2022 Kyash Inc. ©2022 Kyash Inc. 返済の取り組み 〜PAN祭り編〜 10 10

  11. ©2022 Kyash Inc. “ ” 11 某パンのお祭りではない

  12. ©2022 Kyash Inc. 12 返済の取り組み 〜PAN祭り編〜 PAN祭り • Important Task

    消化祭り • クォーター(3ヶ月)ごとに新機能開発などを一 切しない期間を一週間作る、この期間をPAN祭 り期間と呼んでいた • 日々の業務に忙殺されてできなかったような取 り組みをこの期間に集中してやっていた
  13. ©2022 Kyash Inc. 13 返済の取り組み 〜PAN祭り編〜 PAN祭り • メンバーからの評判は良かった •

    気分をリセットするきっかけにもなっていた • しかし2020年Q4に目玉機能の開発がいくつも控えており、PAN祭り期間の確保が難しかったこともあり一旦廃 止に
  14. ©2022 Kyash Inc. ©2022 Kyash Inc. 機能開発にフォーカスした時期 14 14

  15. ©2022 Kyash Inc. 15 機能開発にフォーカスした時期 2021/05 共有口座 2021/07 イマすぐ入金 2021/08

    セブン銀行 ATM出金 2021/12 法人送金サービス 2022/01 クレカ自動チャージ 廃止 2022/02 Kyash バリュー送金
  16. ©2022 Kyash Inc. 16 機能開発にフォーカスした時期 その結果 • 技術負債が増加傾向 • プロジェクトの片手間で片付けられる気がしなかった

    • 技術的なチャレンジもしにくくなった • メンバーのモチベーション低下 • 技術的な発信のネタ不足、発信不足 • 結果として採用活動が全然進まない、人数はむしろ減り始めた
  17. ©2022 Kyash Inc. ©2022 Kyash Inc. 開発生産性という意味での取り 組み編 17 17

  18. ©2022 Kyash Inc. 18 開発生産性という意味での取り組み編 どうすれば技術負債を返済していけるのか? • 単に必要性を訴えるだけでは組織を動かすことができなかった • その活動が直接的ではないにせよ、事業に貢献することを示す必要があった

    • そのために開発生産性の改善に繋がっていることを示すためにKPIを設定することを提案した
  19. ©2022 Kyash Inc. 19 開発生産性という意味での取り組み編 どういうKPIが開発生産性を表すと言えるのか? • 当初は独自のKPIを作成する方向で話していた • DevOpsの観点からGoogleのFourKeysを使う方針に

    ◦ FourKeysについてはTeck Talk #4の「fourkeys基盤を構築した話」を御覧ください ◦ 開発生産性=FourKeysではないが、ある程度は関連してくる指標だと考えている
  20. ©2022 Kyash Inc. 20 開発生産性という意味での取り組み編 どういう体制で進めるのか? • チームを2つ分けた • 従来の機能開発を進めるチームをGrowth

    Productにとした • 技術負債返済に関わらずGrowth Productの 生産性を向上させるために、技術基盤レベルの も見直しも含めて行うGrowth Technology チームを作成 blogもご覧ください 「Tech Teamの生産力を爆上げすべくGrowth Technology Teamが爆誕しました」 https://blog.kyash.co/entry/2022/06/15/170000 ServerSideチーム Growth Product Growth Technology
  21. ©2022 Kyash Inc. 21 開発生産性という意味での取り組み編 まとめ • 重要なのは開発生産性が向上し続けること • そのために技術負債は返済>蓄積のバランスを維持する必要がある。僅かでも返済スピードが勝っていれば時間が味

    方になる • 返済に傾け過ぎていいわけではない。返済ばかりやっていても生産していないなら意味が無い。 • リアーキテクトなどはタイミングも重要 • 結局はマネジメント層のバランス感覚のセンスが問われる Kyashでは各職種にて絶賛採用中! • エンジニアも、エンジニア以外の方も様々なポジションがあります • まずは話を聞くだけのカジュアル面談から始められますのでぜひ!
  22. ©2022 Kyash Inc. ©2022 Kyash Inc. Thank you 2022.11.30 Kyash

    Tech Talk#5 マネジメント 技術負債の返済計画と事業のバランス (Masahiko Matsuura) 22