技術的負債という概念について

2011/12/10

The WyCash Portfolio Management System(Cunninghan 1992) より。

Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back with a rewrite. [snip] The danger occurs when the debt is not repaid. Every minute spent on not-quite-right code counts as interest on that debt. Entire engineering organizations can be brought to a stand-still under the debt load of an unconsolidated implementation.

一応,超訳。

初めてコードを出荷することは,負債を抱えるようなものである。書き直すことで返済できる程度の少量の負債は,その開発を加速させる。[略]しかし,負債が返済されないときは危険である。不適切なコードを使い続けることは,刻一刻と負債に対する利子を増加させることになる。全ての開発団体は,よく練られていない実装の負債に行き詰まる可能性がある。

最近は,ソフトウェアの初期開発を加速するような話もあるけれど(自転車操業のソフトベンダとか開発費をケチる SIer とかは特にそう),開発者やユーザが長期に亘ってそのソフトウェアと関わっていくためには,初リリース後の負債を消却して枯れさせることが,結局ソフトウェア開発全体のコストを下げることにつながったりする。その意味で,ソフトウェアの保守は,もっと光を当てられていい分野だと思うのだけれども……。

そういえば,某高専のウェブページを見ていて感心したんだけれども,その高専では,特定の学年になると,校内のあるシステムを保守・改修する役目になるんだとか。代々保守されているシステムがあって使い続けられている。使い続けられているということは,適切に負債を消却している証拠。こういうのを学校にいる間から経験していると,その人が書くソフトウェアの品質も随分変わってくるんだろうな,とか思ったりする。

Site Navigation
SNS Accounts (@aian)

普段はここら辺に住んでいます.