Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
バグの分析から見えた巨大な技術的負債を生まないためにできること / Bug Analysis ...
Search
Taichi Oshiumi
November 21, 2023
1
5.2k
バグの分析から見えた巨大な技術的負債を生まないためにできること / Bug Analysis tells how to avoid tech debt
2023/11/21 「技術的負債に向き合う Online Conference / LT 選手権」登壇資料
Taichi Oshiumi
November 21, 2023
Tweet
Share
More Decks by Taichi Oshiumi
See All by Taichi Oshiumi
Omotesando.rb #93 Wantedly Sponsor LT
t_osh
0
110
Wantedly が RubyKaigi で技術発信を大量にする理由 / Why Wantedly shares a lot of technical knowledge at RubyKaigi
t_osh
0
440
運用の負担を減らすログ送信システムの設計
t_osh
0
110
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
45
7.6k
How to train your dragon (web standard)
notwaldorf
96
6.2k
Docker and Python
trallard
45
3.5k
Done Done
chrislema
185
16k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
460
It's Worth the Effort
3n
186
28k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Automating Front-end Workflow
addyosmani
1370
200k
Git: the NoSQL Database
bkeepers
PRO
431
65k
RailsConf 2023
tenderlove
30
1.2k
For a Future-Friendly Web
brad_frost
179
9.9k
We Have a Design System, Now What?
morganepeng
53
7.7k
Transcript
© 2023 Wantedly, Inc. PUBLIC バグの分析から見えた 巨大な技術的負債を 生まないためにできること 技術的負債に向き合う Online
Conference / LT 2023/11/21 - Taichi Oshiumi (@t_o_sh) / Wantedly, Inc.
© 2023 Wantedly, Inc. PUBLIC 今日話すこと 1年で直したバグを分析して どんな部分が負債化するかを調べたので知見を共有
© 2023 Wantedly, Inc. PUBLIC 前提: Wantedly の特徴 • バックエンドはだいたい
Ruby • モノリシックな Rails アプリから Ruby の gRPC サーバが主流に • サービス開始から10年以上が経過 詳しくは https://docs.wantedly.dev/introduction/technical-overview
© 2023 Wantedly, Inc. PUBLIC 前提: ウォンテッドリー vs 技術的負債 負債返済日
• 1ヶ月に1日全エンジニアで技術的負債の返済タスクを行う 技術領域の横断組織 • 最大 20% の時間を使って大きな負債を組織的に解決する
© 2023 Wantedly, Inc. PUBLIC 前提: ウォンテッドリー vs 技術的負債 負債返済日
• 1ヶ月に1日全エンジニアで技術的負債の返済タスクを行う 技術領域の横断組織 • 最大 20% の時間を使って大きな負債を組織的に解決する これだけでは足りなかった → プロダクトの品質のために専門チームを設立
© 2023 Wantedly, Inc. PUBLIC 前提: Quality Control Squad の役割
1. 老朽化したアーキテクチャを刷新する 2. 見つかったバグを優先度高い方から潰す 3. 品質を高める文化を作る
© 2023 Wantedly, Inc. PUBLIC 前提: Quality Control Squad の役割
1. 老朽化したアーキテクチャを刷新する 2. 見つかったバグを優先度高い方から潰す (今日の話) 3. 品質を高める文化を作る
© 2023 Wantedly, Inc. PUBLIC 本題: 対応したバグを分析して負債の発生箇所を特定する バグはどこから生まれる?
© 2023 Wantedly, Inc. PUBLIC 本題: 対応したバグを分析して負債の発生箇所を特定する • サンプル数: 86
◦ 優先度の高い Issue のみを集計対象にした • Issue が作成されてからクローズするまでのリードタイムを計測 • App/System/Data の 3つで分類 ◦ System: バックエンドのコード修正で直るもの ◦ App: フロントエンドのコード修正で直るもの ◦ Data: データ修正が必要なもの ▪ RDB のデータ修正、ログのデータ修正等
© 2023 Wantedly, Inc. PUBLIC 本題: 分析結果 days ヒゲの長さは (Q3-Q1)*1.5
を上限とし、その範囲外を外れ値とした。
© 2023 Wantedly, Inc. PUBLIC なぜデータ修正系のバグはリードタイムの分散が大きくなるのか • 参照の数によってかかる時間が大きく変わる ◦ 参照が多いデータは重要度が高いが、網羅的に調べるのが難しく時間がかか
る ◦ 逆に言うと参照が限定的なデータの修正だと一瞬で終わる • データが壊れていることに対してのモニタリングが十分でなく発見が 遅れる • ユーザーへのコミュニケーションのリードタイムがかかる
© 2023 Wantedly, Inc. PUBLIC 巨大な技術的負債を生まないためにできること • 早期に発見、対応すること ◦ 負債を得て一次的な速度を得ることも状況によってはあるが、
データの負債は高利子であることを忘れない ◦ モニタリングできる仕組みを作る • 無駄な負債を生まない ◦ 負債である認識を持って生んだ負債は悪化したときに気付きやすいが、負債 の認識がないもの、途中で負債化したものは気付きにくい ◦ データ設計、ログ設計の重要性
© 2023 Wantedly, Inc. PUBLIC Advent Calendar で今日の発表の詳細版を書くので興味のある人はぜひ! https://qiita.com/advent-calendar/2023/wantedly
© 2023 Wantedly, Inc. PUBLIC We are hiring! https://www.wantedly.com/projects/549179