技术债务:软件开发中的隐形挑战
1. 软件开发中的摩擦与技术债务
在当今的软件开发领域,创建复杂软件的过程中仍存在诸多摩擦。许多组织,尤其是那些追求互联网速度进行开发的组织,想要以可重复和可持续的方式创建高质量软件的目标依旧难以实现。
当软件组织出现生产力下降、代码库难以演进、团队士气低落等问题时,很可能是因为无法有效管理软件开发中的摩擦,进而产生了普遍存在的技术债务。
技术债务并非新术语,1992 年 Ward Cunningham 就引入了这一概念,用于描述在追求交付高质量可用软件时,速度与返工之间的微妙平衡。实际上,自软件开发诞生以来,我们就一直在以不同的名称处理类似的问题,如软件维护、软件演化、软件老化、软件衰退、软件系统再造等。
我们可以将技术债务类比为机械设备中的摩擦。机械设备因磨损、缺乏润滑或设计不佳而产生的摩擦越大,其运行就越困难,为达到预期效果所需的能量也就越多。同时,摩擦也是机械部件协同工作的必要条件,无法完全消除,只能降低其影响。
过去十年间,许多依赖软件生存的大公司逐渐意识到,无论以何种名称存在,技术债务都是真实存在的,并且严重削弱了它们满足客户需求的能力。技术债务开始产生财务影响,一些公司为了快速交付或扩展业务而承担技术债务,在债务累积时投入更多人力,却从未对债务进行有效削减或管理。从会计角度看,这并非真正的债务,但未来可能出现的巨额成本会对公司的财务底线产生负面影响。政府软件采购组织也认识到,仅关注初始开发成本会掩盖软件的全部成本,因此开始要求软件行业对所有生命周期成本进行合理说明。
技术债务无处不在,它影响着软件工程的各个方面,从需求处理到设计、编码、代码分析和修改工具的使用,再到向用户群体
超级会员免费看
订阅专栏 解锁全文
564

被折叠的 条评论
为什么被折叠?



