$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
バグの分析から見えた巨大な技術的負債を生まないためにできること / Bug Analysis ...
Search
Taichi Oshiumi
November 21, 2023
1
4.9k
バグの分析から見えた巨大な技術的負債を生まないためにできること / 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
89
Wantedly が RubyKaigi で技術発信を大量にする理由 / Why Wantedly shares a lot of technical knowledge at RubyKaigi
t_osh
0
330
運用の負担を減らすログ送信システムの設計
t_osh
0
63
Featured
See All Featured
Building Applications with DynamoDB
mza
90
6.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
Embracing the Ebb and Flow
colly
84
4.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Code Reviewing Like a Champion
maltzj
520
39k
Typedesign – Prime Four
hannesfritz
40
2.4k
The Pragmatic Product Professional
lauravandoore
32
6.3k
A better future with KSS
kneath
238
17k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Why Our Code Smells
bkeepers
PRO
334
57k
GraphQLとの向き合い方2022年版
quramy
44
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
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