技術的負債とは。6つの種類と、経営への説明のしかた
技術的負債は、放置すると開発の速度を確実に下げます。一方、投資の効果が見えにくく、時間の確保が難しい領域です。この記事では、説明と返済の方法を整理します。
技術的負債とは
技術的負債とは、後で修正が必要になることを承知のうえで、当面動く形を選んだ結果、積み上がるものです。
金銭の借金に例えられます。借りれば今すぐ使えますが、利息を払い続けることになります。この場合の利息は、開発の速度低下です。
重要なのは、負債そのものが悪ではないことです。事業の立ち上げ期には、速さのために意図的に選ぶ場面があります。
問題になるのは、返済しないまま積み上がった場合です。やがて、小さな変更にも長い時間がかかる状態になります。
負債の種類
実務では、いくつかの形で現れます。
- 設計の負債/構造が事業の実態と合わなくなっている
- コードの負債/重複、複雑さ、読みにくさ
- テストの負債/自動テストがなく、変更のたびに手作業で確認する
- 依存の負債/古いライブラリや言語の版を使い続けている
- 知識の負債/なぜその実装なのかを説明できる人がいない
- 環境の負債/構築手順が手作業で、再現できない
5つ目が最も見えにくく、影響が大きいと考えます。コードは読めば分かりますが、判断の理由は残されていなければ失われます。
何が起きるのか
負債を放置した場合の症状を整理します。
見積もりが伸びる。同じ規模の変更に、以前の何倍もの時間がかかるようになります。
影響範囲が読めない。ある箇所を直すと別の箇所が壊れる。確認の工数が増えます。
不具合が増える。複雑な構造ほど、誤りが入り込みます。
人が定着しない。触りたくないコードを扱い続けることは、技術者にとって強い負担です。
新しい技術を使えない。古い依存関係に縛られ、選択肢が狭まります。
これらは徐々に進むため、気づいたときには手遅れになりやすいのが厄介な点です。
経営にどう説明するか
この概念の難しさは、投資の効果が見えにくいことにあります。返済しても新しい機能は増えません。
有効なのは、速度で語ることです。「以前は3日でできた変更に、いまは2週間かかる」という形なら、事業側にも伝わります。
数字で示す。変更にかかる期間、不具合の件数、確認に要する工数。推移を記録していれば、悪化が可視化できます。
危険として説明する。保守が終了した部品を使い続けることは、脆弱性の危険を抱えることです。
比喩を使う。設備の保守と同じで、動いているうちに手を入れるほうが安く済むという説明は理解されやすくなります。
返済の進め方
実務的な取り組み方を整理します。
一度に返そうとしない。全面的な作り直しは、多くの場合失敗します。
触る場所から直す。変更の必要が生じた箇所を、そのついでに整理する。使われていない部分に手を入れる価値は低くなります。
時間を確保する。開発時間の一定割合を改善に充てると決める方法があります。決めなければ、常に機能追加が優先されます。
可視化する。どこにどんな負債があるかを一覧にする。放置されている理由も含めて記録します。
新たに増やさない仕組み。レビュー、テスト、設計の合意。返済より、増やさないことのほうが効きます。
付き合い方
最後に、姿勢について整理します。
負債ゼロを目指す必要はありません。完璧な設計に時間をかけすぎれば、事業の機会を逃します。
意識的に借りることが重要です。「今は速さを優先し、後で直す」と決めて記録する。無自覚に積み上がるのが最も悪い状態です。
返済の計画を持つ。いつ、何を、どういう条件で直すか。
そして、事業側と共有する。技術者だけの問題として扱うと、時間は確保されません。事業の速度に直結する課題として説明できるかどうかが分かれ目です。
どこに負債があるかを知る
返済の前に、所在の把握が必要です。実務的な方法を整理します。
変更にかかる時間を記録する。特定の箇所を触るたびに時間がかかるなら、そこに負債があります。
不具合の発生箇所を集計する。繰り返し問題が起きる部分は、構造に原因があります。
担当者に聞く。「触りたくない場所」を尋ねると、大抵は具体的な名前が挙がります。
依存関係の版を確認する。保守が終了している部品を使っていないか。これは機械的に検出できます。
把握したものを一覧にする。放置している理由と、直した場合の効果も記録します。
増やさない仕組み
返済より効果が大きいのが、増やさないことです。
レビュー。他者の目を通すことで、その場しのぎの実装が減ります。
自動テスト。変更しても壊れないことを確認できる状態は、改善の前提になります。テストがないコードは、怖くて触れません。
設計の合意。着手前に方針を共有すると、後からの手戻りが減ります。
記録を残す。なぜその実装にしたか。これがないと、後任は判断できず、触れなくなります。
期限を決めて借りる。暫定対応をする場合、いつ直すかを記録に残します。
人材をお探しの企業さまへ
イーランサーでは、専任担当がご経歴と希望条件を整理したうえで案件をご提案し、条件面の調整もお手伝いしています。すぐに稼働できる状態でなくても、情報収集としてご相談いただけます。
ご登録いただいた情報が企業に公開されることはありません。氏名・連絡先を伏せたスキルシートを使用します。登録から案件のご紹介、契約手続きまで費用は一切かかりません。
相談する