目前有不少人已经写过关于技术债务的文章:何为技术债务、技术债务的不同类型、在设计、编码与修改代码时如何避免引入技术债务、组织要为技术债务付出多少代价、以及为何、如何、何时来偿还这些技术债务等等。
不过所有这一切都忽略掉了系统中这样一些技术债务与风险,即这些债务与开发者的设计、编码实践以及单元测试等并没有什么关系。这些文章没有澄清的一点就是系统中那些并非由你编写的代码所带来的技术债务,要远远超过你所编写的代码所带来的债务。
就像西班牙、希腊和葡萄牙等国家的金融负债会拖累全球经济一样,其他人所编写的软件中的债务问题也会拖累你,即便你在自己的代码中对债务的管理保持着非常负责的态度也是如此。
你承担了多少其他人的技术债务?
这种技术债务要比你自己代码中的债务更加难以理解和管理。由于你可能没有理解这些代码、看不到代码有多么糟糕,或是可以看到但你却没有看,因此这些代码是你所无法控制的,特别是那些由多个系统共享的一般性平台技术,人人都在使用这些技术,不过却没有人对他们负责。你可能压根儿就不知道这些代码的存在,这些代码可能是由其他人下载的,成为了系统的一部分,不过却没有人知道这回事。
要想了解这种债务问题的严重性,你需要审查代码中使用了哪些第三方和开源包与依赖。大公司可能会构建开源库与组件的目录清单,检查相关许可,并及时追踪这些软件所报告出来的各种问题。
小公司可能就是手工做这件事了。
|