深圳UI培训-高端面授深圳UI培训机构
云和教育:云和数据集团高端IT职业教育品牌
  • 华为
    授权培训中心
  • 腾讯云
    一级认证培训中心
  • 百度营销大学
    豫陕深授权运营中心
  • Oracle甲骨文
    OAEP中心
  • Microsoft Azure
    微软云合作伙伴
  • Unity公司
    战略合作伙伴
  • 普华基础软件
    战略合作伙伴
  • 新开普(股票代码300248)
    旗下丹诚开普投资
  • 中国互联网百强企业锐之旗
    旗下锐旗资本投资

程序员如何偿还技术负债?

  • 发布时间:
    2019-06-13
  • 版权所有:
    云和教育
  • 分享:

技术负债就好比修改和扩展软件系统,每当添加新功能时,需要付出的额外努力就好像是债务利息一样。那么身为技术开发者,该如何偿还技术负债?

一、什么是技术负债?

配图1 程序员如何偿还技术负债?.jpg

技术负债,是指由于某些限制,做出的一种短期见效快,长期有伤害的,在技术层面的决定,无法完全地实施计划好的各项功能,理想实施完成状态和实际实施结果之间的差异。

技术负债有时候并不完全是指这个代码有多糟糕,而更有可能是强调这个代码带来的持续增长的成本,即技术负债的利息——后续研发和运营因为不完善的系统实施而需要付出的额外努力。举个例子,如果前期的实施不包括运营管理平台,所有后期的运营都要手工操作,这在效率上大打折扣,需要招聘额外的人手。

现实生活中,很多潜在的问题,在项目初期很难被发现,很多问题都是在实践的过程中发现的,敏捷开发,有利于解决类似的问题。但是越到后期,和技术负债相关的请求,就会越难被接受,因为他们的投入产出比小,风险大。更糟糕的情况是,有一些东西,是需要事后的消化,后知后觉的,这无异是得不偿失的。

二、技术负债有哪些负面影响?

如果公司要解决技术负债,花费的成本往往是很高的。在所调研的系统中,35%的技术债务已经严重影响了系统的支持和维护,它们可能导致安全、性能问题甚至威胁到正常运行。

配图2 程序员如何偿还技术负债?.jpg

三、技术债如何偿还?

债总要还的,解铃还须系铃人。还债的方式有很多,下面的方法做个抛砖引玉。

1、好的设计和架构

对项目当下需求以及未来的需求能够做一个预见,避免随着项目复杂度提升导致后期重构的风险。遵从基本设计原则:模块化,轻耦合,无状态。选择合适的技术而不是最好的技术。

2、Code Review

Code Review是一个只要超过俩人的TD团队就建议采用的工序。Code Review很重要,千万不要以时间或者其他原因放弃Code Review。Code Review工作可以在开始就将可能产生的债务清理掉。如果你能全款,为什么要选择贷款呢?

配图3 程序员如何偿还技术负债?.jpg

3、测试保证

增加自动化测试覆盖率,通过自动化测试覆盖住流程,减少漏测的几率,并为后期偿还债务时可能需要的重构提供保障。测试,越是无情,越是仔细,全面的测试,越是有助于系统的健壮。

4、定期的技术债务偿还

配图4 程序员如何偿还技术负债?.jpg

和项目经理或者产品经理协商一个迭代或者趁迭代的空隙,专门用于解决前期积累的技术债务。一方面可以清理债务,另一方面可以是开发人员得到一定程度的放松。

将积累的技术债务按照优先级就行排序,将最需要解决的债务分配一些到迭代之中,提前偿还。相当于等额本金。

配图5 程序员如何偿还技术负债?.jpg

0技术债是一种完美的情况,但也不必追求“无债”状态,因为那样太难了,也不太经济,人无完人;尽量减少技术债,使其不至于明显影响后续产品和开发。