首页  /  预约专享  /  技术债是什么、怎么还?你想知道的都在这一篇文章里了!

技术债是什么、怎么还?你想知道的都在这一篇文章里了!

预约专享 4028

三、技术债产生的原因

业务压力:为了满足业务的快速要求,在必要的修改并没有完成时就匆匆发布,这些未完成的修改就形成了技术负债。

缺少过程和理解:业务人员不清楚不理解技术负债的概念,在决策时就不会考虑到其带来的影响。

模块之间解耦不够:功能没有模块化,软件柔性不够,不足适应业务变化的要求。

缺少配套的自动化测试:导致鼓励快速而风险很大的“创可贴”式的BUG修复。

缺少必要文档:需求和代码都没有必要的支撑性文档或注释。

缺少协作:组织中的知识共享和业务效率较低,或者初级开发者缺少必要的指导。

重构延迟:在开发的过程中,某些部分的代码会变得难以控制,这时候就需要进行重构,以适应将来的需求变化。重构越是推迟,这些已有的代码被使用的越多,形成的技术负债就越多,直到重构完成。

不遵循标准或最佳实践:忽略了已有的业界标准、框架、技术和最佳实践。

缺少相关技能:开发人员有时候技能缺失,并不知道如何编写优雅的代码。

技术债务-2

四、如何“还债”?

1.技术债可视化

尽可能公开技术债,一开始就与团队,利益相关方一起权衡利弊,并明确告知影响与解决方案。平等沟通,相互理解。让技术债在业务层面、技术层面可见。

可以在组织资产负债表的财产债中新增两列:短期技术债和长期技术债。还可以用用跟踪开发速率的方式体现技术债对于产品的影响。

2.不同的债要对症下药

技术债的状态可以分类为偶然技术债、已知技术债和目标技术债。

偿还技术债时应遵循如下原则:

1)确定已知技术债必须还。

2)发现偶然技术债,立即还。

3)每个冲刺确定一定数量的已知技术债作为目标技术债,在当前冲刺中偿还。

4)无需偿还的技术债是行将就木的产品、一次性原型和短命产品。

五、如何避免“欠债”

与其后期吭哧吭哧还债填坑,不如从一开始就尽量避免欠下技术债务。

1.避免使用过时的技术

遗留应用程序、过时的技术以及不同的平台和流程可能会使组织陷入沉重的技术债务,迫使其推迟基本的现代化计划。DNS和流量管理技术提供商NS1的联合创始人兼首席执行官Kris Beevers说:“技术债务将大量金钱和宝贵的时间浪费在系统和应用程序上,而这些系统和应用程序并不是为现代企业所需的规模和速度而打造的。”

旧资产和老方法也往往充斥着安全漏洞,难以集成和自动化,并且很可能不再更新。 Beevers指出:“寻找人才来管理基于复杂或过时的代码构建的遗留应用程序也是一个日益严峻的难题。坚持采用过时技术不仅会消耗宝贵的预算,而且还会阻碍公司创新和保持竞争力的能力。”

2.参考敏捷实践

有越来越多的组织渐渐接受敏捷软件开发,这是将方法交给协作、自行组织的团队和跨职能团队的一系列方法和实践。如果这种方法得到严格应用,敏捷开发使组织可以避免技术债务,其方法是快速且以迭代的方式创建和发布新产品。Dodd说:“这一过程将新产品和新功能尽快并逐步地交到用户手中。”随着新版本的交付,各种改进和问题都得到了解决,这使技术债务的积累不太可能产生。

敏捷方法认识到项目在生命周期中从未真正完成过,并且也从来都不是完美的。“同时,敏捷方法专注于……针对能力和质量的简化了的开发”,Dodd说。重要功能往往要频繁地开发,测试并投入生产。敏捷团队可能不会发布软件的“全面(Big Bang)”方法,而是每年发布几次重大升级。Dodd指出:“这可以使产品保持相当平稳的发展,还可以帮助用户避免重大的中断事件。”

3.遵循代码规范

是否遵守了编码规范,是否遵循最佳实践也是影响技术债的一个方面。代码规范在研发项目团队中有着重要作用,团队统一代码规范,有助于提升代码可读性以及工作效率。统一的

代码规范是代码集体所有权的基础,会让结对编程更容易实行,对团队来说更易内部轮岗、获得晋升。代码规范和代码质量工具有助于发现代码质量方面的技术债务。

亡羊补牢,为时未晚。从现在开始把偿还技术债务纳入backlog,把避免产生技债务作为工作准则,相信不会出现被技术债务压垮崩溃的情况。返回搜狐,查看更多