#はじめに
技術的負債についての記事は沢山ありますが、開発に携わる全ての人々(特にビジネスチーム)が「やさしく理解」できる記事が欲しかったので、自分で作成しました。
PMP-ACP Exam Prepを元に意訳、再構成しているため若干片言ですがご留意ください。
#技術的負債とは
技術的負債とは、プロダクトが作られる中で日常的に整理整頓・メンテナンス・標準化などを行わないことによって発生する作業バックログのことです。将来的に仕事を進めやすくするために実施しなければならない作業のバックログでもあります。
技術的負債は改修コストの増加と密接に関わりがあります。標準化や整理整頓を延期し続けることで、将来的に莫大な開発コストがかかる可能性があります。
#技術的負債を車に例えると
私達は車を運転しますが、車をメンテナンスする必要もあります。もしメンテナンスをせずに運転し続けると、最終的に車は故障し、運転が全くできなくなります。ソフトウェア開発においても同様に、チームは生産性が高いことが大事ですが、生産効率を維持・向上し続ける必要もあります。
#技術的負債への解決策
ソフトウェア開発において技術的負債への最も効果的な解決策はリファクタリングです。
(リファクタリングとは何かは割愛)
私達は頻繁にリファクタリングを行うことで、コードを綺麗な状態に保ち、技術的負債を減らす必要があります。
チームに作業見積もりを確認する際には、リファクタリングを彼らの習慣的なルーチン作業として行うことが出来るよう、リファクタリングの時間も含めて確認する必要があります。
#リファクタリング
リファクタリングは年末の大掃除ではなく、日常の衛生活動として行うべきものです。これは、リファクタリングの時間をまとめて設けるのではなく、私達の日常的な作業の中に組み入れるものであることを意味します。
チームがリファクタリングと技術的負債を減らす時間を設けることには覚悟と勇気が必要かもしれません。なぜなら、ビジネス側からは機能を提供し続けることを推し進められる可能性があるからです。そのような場合には、技術的な負債を減らし、時間をかけてリファクタリングを行うことが彼らの最善の利益になることを説明する必要があります。
#おわりに
作業のリファクタリング、整理整頓、標準化や簡略化に時間をかけることで、チームが将来的により多くの機能を生み出すことが出来るようになります。技術的負債を減らすことで開発環境が整理され、私達が作るプロダクトが整理・効率化・標準化されます。
プロジェクトを効果的に進め成功させるために、技術的負債をなくしていきましょう。