$30 off During Our Annual Pro Sale. View Details »

20%ルールに頼らない: 技術的負債を解消する 組織的な取り組み / Developers Summit 2023 Summer

kakehashi
July 27, 2023

20%ルールに頼らない: 技術的負債を解消する 組織的な取り組み / Developers Summit 2023 Summer

2023.07.27に開催されたDevelopers Summit 2023夏の登壇資料です

登壇者:湯前 慶大(VP of Engineering)

kakehashi

July 27, 2023
Tweet

More Decks by kakehashi

Other Decks in Business

Transcript

  1. 20%ルールに頼らない:
    技術的負債を解消する
    組織的な取り組み
    2023.07.27 株式会社カケハシ
    湯前 慶大

    View Slide

  2. Copyright © KAKEHASHI Inc. All Rights Reserved.

    1

    湯前 慶大(VP of Engineering) @yunon_phys
    2010-2014 (株)日立製作所: 研究員
    2014-2023 (株)アカツキ: VP of Engineering
    2023- (株)カケハシ: VP of Engineering
    Engineering ManagerのためのPodcast EM.FMの
    パーソナリティーをつとめる
    最近子どもが産まれて、てんやわんやな日々を
    過ごす

    View Slide

  3. Copyright © KAKEHASHI Inc. All Rights Reserved.

    2

    突然ですが・・・
    みなさんこんなことは無いですか?

    View Slide

  4. Copyright © KAKEHASHI Inc. All Rights Reserved.

    3

    ・技術的負債の解消より機能開発の
     方がいつも優先度が高い
    ・経営者やPdMから技術的負債に
     ついて理解してもらいづらい
    ・正直技術的負債の解消に気乗り
     しない

    View Slide

  5. Copyright © KAKEHASHI Inc. All Rights Reserved.

    4

    技術的負債の解消のやり方や
    技術的負債の大事さはいろんな情報がある
    一方、どうやって社内で調整するのか、
    という現実的な話はあまり情報がない
    (泥臭いし、正直かっこいい話じゃないし)

    View Slide

  6. Copyright © KAKEHASHI Inc. All Rights Reserved.

    5

    今日の話は・・・
      技術的負債はこうやれば解決するよ
      悩みながらなんとか向き合って進めてるよ
    → かなり現実的な話をしていきます

    View Slide

  7. Copyright © KAKEHASHI Inc. All Rights Reserved.

    Vision
    明日の医療の基盤となる、エコシステムの実現。
    6

    Mission
    日本の医療体験を、しなやかに。

    View Slide

  8. Copyright © KAKEHASHI Inc. All Rights Reserved.

    7


    View Slide

  9. Copyright © KAKEHASHI Inc. All Rights Reserved.

    8

    Musubi AI在庫管理(薬局向け)
    残薬問題 非効率な物流
    人に頼った在庫管理

    View Slide

  10. Copyright © KAKEHASHI Inc. All Rights Reserved.

    9

    リリースして約2年
    まだまだ機能拡張をしていきたい
    でも、なんか開発がうまくいってない

    View Slide

  11. Copyright © KAKEHASHI Inc. All Rights Reserved.

    10

    感覚的に開発効率に課題はありそう
    以前と比較して機
    能リリースが遅く
    なっている気がする
    ・・・
    by PdM
    3ヶ月前に入社した
    が、こんなにコード
    を把握できないの
    は初めて
    by エンジニア
    機能を追加するとエ
    ンバグしてしまいそ
    うで、コードを触る
    のが怖い
    by エンジニア

    View Slide

  12. Copyright © KAKEHASHI Inc. All Rights Reserved.

    11

    Findy Team+でもマージまでの
    平均時間は伸びている

    View Slide

  13. Copyright © KAKEHASHI Inc. All Rights Reserved.

    12

    じゃあどうすれば良いか?

    View Slide

  14. Copyright © KAKEHASHI Inc. All Rights Reserved.

    13

    機能拡張のために取りうる手段
    1. 追加機能を可能な限り削る
    2. 開発効率を上げる
    3. 人を増やす

    View Slide

  15. Copyright © KAKEHASHI Inc. All Rights Reserved.

    14

    機能拡張のために取りうる手段
    1. 追加機能を可能な限り削る
    Enterprise企業を顧客にしていくために、
    そもそも足りていない機能が多すぎる
    → 残念ながら、現段階ではこれは取れない

    View Slide

  16. Copyright © KAKEHASHI Inc. All Rights Reserved.

    15

    機能拡張のために取りうる手段
    1. 追加機能を可能な限り削る
    2. 開発効率を上げる
    3. 人を増やす
    理想的には
    この順番で
    対処していきたい

    View Slide

  17. Copyright © KAKEHASHI Inc. All Rights Reserved.

    16

    機能拡張のために取りうる手段
    1. 追加機能を可能な限り削る
    2. 開発効率を上げる
    3. 人を増やす
    現実的には
    同時並行
    (採用も育成も時間
    がかかる)

    View Slide

  18. Copyright © KAKEHASHI Inc. All Rights Reserved.

    17

    機能拡張のために取りうる手段
    1. 追加機能を可能な限り削る
    2. 開発効率を上げる
    3. 人を増やす
    ← 今日はここだけ

    View Slide

  19. Copyright © KAKEHASHI Inc. All Rights Reserved.

    18

    生産性とは?
    期待付加価値
    仕事量
    実現
    付加
    価値
    どの程度の仕事を
    こなすことができたか
    どれだけ価値の高い
    仕事をできたか
    どれだけKPIを達成する
    ための重要な指標を達
    成できたか
    https://qiita.com/hirokidaichi/items/53f0865398829bdebef1 に基づき筆者作成

    View Slide

  20. Copyright © KAKEHASHI Inc. All Rights Reserved.

    19

    生産性とは?
    期待付加価値
    仕事量
    実現
    付加
    価値 下のレベルの
    生産性が高くないと
    上のレベルの
    生産性も高くない

    View Slide

  21. Copyright © KAKEHASHI Inc. All Rights Reserved.

    20

    生産性とは?
    期待付加価値
    仕事量
    実現
    付加
    価値
    今回のフォーカスは仕事量の生産性
    → 開発効率をいかに上げるか?

    View Slide

  22. Copyright © KAKEHASHI Inc. All Rights Reserved.

    21

    では開発効率を
    チームとして上げてこなかったのか?

    View Slide

  23. Copyright © KAKEHASHI Inc. All Rights Reserved.

    22

    チームの取り決めとして、
    20%は改善活動に時間を割くことに
    なっていた
    でも、実際には開発効率に影響が出る
    ぐらい、技術的負債は溜まってしまっ
    ていた・・・

    View Slide

  24. Copyright © KAKEHASHI Inc. All Rights Reserved.

    23

    一例ですが・・・
    ・テストが不十分なので変更が怖い
    ・テストを拡充するために、そもそもの
     リファクタリングもやりたい
    ・e2eが巨大なメソッドになっていて、
     何をテストしているかわかりづらい
    ・シンボリックリンクが多用されて
     いて、読解に時間がかかる
    ・論理削除が多用されていて、
     パフォーマンス影響が顕在化してきた

    View Slide

  25. Copyright © KAKEHASHI Inc. All Rights Reserved.

    24

    ところで・・・
    技術的負債はネガティブなのか?
    負債と聞くとネガティブなイメージを持ちがちだ
    が、何かしらのレバレッジ(てこ)によりプロダクト
    開発をした結果出たもの。うまく返済活動すれば
    良い。
    過去を否定したら今が無いかもしれないので、
    過去に敬意を持って対処するのが大事。

    View Slide

  26. Copyright © KAKEHASHI Inc. All Rights Reserved.

    25

    技術的負債を解消する
    ためにどう組織的に
    解消に動いたか?

    View Slide

  27. Copyright © KAKEHASHI Inc. All Rights Reserved.

    26

    ✔ そもそも20%の時間で改善できる
    内容には限界がある
           ↓
     100%時間を使えるように
     うまくチームを構成すれば良いのでは
    A B C D E F A B C D E F

    View Slide

  28. Copyright © KAKEHASHI Inc. All Rights Reserved.

    27


    View Slide

  29. Copyright © KAKEHASHI Inc. All Rights Reserved.

    28

    チームを分割して対応しようとしたら・・・
    ✔ ドメイン知識に偏りがある
    ✔ どこをリファクタリング・リアーキテクチャするのか
    チーム全体で細かなすり合わせが必要

    View Slide

  30. Copyright © KAKEHASHI Inc. All Rights Reserved.

    29

    そもそも、技術的負債はチームの課題。
    結果的に特定の人が解決するにしても、
    考え方、解決のやり方などはチーム全体で
    取り組まなければいけない。
    → いきなり解決専門のチームをつくって
      解消する方針は取りやめ

    View Slide

  31. Copyright © KAKEHASHI Inc. All Rights Reserved.

    30

    なんとなく課題があるのはわかる
    でも、ここにどれだけ時間的リソースを使って
    取り組むべきかは
    誰も自信を持って言えない状態。
    意思決定しきれないまま、
    2ヶ月ぐらい経ったころ、ある事件が起きた...

    View Slide

  32. Copyright © KAKEHASHI Inc. All Rights Reserved.

    31

    ✔ そもそも20%の時間で改善できる
    内容には限界がある
           ↓
     100%時間を使えるように
     うまくチームを構成すれば良いのでは
    見積もりバカでかい事件
    (今考えた)

    View Slide

  33. Copyright © KAKEHASHI Inc. All Rights Reserved.

    32

    概算見積もりによる開発期間
    velocityから算出した開発期間(3倍!!!)

    View Slide

  34. Copyright © KAKEHASHI Inc. All Rights Reserved.

    33

    経営メンバーも、PdMも、SMも
    みんな頭を抱えてしまう
    OKRの達成が・・・ 顧客への説明が・・・ 今後の開発が・・・
    経営メンバー PdM SM

    View Slide

  35. Copyright © KAKEHASHI Inc. All Rights Reserved.

    34

    とりあえず
    落ち着こう!!
    やらなきゃいけないのは、
    どうやって開発効率を上げるか?
    ≒ 技術的負債にどう向き合うか?

    View Slide

  36. Copyright © KAKEHASHI Inc. All Rights Reserved.

    35

    エンジニア的には工数さえ確
    保出来ていれば、まあやりま
    すよ、というスタンス
    (※後に話すが、そんな簡単
    でもなかった)

    View Slide

  37. Copyright © KAKEHASHI Inc. All Rights Reserved.

    36

    とはいえ・・・
    それなりに長期間(3ヶ月 ~ 半年ぐらい)、技術
    的負債に向き合う必要がある
    この間、機能開発が止まる or 遅くなる

    View Slide

  38. Copyright © KAKEHASHI Inc. All Rights Reserved.

    37

    長い時間をかけて技術的負債の解消に
    工数をかけるのは、理解ある経営者や
    PdMでも納得してもらうのは大変
    売上に直結することを
    優先したい経営者、PO、
    PdM

    View Slide

  39. Copyright © KAKEHASHI Inc. All Rights Reserved.

    38

    どこまでいっても、技術的負債の解消の効
    果を定量的に説明するのは難しい。
    でも、EMやエンジニアの言っていることが
    嘘ではないことも理解している。
    だからこそ、技術的負債に対する熱量を伝
    えることは大事。そのために、提案するEM
    やエンジニアも覚悟を示す

    View Slide

  40. Copyright © KAKEHASHI Inc. All Rights Reserved.

    39


    View Slide

  41. Copyright © KAKEHASHI Inc. All Rights Reserved.

    40


    View Slide

  42. Copyright © KAKEHASHI Inc. All Rights Reserved.

    41

    身を削るのは、
    経営者やPdMだけになっていないか?

    View Slide

  43. Copyright © KAKEHASHI Inc. All Rights Reserved.

    42

    長期的な改善だけでなく、短期間の
    改善も提案し、最大限EMやエンジニ
    アも身を削る提案をする
    長期的な改善
    ・技術的負債の解消
    ・採用や育成
    ・構造改革
    短期的な改善
    ・プロセスの改善
    ・会議体の整理
    ・自動化・仕組み化

    View Slide

  44. Copyright © KAKEHASHI Inc. All Rights Reserved.

    43

    社内資料より抜粋
    見積もり・進捗報告のやり方を変え、
    すぐに課題に対処出来るようにする

    View Slide

  45. Copyright © KAKEHASHI Inc. All Rights Reserved.

    44

    短期的に成果を出すことにフォーカスするべく、
    中長期的な施策を勇気を持って一旦削除する
    社内資料より抜粋

    View Slide

  46. Copyright © KAKEHASHI Inc. All Rights Reserved.

    45

    身を削る提案をすることで、
    中長期的な対策として技術的負債の解消を
    経営層・PdMと議論できるようになった
    議論内容
    ✔ ゴールをどうするか
    ✔ 何をやるのか
    ✔ どのくらいの期間とリソースを使うか

    View Slide

  47. Copyright © KAKEHASHI Inc. All Rights Reserved.

    46

    テスト戦略
    +
    テスト
    リファクタリング
    リアーキテクチャ
    緊急的
    負債解消 新規開発の負債解消
    新規開発の負債解消
    新規開発
    負債解消
    機能開発・機能改修
    時期
    時間的なリソースの割合
    技術的負債の解消プロセスのイメージの共有

    View Slide

  48. Copyright © KAKEHASHI Inc. All Rights Reserved.

    47

    次は見積もりをするべく、
    エンジニアチーム内でのすり合わせ
    しかし、そもそも・・・
    ✔ なぜやるのか
    ✔ 何が今課題なのか
    ✔ 何が理想の状態なのか
    の認識がチーム全体で合っていない

    View Slide

  49. Copyright © KAKEHASHI Inc. All Rights Reserved.

    48

    こういう深い議論をするのには、
    1つのホワイトボードを見ながら、
    長めに時間をかけるのが良い方法
    しかし
    カケハシは全員リモートワーク
    というわけで・・・

    View Slide

  50. Copyright © KAKEHASHI Inc. All Rights Reserved.

    49

    全国から全員集合!!!

    View Slide

  51. Copyright © KAKEHASHI Inc. All Rights Reserved.

    50


    View Slide

  52. Copyright © KAKEHASHI Inc. All Rights Reserved.

    51

    オフラインの議論により、
    ✔ なぜやるのか
    ✔ 何が今課題なのか
    ✔ 何が理想の状態なのか
    はチームで大方揃った・・・!
    あとは進めるだけ・・・!
    → To be continued...

    View Slide

  53. Copyright © KAKEHASHI Inc. All Rights Reserved.

    52

    技術的負債への組織的な取り組みについて、
    悩みながらも進めている話をしました。
    何かしら皆さまの組織において、
    参考になれば幸いです。

    View Slide

  54. 53
    Connpass

    View Slide

  55. 54
    本日のアンケートへのご協力を
    お願いします󰢜

    View Slide

  56. 55

    View Slide