Yuta KimuraYuta Kimura ·木村祐太Kimura
researchmap

Software Evolution & Technical Debt

ソフトウェア進化と技術的負債:「作った後」こそ本番

動き始めたソフトウェアは、そこで完成ではありません。ビジネス・法律・技術の変化に合わせて変更され続ける(進化する)ことで初めて有用であり続けます。この教材では、保守の分類・進化プロセス・レガシーシステムの評価・再エンジニアリングといった教科書の中核に加えて、リファクタリング・コードスメル・技術的負債・SATD(自己記述型技術的負債)・モダナイゼーションという現代のソフトウェア工学の最重要トピックを、目的・実施の仕方・意識するポイント・注意点つきで整理しました。技術的負債の「利子」を体感できるシミュレーター、理解度クイズ付きです。

この教材は日本語のみで提供していますThis learning material is available in Japanese only.

はじめにIntroduction

ソフトウェア進化とは何か:なぜ変更は避けられないのかWhat is software evolution?

トピックカタログTopic catalog

進化・保守・負債の10トピックカタログTen topics in evolution and debt

教科書(Sommerville 第9章)の中核である進化と保守の基礎、構造の劣化と戦う改善の技術、そして現代の実務と研究の中心にある技術的負債:3つのカテゴリで整理しました。カテゴリで絞り込み、各カードをクリックすると、目的・進め方・意識するポイント・注意点・具体例が開きます。

体験デモInteractive demo

技術的負債の「利子」を体感するFeel the interest on technical debt

体験デモ:技術的負債の利子シミュレーター

あるチームの開発を10スプリント分シミュレートします。チームには既存の負債(40ポイント)があり、負債が多いほど利子(理解・修正に余計にかかる時間)で velocity が下がります。開発時間のうち何%を負債の返済(リファクタリング)に充てるかを選んで、累積デリバリー量(10スプリントで届けられた機能の合計)を比較してください。

実線=選択中のシナリオ。縦軸は累積デリバリー量(機能ポイント)、横軸はスプリント。モデル:容量100/スプリント、利子=負債残高に比例して velocity を低下(上限65%)、雑な実装は新しい負債を生む。
上のボタンで返済割合を選ぶと、10スプリント分の累積デリバリー量を計算して比較します。

理解度チェックCheck your understanding

理解度チェッククイズComprehension quiz

それぞれの状況にもっとも適した用語・判断を選んでください。

おわりにIn closing

進化と負債に向き合う心構えと、さらに学ぶためにHow to think about evolution and debt, and where to learn more