需要咨询么?

如果您有任何问题,可以在下面提问或者输入您需要咨询的内容!

软件产品研发的技术债务是什么?

软件产品生命周期长,通常会持续很多年。在软件产品成长的过程中,由于多种主动或被动的原因,可能会带来技术债务。软件产品研发完整的生命周期与流程一般包括4大部分:(a).市场营销,(b).产品、项目与服务销售,(c).产品管理,(d)项目管理。每一部分都会对软件产品的资产负债表两边产生一定影响,有时为了达到资产负债表左边软件功能的原型实现以快速推出市场得到用户实际使用反馈而主动通过在资产负债表右边增加技术债务来实现,有时是因为必须的信息还没获取到,或者在创新尝试的过程中由于处于盲人摸象阶段而对软件产品左边的功能资产认识不足,导致被动地在软件产品资产负债表右端增加技术债务。

软件产品研发流程的4大部分可以进一步细分为:

(a).市场营销:创意采集、管理与筛选,内部POC概念验证(技术、业务等),市场测试,面向客户与市场的POC概念验证,商业需要(需求)调查统计(网站引流、点击访问统计、问询记录统计、调查问卷、已投产项目服务跟踪与数据统计),选择用户及客户代表沟通,

(b).产品、项目与服务销售:销售提案与跟踪,合同生命周期跟踪,销售现金主要流入(产品许可证销售收入),销售现金附加流入(产品二次开发与项目定制销售收入),其它现金流入

(c).产品管理:产品管理-商业计划,产品管理-产品规划,产品管理-需要分析,产品管理-需求分析

(d).项目管理:项目管理-探索,项目管理-建设,项目管理-完善,项目管理-服务

上述4大部分每个细分阶段都会对软件资产负债表左端功能资产产生增值(偶尔也会减值)影响,而在资产负债表右边,则会根据不同的实际情况,有时是增加股权所有权(或者叫做控制权),有时则是增加技术债务来达到资产负债表两边的平衡。最终,资产、股权所有权(或者叫做控制权)及负债(技术债务)会提现到软件产品的实际代码里。

软件产品研发流程复杂的网络状关系,使得只要有一个部分或几个部分工作产出的缺失、质量等级的下降、网络流程流动的拥堵阻塞都有可能造成网络局部范围或者大范围甚至整个网络的阻塞、不正常运转和质量等级下降,某个流程的微小技术债务在整个网络的闭环流动中可能逐级放大而成为一个不可忽视的技术债务。

尤其实在使用敏捷迭代开发方法的时候,为了利用闭环网络的放大效应来快速放大资产,如果网络流动性管控不到位,很快也会同样的放大技术债务。

软件产品研发过程中,人力资源也不是一成不变的,如果对某块功能、设计、业务逻辑、代码非常熟悉的人离职转岗,接手人员无法在短时间内接替工作,从整体上来说,虽然软件产品资产负债表左边功能资产没有任何变化,但该软件产品相对既失去一定控制权(股权所有权),该功能的任何变更、代码修改、运营维护的成本会上升、风险等级会提升、质量等级可能会下降,由于“资产=负债+股权所有权”,资产没有变化,但是股权所有权变少,这样就增加了技术债务。这个时候的技术债务不是立即体现出它的影响的,只有在软件产品继续运营维护的过程中发生了需求、设计、业务逻辑与代码变更的时候,会逐渐提现出来。

新接手的人员无法得知功能细节设计上的决策、代码逻辑关系,理解上可能会有大量误解,导致任何的一个简单变更都有可能带来新的几个缺陷,给软件产品质量产生影响,并最终可能影响到软件产品资产负债表左边的功能资产。

(0) Comments

回复留言

您的电子邮箱地址会被隐藏。*为必填字段 *

您可以使用这些HTML标签和属性 <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

验证码