在工作中,我们除了做好团队管理的工作外,还要解决技术与业务发展过程中产生的种种矛盾,而技术债务就是这种矛盾最常见的产物。所以今天,我想结合自己的经验,和你聊一聊应该怎么管理技术债务(Technical Debt)。
我对技术债务的理解
技术债务在研发领域类似于“金融债务”的概念,大部分情况下是说因为人为妥协,系统的设计和实现没有遵循最佳实践,所以虽然在短期做到了快速交付,但也制约了系统未来的可扩展性,并且埋下了稳定性的风险隐患。就好比你信用卡分期消费,虽然可以立刻满足自己的购买意愿(得到眼前的好处),但同时也会背上一定的负担,在未来必须得偿还。
其实,包括我在内,很多同学最早接触“技术债务”这个概念是读了《重构》这本书。
在这本书里,Martin Fowler 曾发表过他对技术债务的定义,即“技术债务象限”。他根据债务产生时的原因,将技术债务从两个维度分成四个象限:即有意(Deliberate)的还是无心(Inadvertent)的,谨慎(Prudent)的还是草率(Reckless)的。
简单来讲,就是开发人员是否清楚接下来的设计与实现会造成未来的技术债务,以及在做决策时是否经过慎重的考虑。从我过往的经验来看