多くのことと同様に、プロジェクトの状況、契約企業の管理レベル、カスタムソフトウェアがライフサイクル全体にわたって契約企業によって管理されているかどうか、量コードベースへのアクセス権を持つ他の人々による「干渉」、関係するすべての人々の態度、プロジェクトの複雑さ、および使用される方法論の...私は本当に続けることができました。
すべてのシステムにはある程度の技術的負債があります。場合によっては、きれいなコードベースを常に維持するために努力している開発者側の熱心な努力により、これは特に目立たないかもしれませんが、システムは完璧ではなく、大規模な再設計により、一見無害でありながら長年の問題が明らかになります。それでは、契約会社はこれをどのように処理しますか?
多くの場合、そうではありません。多くの場合、ソフトウェアはある会社によって作成され、別の会社によって修正されます。また、契約中の各会社が厳しい期限に取り組み、コードをクリーンに保つ時間を正当化しないため、コードベースが本当に台無しになるのは珍しいことではありません(場合によってはほとんどテストされていません)締め切りに間に合わないリスクがある場合
また、契約したプロジェクトを適切に管理するだけでなく、既存のコードベースを見つけたときよりも良い状態に保つための時間を見つける会社もあります。彼らはしばしば慎重な計画でこれを行い、技術的負債の源泉を識別します-通常は新しい仕事に最も影響を与えるものです-そして彼らは技術的負債の管理に貢献するテストケースと修正を提供する戦略を考案し、それらすべてをプロジェクトスケジュールに組み入れます。
カスタムソフトウェアであることは、中心的な製品を書くこととは対照的に、技術的な負債を保証しますか?短い答えはノーですが、積極的に対処しないと技術的な負債が発生する可能性があります。これは、他のソフトウェアプロジェクトと同じです。ライフサイクル全体でプロジェクトを完全に制御する場合、技術的負債に対処するより良い機会があります。そうでない場合は、前の会社が残したコードから生じた技術的負債に対処する必要があります。
一方、あなたの質問があなたのビジネスモデルに関係なくソフトウェアを書くことが技術的負債の保証であるかどうかを尋ねることであったなら。答えは絶対でしょう。本当の問題は、どの企業が技術的負債をどのように処理するかです。スケジュールされた時間に発生して対処するか、できるだけ早く技術的負債を完済するために、継続的な方法でクリーンなコードベースを管理しますか?その答えは、企業の個々の優先事項と、発生した技術的負債が財政的に関連するかどうかにかかっています。