技术债

我们在平时老是说要消除技术债,那么这句话就有两个问题:

1)啥叫技术债

2)是不是一定要消除

先谈第一个问题什么是技术债。技术债首先是一个债务,就像我们财务债务一样,是向某个“对象”的借债。我们看看债务的定义:

“债务是指债权人向债务人提供资金,以获得利息及债务人承诺在未来某一约定日期偿还这些资金和利息。债户还债的义务,有时也指所欠的债为了清偿所有的债务而工作”。

从这个概念我们可以了解到,债务是有益处的,因为可以让我们在短期内获取到额外的资源,有利于集中资源加快产品的上市,所以这一定是一种有意识的决策。但是债务必须要偿还,还要还本付息。

所以技术债一定是一个清醒的决策,是我们意识到我们有借债的意识的一种行为,比如产品是否清醒的决定要做更晚一些的重构,或者做一些折中的设计,或者减少一些非关键部分的构建。

打个比方,产品要11月份推向市场,时间只有一个月了,有一个非常重要的功能,之前讨论过完美方案,但是开发期限要3个月,那么只能粗暴的采用一个折中的方案,但是未来影响产品的可用性和可扩展性。为了推出产品,领导决定不能失去市场机会,采用了折中方案,于是产生了借债行为。但是这个债务一定要还的,不然后续产品扩展就成了问题,甚至严重影响客户体验。

我们过去常常把bugs当做技术债,但这个概念是错误的,bugs不是技术债,它们只是bad code!有些设计方案的“bugs”,才是技术债。

总结一下,我们不妨把我们的设计分为不好--刚够好--完美,技术债在某种意义上可以认为是在刚够好和完美之间的gap。


再谈第二个问题,技术债要不要消除。我们知道,金融上的借债是一定要还的,“好借好还再借不难”,不然影响到你的信用,后面要归还是要有庞大的利息的。

其实技术债也一样,如果技术债不还。那么将会导致可用性和可扩展性问题。我们知道问题越早解决越好,不然后续归还的成本也会日积月累越来越高!

以上面例子为例,如果一直采用折中方案,那么后续产品扩展性和可用性将会有严重问题。是一定要还的。不然后续产品的演进将是严重的问题。

就像是没有架构的堆代码,最终代码堆是一定会坍塌的。

债务可以不立即还,但是必须要计划还的,而且在影响信用之前。


基于马丁阿尔伯特先生的讲座后,扩展资料整理所得。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 当技术宅遇上技术债 当了15年IT民工,待过几家公司,做过不少项目,捅过一些篓子,也掉进过好多个坑,今天与大家分享...
    meng_philip123阅读 1,860评论 1 1
  • 概述 代码写好就交,意味着欠债的开始。稍微欠点技术债得确可以加快速度,但前提是事后及时重写代码,如果只借不还,后果...
    壹颗阅读 753评论 0 0
  • 代码写好就交,意味着欠债的开始。稍微欠点技术债得确可以加快速度,但前提是事后及时重写代码,如果只借不还,后果很危险...
    lipy_阅读 539评论 0 2
  • 【捭阖第一) 夫贤不肖、智愚,勇怯有差,乃可捭,乃可阖,乃可进,乃可退,乃可贱,乃可贵,无为以牧之。审定有无与其实...
    我在霾中等风阅读 435评论 0 0
  • 你好,第六天。 今天差点又忘了,刚看完一部耽美文,说实话,被猝不及防的开放性结局打伤了。应该有很大...
    入魔小记阅读 333评论 0 0