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

技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発

技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発

日本経済新聞社 CDIO室が開催する技術勉強会 NIKKEI Tech Talk 【日経×ケップル×アドウェイズ】未来の事業戦略を見据えたシステム改善の最適解を探る #nikkei_tech_talk で発表させていただいた際のスライドです。

Yuichiro SERITA

December 19, 2024
Tweet

More Decks by Yuichiro SERITA

Other Decks in Programming

Transcript

  1. • 株式会社ケップル KEPPLE CREATORS LAB 所属 • ケップルにジョインして2年半 • フルスタック的に

    Web まわりのエンジニア をやっています • とにかくコーヒーが好き 芹田 悠一郎 Yuichiro SERITA 2
  2. ⾰新的なテクノロジーを通じて、 持続可能でより良い未来を描くためのイノベーションに 挑戦し続けるスタートアップ。 彼らの成⻑に必要とされる事業開発を グローバルで⾏うことにより 世界のスタートアップエコシステムの発展を⽬指します。 イノベーションを促進する グローバルプラットフォームとなる Vision Mission

    これまでに無い価値を⽣み出そうと挑戦を続ける起業家。 彼らの成⻑をさまざまな⾯から⽀援する投資家。 そのエコシステムから⽣まれたスタートアップが発展し、 ⼀つの産業と呼べるような市場が創造される。 そんな未来をこの世界に実現することが KEPPLEのミッションです。 世界に新たな産業を
  3. KEPPLE(メディア) KEPPLE DB KEPPLE CRM 株主総会クラウド Products ファンドサポート 株価算定・投資検討 人材紹介

    投資事業 プロフェッショナル サービス 投資家とスタートアップのニーズに応える多様なサービスを展開しています。 ファンド運営
  4. もくじ • 前提: KEPPLE DB とは • 「持続可能なプロダクト開発」とは • 「カイゼン活動」とは

    • 「カイゼン活動」の変遷 • 「カイゼン活動」で得たもの • 「カイゼン活動」でプロダクト開発を「持続可能」に 6
  5. もくじ • 前提: KEPPLE DB とは • 「持続可能なプロダクト開発」とは • 「カイゼン活動」とは

    • 「カイゼン活動」の変遷 • 「カイゼン活動」で得たもの • 「カイゼン活動」でプロダクト開発を「持続可能」に 7
  6. リプレースに至った課題 • KEPPLE DB は高頻度でリリースしたい が…… • 当初、KEPPLE DB は

    KEPPLE CRM の一機能だった • KEPPLE CRM はリリース時にサービス停止が必要 • KEPPLE CRM 固有の事情が絡むロジックが多い。 KEPPLE DB の開発にアサインされたら、 CRM のキャッチアップも必要 13
  7. もくじ • 前提: KEPPLE DB とは何か • 「持続可能なプロダクト開発」とは • 「カイゼン活動」とは

    • 「カイゼン活動」の変遷 • 「カイゼン活動」で得たもの • 「カイゼン活動」でプロダクト開発を「持続可能」に 15
  8. 「持続可能なプロダクト開発」 に必要な要素 • 速いリリース • 少ないバグ • 迅速なバグ修正 • 迅速な脆弱性対応

    • 社会の変化に追従 (GDPR とか) • 無理のない アーキテクチャ • バグ出しづらい • バグ直しやすい • 脆弱性対応が楽 • トレンドに追従 • インフラ維持が容易 • オブザーバビリティ ビジネス観点 開発観点 運用観点 20
  9. もくじ • 前提: KEPPLE DB とは何か • 「持続可能なプロダクト開発」とは • 「カイゼン活動」とは

    • 「カイゼン活動」の変遷 • 「カイゼン活動」で得たもの • 「カイゼン活動」でプロダクト開発を「持続可能」に 24
  10. 「カイゼン活動」 • 作業時間の 20% を負債の解消にあてる ◦ 当初は金曜日に行なっていたが、今は1か月に1週間にしている • 「カイゼン」したい内容を事前に積んでおき、エンジニアの裁量で進める ◦

    「この部分をリファクタしたい」 「ESLint のこのルールを入れたい」 「Flaky なテストを修正したい」 「CI 改善したい」 「VSCode の推奨 extension を変えたい」 などなど 25
  11. 「カイゼン活動」 を立ち上げる前の課題感 • 負債の解消を通常の開発と並行して進めるとうまくいかない ◦ ボーイスカウト・ルール ◦ 1週間に1人1つ RenovateBot の

    PR 片付けようキャンペーン • あとまわしにされがち • 負債の解消にどれくらい時間をかけていいか不明瞭 26
  12. もくじ • 前提: KEPPLE DB とは何か、なぜリプレースしたか • 「持続可能なプロダクト開発」とは • 「カイゼン活動」とは

    • 「カイゼン活動」の変遷 • 「カイゼン活動」で得たもの • 「カイゼン活動」でプロダクト開発を「持続可能」に 29
  13. 転機: Mantine v7 移行 • KEPPLE DB では Mantine という

    UI ライブラリを使っています • カイゼンデーで、Mantine v6 から Mantine v7 移行作業を始める • 破壊的変更が多すぎて、金曜日の作業だけだと永遠に終わらない! • 通常の機能開発を一時的に止めて対応 • 1ヶ月ほどで無事移行完了 (8月) 31
  14. もくじ • 前提: KEPPLE DB とは何か、なぜリプレースしたか • 「持続可能なプロダクト開発」とは • 「カイゼン活動」とは

    • 「カイゼン活動」の変遷 • 「カイゼン活動」で得たもの • 「カイゼン活動」でプロダクト開発を「持続可能」に 33
  15. もくじ • 前提: KEPPLE DB とは何か、なぜリプレースしたか • 「持続可能なプロダクト開発」とは • 「カイゼン活動」とは

    • 「カイゼン活動」の変遷 • 「カイゼン活動」で得たもの • 「カイゼン活動」でプロダクト開発を「持続可能」に 37
  16. おまけ: 数値で見る 「カイゼン活動」 • KEPPLE DB でカイゼン活動を始めてから11ヶ月 • 起票したタスクの数は 113

    • won’t do にしたタスクの数は 13 (12%) • 完了したタスクの数は 43 (38%) • 未完了のタスクの数は 57 (50%) 40