需要咨询么?

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

如何管理软件产品的技术债务?

软件产品的资产、负债及控制权碎片化地以不同的形式分散到不同地方,比如以文档、沟通、报表、数据、试验、资金流动等方式提现,这些碎片化的非结构性数据量大、语义可能还会矛盾、难以管理、度量,这些多维度的碎片资产负债表最终会被压缩到软件产品的一维线性源代码字符序列里或者二维源代码章节里。

软件产品研发完整的生命周期与流程一般包括4大部分:(a).市场营销,(b).产品、项目与服务销售,(c).产品管理,(d)项目管理。每一部分都会对软件产品的资产负债表两边产生一定影响。

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

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

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

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

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

软件产品的源代码只是上述高维度复杂事物在一维或者二维空间的投影,这个投影可以方便人类使用眼睛观察复杂高纬度事物,但人类无法通过改变投影的形状来改变实际事物的运转,如需影响改变实际的复杂高纬度事物,还需要实际去操作实际的事物而不是其投影。对于软件产品研发来说,就是需要首先超控变更市场营销、产品、项目与服务销售、产品管理与项目管理里面的每一个细分实践领域,然后最终反应到软件产品源代码的变更上。

因此可以使用一套基于代码的统计和度量方法对软件产品的资产负债表进行度量和作为管理的初始输入。

比如:代码复杂度、团队人力资源对代码的熟悉掌握程度。

复杂的代码通常也对应着复杂得不可分解的需求与设计,一般也蕴含着大量的技术债务。

当有团队人力资源交接时,对应软件产品的功能模块的技术债务也会突然上升很多,人员对软件产品的熟悉程度通常也和软件产品相关功能的资产负债率成线性比率关系。比如在全部更换软件产品团队人力资源后,短期内新团队接受不下来的话,相当于技术债务接近软件产品的全部资产,软件产品线所有者基本失去了对该产品的控制权,可能连简单的变更操作都不能进行,几次新的项目迭代可能就会废掉整个产品线。

理想中的软件产品资产负债表运营还需要一整套项目管理系统,用来建立起市场营销、产品、项目与服务销售、产品管理与项目管理里面的每一个细分实践领域的演化历史及之间的关联关系,并最终如何与源代码关联起来的关系。这样软件产品系统生命周期内的演化就可以相对精确地被度量和操控,任何新的变更影响都能得到及时分析和管理,技术债务可以在管理能力范围内健康可控地演化。

(0) Comments

回复留言

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

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

验证码