基于熵权法的软件开发项目进度风险影响因素分析研究*
2022-10-18邵俊倪枫刘姜吴霞尹思淼
邵俊 倪枫 刘姜 吴霞 尹思淼
(上海理工大学管理学院,上海 200093)
0 引言
近年来,我国软件产业快速发展,行业产值逐年递增[1]。软件项目具有前期需求难、人力资源管理难、系统建设规划难、项目组织协调难等特点[2],在当前主流开发技术发生根本性变化之前,很难利用技术手段突破性提高软件开发效率。因此,需要从项目管理的角度,通过更加科学有效的方法提升软件项目开发效率。进度管理是整个软件开发项目管理的重中之重,需要本着严谨认真的态度进行深入分析。
1 软件开发进度管理体系
软件开发项目进度管理是使用体系化的管理方法对软件开发项目中所包含的预期任务及可用资源进行有效统筹、合理计划,从而实现某一明确的预设目标的过程[3]。
通过分析相关文献[4-9],本文将软件开发项目进度管理归纳总结为11个不同的阶段,详细划分如下:
(1)项目需求管理。为有效开展软件开发项目,需了解当前软件开发主体公司的企业架构、发展愿景、合理需求、人员能力、开发背景。
(2)进度风险分析。当软件开发项目规模较小时,其所受外界干扰相对较少,甚至可以直接忽略。当软件开发项目规模较大时,由于项目开发所受外界干扰明显,需要慎重考虑进度风险影响因素。
(3)进度风险评估。对当前项目中的风险因素进行评估,分析和确认关键进度风险因素,将影响项目进度的风险因素信息提供给公司和项目的管理层,使软件开发项目管理人员将有限的时间和资源集中于优先度较高的进度风险因素,为制订合理的进度管理计划奠定基础。
(4)整体进度规划。在深入了解软件开发项目的整体背景后,为软件开发项目制订纲领性计划,提出软件开发项目主要步骤,设置软件开发项目各阶段主要完成目标,制定合理的指标完成评价体系,选择合适的软件开发项目计划监测方式,为细化软件开发项目活动做准备。
(5)定义项目活动。根据软件开发项目纲领性文件,结合软件使用者实际需求,以项目各阶段主要完成目标为导向,对软件开发项目的各主要步骤进行逐层分解、逐步分析,使其成为一个个有关联性的、易于管理的基础项目工作的过程。
(6)排列活动顺序。活动是整个软件开发项目中的基本工作事项,其相互之间既存在一定的关联性,又可以彼此间独立进行。以软件使用者需求为最终目标,通过活动间存在的逻辑、制约关系以及当前可利用资源的情况,合理设计各活动间的先后顺序。当前,识别项目活动顺序的方法主要有增加逻辑标志的甘特图、单代号网络图、双代号网络图。
(7)估算活动时间。在软件开发项目可利用资源有限的背景下,根据实际情况,针对已经明确的活动事项有效评估所需的人/天工作量,为制订合理的进度计划提供基本的数据。常用的活动时间估算方法有类比法、历史数据参考法、决策者主观臆断法、项目实施专家评估法等。
(8)制订进度计划。利用上一阶段完成的活动时间评估结果数据,结合项目实际人员物资准备情况,制订符合本项目业务实施背景的进度管理计划。这是有效控制项目进度的关键依据,是进度风险监控的唯一参照。常用的进度管理方法有甘特图法、关键路径法、关键链法等。
(9)项目进度控制。以编制完成的项目进度计划为依据,协调项目人员、费用、物资,在各种不可控影响因素的干扰下,通过采取针对性的措施使项目进度符合预期目标。项目进度控制是贯穿项目全生命周期的动态管理。
(10)进度风险监控。软件开发项目进度风险监控具有两层含义:一是软件项目风险监督;二是软件项目进度风险控制。软件项目进度风险监控通常可以视为跟踪当前已识别的进度风险影响因素,识别新出现的进度风险影响因素,根据软件开发项目当前执行情况变更进度管理计划,确保进度风险应对计划的正常实施,评估进度风险应对的效果。
(11)执行应对措施。当进度风险出现异常情况时,需要及时执行进度风险应对计划,以保证整体项目进度管理计划按时完成。
软件项目进度管理体系如图1所示。
2 软件项目进度管理影响因素及局部数据量化分析
根据图1可知,在软件项目进度管理体系的所有阶段中,进度风险分析和进度风险评估是关注的焦点,是整个软件进度管理体系的基础,后续的所有阶段均依赖于对此焦点的有效分析。因此,需要借助一种有效的风险认知方法明确当前项目的风险因素及其影响程度,本文推荐使用熵权法。熵权法是一种客观赋权计算法,可以根据多个指标进行量化综合评价,首先利用信息熵计算出每个指标各自的熵权,然后通过各自熵权对自身指标进行修改处理,具有客观性和适应性[10]。
在软件项目管理领域,由于软件开发自身的特性,很多指标无法精确测量和计算,只能主观赋权。故结合一定的客观赋权法,会使计算结果更加符合实际情况。目前常用的客观赋权法中,最常见且影响广泛的是熵权法[12]。
图1 软件项目进度管理体系
熵权法计算步骤如下:
(1)根据软件开发模式和当前软件项目具体情况,构建决策矩阵A,设当前该软件开发有n个评价对象、k个评价指标。计算评价矩阵,详见式(1)
(1)
(2)采用离差标准化法对多属性评价矩阵A中的各项数据xij进行标准化处理,xij表示第i个评价对象第j个评价指标的值(i=1,2,…,n;j=1,2,…,k)。计算公式详见式(2)
(2)
(3)根据项目实际情况,计算在第j属性下第i次数据的比重Pij,计算公式详见式(3)
(3)
(4)根据实际项目情况,计算第j属性分量的熵值ej,计算公式详见式(4)
(4)
(5)根据实际项目情况,计算第j属性分量的差异系数gj,计算公式详见式(5)
gj=1-ej
(5)
(6)根据实际项目情况,计算第j属性分量的权重系数wj,计算公式详见式(6)
(6)
使用熵权法有助于明确当前该软件开发项目主要影响因素的具体影响权重,有针对性地计算受各影响因素下的任务时间。在设计项目管理进度计划初始阶段,通过有效计算提前设置冗余时间,无须盲目调整进度管理计划,减少该影响因素对整体计划的影响。
3 应用实例
本文以L公司TPM软件开发项目为例进行进度风险分析。L公司是一家快消品行业的龙头企业,软件开发部门成立近20年,有大量可供参考的历史数据。通过对比大量数据后发现,该部门可能影响进度的因素有6种:成本、管理、人员技能、需求变更、社会、技术。根据熵权法的计算逻辑,收集相应的评价对象和有关评价对象的评价指标,结合TPM软件开发项目的实际情况,选择该软件开发规模预期为100天的迭代计划及其不同年份受不同进度影响因素干扰下的实际开发天数作为比较参考,参考数据来源于L公司历年来该软件迭代开发历史数据,见表1。
表1 历年数据分析 (单位:天)
表1数据说明:①成本。表示在优先考虑整体成本因素的情况下,原计划周期为100天的项目当前可以将其周期缩短至多久。②管理。表示在优先考虑管理因素的情况下,原计划周期为100天的项目当前可以将其周期缩短至多久。③人员技能。表示在优先考虑项目因素人员技能的情况下,原计划周期为100天的项目当前可以将其周期缩短至多久。④需求变更。表示在优先考虑成本因素需求的情况下,原计划周期为100天的项目当前可以将其周期缩短至多久。⑤社会。表示在优先考虑社会因素的情况下,原计划周期为100天的项目当前可以将其周期缩短至多久。⑥技术。表示在优先考虑技术因素的情况下,原计划周期为100天的项目当前可以将其周期缩短至多久。
(1)根据当前收集的实际数据,构建有效的评价矩阵A
(2)进行标准化处理,数据处理结果详见表2。
表2 数据处理结果
(3)计算熵值,结果见表3。
表3 熵值计算结果
(4)计算熵权,结果见表4。
表4 熵权计算结果
通过以上计算结果可知,对于L公司的软件开发项目而言,人员技能因素带来的波动远远高于其他因素带来的波动。在制订进度管理计划时,需要更多地关注人员技能因素,对其可能产生的影响提前做好准备。
4 结语
本文通过对软件开发项目整体化的有效分析,系统总结了软件开发项目进度管理的全流程、各阶段,有效构建了软件开发进度管理模型,同时结合熵权法针对进度管理风险进行量化分析,不仅解决了软件开发进度管理中流程不明、管理混乱的问题,而且大大提高了软件开发项目进度管理量化指标的合理性,可为实际生产经营中的软件开发项目进度管理提供参考。