这是一个需要回答的复杂问题,因为就像许多事情一样,它实际上取决于项目的情况,合同方公司的控制级别,定制软件是否在整个生命周期内都由合同方公司管理,访问代码库的其他人的“干扰”,所有相关人员的态度,项目的复杂性和所使用的方法...我真的可以继续。
所有系统都有一定程度的技术债务。在某些情况下,由于开发人员一直努力保持干净的代码库而付出的努力可能并不特别明显,但是,没有一个系统是完美的,重大的重新设计可能使看似无辜却长期存在的问题变得显而易见。那么签约公司该如何处理呢?
在许多情况下,它们不是。通常情况下,软件将由一家公司编写,然后由另一家公司修改,而且通常情况下,由于合同规定的每家公司都在紧迫的期限内完成工作,因此代码库被真正弄乱了,这并没有证明保持代码整洁的时间是合理的(有时甚至未经测试)是否意味着他们可能会错过最后期限的风险。
在其他情况下,您会发现不仅可以很好地管理其合同项目的公司,而且还能以某种方式找到使现有代码库处于比其发现的状态更好的状态的时间。他们经常通过仔细计划,确定技术债务的来源(通常是那些对新工作影响最大的债务)来做到这一点,并且他们设计策略以提供测试用例和修改,从而有助于管理技术债务并将所有这些因素纳入项目进度。
作为定制软件,与编写核心产品相比,是否保证了技术债务?简短的答案是否定的,但是,如果不积极处理,很可能会累积技术债务。这与任何其他软件项目相同。如果您在整个项目生命周期中完全控制项目,那么您就有更好的机会来处理技术债务。如果没有,那么您将需要处理以前的公司留下的代码中可能产生的技术债务。
另一方面,如果您的问题是要问编写与业务模式无关的软件是否构成技术债务的保证。答案是绝对的。真正的问题是任何公司如何处理技术债务。是让它按计划的时间累积和处理,还是以持续的方式管理干净的代码库,以便尽快还清技术债务?答案取决于公司的个人优先事项,以及产生的技术债务在财务上是否相关。