极客视点
极客时间编辑部
极客时间编辑部
113241 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/04:43
登录|注册

话题:如何正确对待技术债?

讲述:子阳大小:6.47M时长:04:43
在上一篇文章中,我们探讨了程序员面对技术债到底是该继续维护还是推倒重写,以及怎样避免在技术债务上浪费过多时间的方法,InfoQ 针对这一话题采访了多位国内技术从业者,试图对这一问题进行深入剖析。以下为重点内容。

1. 百分点 CTO 刘译璟

技术债是指在软件工程中“应该”做而“没有”做的那些事情,判断技术债务的重点在于“哪些事情是应该做的”,它是一个因组织而异、因项目而异、因人而异的过程,例如以下方面:
组织上要求做但没做的:制度、流程、规范、分享学习等;
业务和技术上要求做但没有做的:功能、性能、安全、高可用、扩展、监控、辅助工具等。
如果按照软件工程环节分类,技术债务可以分为:需求分析、方案设计、架构设计(逻辑架构、功能架构、数据架构、部署架构、运行架构等等)、编码、测试、发布等。如果按照产出物类型分,可以分为:
文档类:管理过程文档、需求分析文档、设计文档、测试案例文档等;
代码类:代码、脚本、规范等;
软件包类:产品软件包、依赖软件、依赖资源等;
环境类:开发环境、测试环境、预上线环境、生产环境等。
至于是否重写或继续维护,需要判断“继续维护的收益”和“重写的收益”哪个更大。可以综合考虑如下几方面的收益:
开源:提升现有业务收入、支持新业务的开拓;
节流:节省维护人员、节省运营费用;
组织:人员结构调整、组织能力培养。
债务是避免不了的,时刻判断“持有债务的价值”,当价值很低时要尽快处理。

2. 腾讯研发总监王辉

团队为了短期利益、因为技术人员能力或者历史原因,造成的必须为之付出代价的事情,就是合理的技术债务。
技术债务通常可以分为:
因短期利益,追求快速上线导致的粗制滥造;
因为人员技术能力和疏忽,导致的项目质量差;
因方案选型不当,方案设计不合理导致的推倒重来;
项目合并、团队合并带来的代码融合,引起的效率低下。
如果人力、物力和工期等资源丰富,这种能优化的问题就可以做到极致。但通常,资源都是不丰富的,那就要根据实际业务情况来看,腾讯一向的方式是“先抗住再优化”,项目是否真的到了非优化不可的地步,如果先扛住了,就等业务占领了市场,项目进度慢下来之后,再开展优化,此时可以要求高可用、高性能、高并发等。

3. 国双技术总经理何恺铎

我们呼吁更多企业高层能理解技术债务,它也真的是企业债务的一种。
部分技术债务实质上和技术团队的组织架构密切相关,尤其对于大型研发团队,很容易出现各自造轮子的情形,造得不够好的轮子很容易成为债务负担。所以,在合适粒度上的基础设施团队对避免底层技术债务的产生很有帮助,前提是该基础团队要有一定影响力,也要善于沟通。
至于是继续维护还是推翻,不能一概而论,要看对应业务是否有长期规划和决心,为了长期成功,可考虑择机重构,但如果业务本身有试水性质或者尚不明朗,那也许就先别折腾。

4. 资深技术专家焦振清

是否需要面对技术债务,主要还是取决于当下的业务场景是否会继续发展。如果预估会继续发展,就需要处理技术债务,重写的概率会高一些。如果预估业务继续发展的可能性不大,而当下的解决方案存在各种隐患,那么选择维护的概率会高一些,甚至继续保持现状也是极有可能的。还有一种可选择的做法是将项目交给新人,以此来锻炼新人,
除上述观点外,关于技术债务的利息,很少有人提起,也几乎从来没人在决策时拿来做筹码,技术债务应该是有生命周期的,如果生命周期长于该技术产品本身的生命周期,就不值得改。但是,团队还是应该对技术债务具备一定认识,如果团队起点的不良代码就非常多,或者出现大量人员变动,还是应该将解决问题放在首位,避免互相甩锅的情况发生。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
大纲
固定大纲
1. 百分点 CTO 刘译璟
2. 腾讯研发总监王辉
3. 国双技术总经理何恺铎
4. 资深技术专家焦振清
显示
设置
留言
收藏
51
沉浸
阅读
分享
手机端
快捷键
回顶部