本文へ移動

ホーム / PdM / 第3部 開発の進め方

第3部 開発の進め方・第7章

技術的負債

★★☆ 重要6トピック・面接 3問

技術的負債の種類と、返済への投資をどう判断し、どう説明するかを押さえる。

7.1技術的負債

用語★★☆ 重要
ひとことで

早く出すために後回しにした設計の歪み。放置すると変更が遅く、障害が増える。返済も計画に入れる。

技術的負債は、早く出すために後回しにした設計の歪みです。借金と同じで、すぐに困るわけではありませんが、放置すると「利子」として変更が遅くなり、障害が増えます。早く出すための負債は悪いことではなく、借りていることを知っていて、返す計画があるかどうかが大切です。

返さないと、ある時点から速さが落ち続ける機能を出す速さの変化(イメージ)時間速さ一定の割合を返済に充てる返済しない最初は返済しない方が少し速い
技術的負債の「利子」:返済を続けると速さを保てる(イメージ)

負債はユーザーからも経営からも見えにくいので、放っておくと必ず後回しになります。見える形にする(一覧にする・症状を数字にする・バックログに並べる)のが PdM の役目です。種類・説明の聞き方・投資の判断は、この章の続くトピックで扱います。

SLO とエラーバジェット

SRE の「ライブラリ・ランタイムのバージョン管理」

面接ではこう答える

技術的負債は、早く出すために後回しにした設計の歪みのことです。借金と同じで、すぐには困りませんが、放置すると利子として変更が遅くなり、障害が増えます。早く出すための負債自体は悪いことではなく、借りていることを分かっていて返す計画があるかが大事です。PdM としては、返済も機能と同じバックログに並べ、効果の大きいものから計画に入れるようにしています。

7.2負債の種類

★★☆ 重要
負債は「わざとか」「慎重か」で4つに分けられる無謀・わざと「設計する時間はない」慎重・わざと「今は出して、後で直す」無謀・うっかり「設計って何?」慎重・うっかり「今なら別の作り方をした」わざとうっかり無謀慎重
技術的負債の4象限(Martin Fowler の整理)

PdM と一緒に作るべきなのは右上の「慎重・わざと」の負債です。期限のために近道を選ぶなら、何を借りたかを記録し、返す時期を決めておきます。右下の「後から分かった」負債は、どれだけ気をつけても生まれるものです。

負債の例ビジネスへの影響
古いライブラリ・ランタイムサポートが切れると脆弱性が直せない
テストがない変更のたびに手で確認し、リリースが遅れる・不具合が出る
設計の歪み似た機能を足すたびに同じところを何か所も直す
手作業の運用担当者がいないと回らない、作業ミスで障害が起きる
一時しのぎの対応障害のときの暫定対応が残り、次の障害の原因になる

「負債を返したい」と言われたときは、反対も賛成もせず、症状と効果を聞きます。数字で比べられると、機能と同じ土俵で優先順位を付けられます。

聞くこと返ってくると良い答えの例
いま何が困っているか(症状)「この画面を変えるたびに3日かかる」「月に2回同じ障害が起きる」
放置するとどうなるか「利用が2倍になると夜間の集計が朝までに終わらない」「来年3月にサポートが切れる」
直すと何が変わるか「変更が1日で済む」「障害の対応が月8時間減る」
どれくらいかかるか「全部で6週間。2週間ずつ3回に分けられる」
少しずつ返せるか「次の機能で触る部分だけ先に直せる」

経営に説明するときは、技術の言葉ではなく速さ・障害・費用・リスクの言葉に直します。「リファクタリングしたい」ではなく、「この改善で新機能を出す速さが倍になり、月2回の障害がなくなる」です。

影響が大きく、費用が小さいものから返す返す費用 →放置したときの影響すぐやる効果が大きく安い計画して分けて返す効果は大きいが高いついでに直す近くを触るとき今はやらない記録だけ残す
影響と費用で負債を分ける

返済の割合に公式の基準はなく、チームの状態で変わります。よく見られるのは、開発の時間の一定の割合(例えば1〜2割)を返済に充て続け、障害が続くときや SLO のエラーバジェットを使い切ったときは一時的に増やす、という形です。

やり方良いところ注意
毎スプリント一定の割合少しずつ返し続けられる割合が守られているかを見る
機能のついでに直す触る部分の負債が自然に減る見積もりに含めてもらう
返済のための期間をまとめて取る大きな負債を一気に片付けられる機能が止まる期間を経営と合意する

負債も機能と同じバックログに並べ、効果の大きいものから選ぶと、「いつか直す」のまま残り続けるのを防げます。

SLO とエラーバジェット

ひとことで

古い仕組みを一気に作り直さず、機能ごとに新しい仕組みへ移していくやり方。途中で止めても価値が残る。

一気に作り直すより、機能ごとに少しずつ置き換える最初少し移すほとんど移す完了色つき=新しい仕組みで動いている機能。いつでも止めて戻れ、その間も機能開発を続けられる
少しずつ置き換える(ストラングラーパターン)

負債が大きいと「全部作り直したい」という話が出ます。しかし一気の作り直しは、終わるまで新機能が止まり、古い仕組みの隠れた仕様を取りこぼし、予定よりずっと長引くことが多い、危険の大きいやり方です。

やり方向いている場面
少しずつ置き換える多くの場合。機能ごとに新しい仕組みへ移し、古いものを順に消す
作り直す小さい・使う人が少ない・古い技術がもう動かせない
そのまま直していく変更が少ない部分。触るところだけ直す

作り直しの提案には、「途中でやめたら何が残るか」「その間の機能開発はどうするか」を聞きます。少しずつ置き換える案なら、途中でやめても移した分の価値は残ります。

面接ではこう答える

負債が大きいときに一気に作り直すと、その間新機能が止まり、隠れた仕様を取りこぼし、予定よりずっと長引くことが多いです。そのため、機能ごとに少しずつ新しい仕組みに置き換え、古いものを順に消していくやり方が基本です。PdM としては、作り直しの提案があったら、途中でやめたら何が残るか、その間の機能開発はどうするかを確認して判断します。

ひとことで

ソフトウェアのサポートが終わること。過ぎると脆弱性が直されなくなるので、事前にバージョンアップを計画する。

サポートが切れると、見つかった脆弱性が直されなくなるサポート期間:不具合・脆弱性が直されるサポート終了(EOL)後移行には数か月かかることも。終了日の1年前には計画に入れたい
サポート期間と EOL

言語・フレームワーク・OS・DB などのソフトウェアにはサポート期間があり、終わること(EOL:End of Life)が事前に発表されます。EOL を過ぎると、脆弱性が見つかっても直されず、クラウドのサービスによっては古い版が使えなくなります。

PdM がしておくこと理由
主な部品の EOL の一覧をエンジニアにもらう計画に入れる時期が分かる
ロードマップにバージョンアップを入れる機能と取り合いになるので、先に枠を取る
アプリは対応する OS の最低版も決める古い OS を切ると使えなくなる人が出る(割合を見て判断)

バージョンアップはユーザーから見えにくい仕事ですが、遅れるとセキュリティ事故や急な作業になります。早めに枠を取るのが PdM の役目です。

面接ではこう答える

EOL は、言語やフレームワーク、OS などのサポートが終わることで、多くは事前に日付が発表されます。過ぎると脆弱性が見つかっても直されず、セキュリティの大きなリスクになります。バージョンアップは数か月かかることもあり、ユーザーから見えにくいので後回しにされがちです。PdM としては、主な部品の EOL を一覧でもらい、ロードマップに先に枠を取るようにしています。

この章のまとめ

🖨 まとめシート(印刷・PDF)
  • 負債は悪ではない。借りていることを知っていて、返す計画があるかが大事
  • 症状・放置したときの影響・直した効果を数字で説明してもらい、機能と同じバックログで比べる
  • 作り直しは危険が大きい。少しずつ置き換えるのが基本
  • 技術的負債:早く出すために後回しにした設計の歪み。放置すると変更が遅く、障害が増える。返済も計画に入れる。
  • 作り直すか、少しずつ直すか:古い仕組みを一気に作り直さず、機能ごとに新しい仕組みへ移していくやり方。途中で止めても価値が残る。
  • サポート終了(EOL)とバージョンアップ:ソフトウェアのサポートが終わること。過ぎると脆弱性が直されなくなるので、事前にバージョンアップを計画する。

この章のクイズ

面接ではこう聞かれる

まず答えを見ずに声に出して答え、そのあと開いて比べる。

Q1技術的負債の返済と新機能の開発、どう優先順位をつけますか?

模範回答

負債も機能と同じバックログに並べ、効果で比べます。エンジニアに「いま何に困っているか」「放置するとどうなるか」「直すと何がどれくらい良くなるか」を、変更にかかる日数や障害の件数など、できるだけ数字で説明してもらいます。

そのうえで、開発の時間の一定割合を返済に充て続ける形を基本にし、同じ障害が続くときやエラーバジェットを使い切ったときは一時的に増やします。「いつか直す」のままにしないよう、返済の計画をロードマップに書いて関係者と合意しておきます。

深掘りされたら

  • 負債の返済の価値を、経営にどう説明しますか?

見られているポイント負債を症状と数字で理解し、継続的な投資として計画できるか

Q2エンジニアから「システムを全部作り直したい」と提案されました。どう判断しますか?

模範回答

まず、作り直したい理由を症状と数字で聞きます。変更に何日かかっているか、障害が何件起きているか、作り直すと何が変わるか、です。そのうえで、一気に作り直す以外の選択肢、特に機能ごとに少しずつ置き換える案と比べます。

一気の作り直しは、その間新機能が止まり、予定より長引くことが多いので、「途中でやめたら何が残るか」「その間の機能開発はどうするか」を確認します。少しずつの案なら途中でも価値が残るので、多くの場合はそちらを提案します。

深掘りされたら

  • 経営にはどう説明しますか?
  • 作り直しが正しい場面はありますか?

見られているポイント作り直しのリスクの理解と、比較で判断する姿勢

Q3技術的負債の返済の効果を、経営にどう説明しますか?

模範回答

技術の言葉ではなく、速さ・障害・費用・リスクの言葉に直して説明します。例えば「この改善で、決済まわりの変更にかかる日数が5日から2日になり、月2回起きている障害がなくなる見込みです。かかるのは6週間で、2週間ずつ分けられます」のようにです。

放置した場合も伝えます。「来年3月にサポートが切れ、その後は脆弱性が直せません」のように期限があるものは特に重要です。返済後は、変更の日数や障害の件数で効果を報告します。

深掘りされたら

  • 効果が数字で出にくい負債はどう扱いますか?

見られているポイント技術の課題を事業の言葉に翻訳できるか