技術的負債
Technical Debt
目先の速さを優先して後回しにした、プログラム上の問題のこと。
簡単に説明すると
技術的負債は、後で直す手間を承知の上で、今はとりあえず動くコードを書くような状態のことだよ。 締め切りに間に合わせるために、整理されていないプログラムをそのままにしてしまう時に発生するんだ。 最初は開発スピードが上がるけれど、後から機能を追加しようとした時に、古いツケが回ってきてより多くの時間がかかるようになるよ。
名前のヒミツ
ぎじゅつてきふさい。 英語の「Technical Debt(テクニカル・デット)」の日本語訳なんだ。 「負債」は借金という意味で、プログラミングなどの作業において、一時的な効率を求めて「将来返さなければならないツケ」を作ってしまうことを例えているよ。 プログラマーのウォード・カニンガムが提唱した言葉なんだよ。
くわしく見てみよう!
技術的負債とは、プログラムを開発する時に、長期的な品質よりも短期的な完成スピードを優先したことで生まれる問題のことだよ。
ざっくり言うと、今の時間を節約するために未来の時間を借金するようなイメージなんだ。
後で整理するつもりで書いた急ごしらえのコードや、テストを省いた開発がこれに当たるよ。
お金の借金と同じで、技術的負債も放っておくと利子が膨らんでいくんだ。
具体的には、ぐちゃぐちゃになったコードのせいで不具合が見つけにくくなったり、新しい機能を追加するのに何倍も時間がかかるようになったりするよ。
借金が多すぎると、最終的には新しい開発が全く進まなくなる「技術的破産」という状態に陥ることもあるんだ。
もちろん、負債を抱えることが常に悪いわけではないよ。
例えば、新しいサービスをいち早く世に出してユーザーの反応を見たい時には、あえて負債を背負ってスピードを優先することもあるんだ。
大切なのは、自分たちがどれくらいの負債を抱えているかを把握して、余裕がある時に少しずつコードをきれいに整理して返済していくことなんだよ。