第一章 引言
1.1 研究背景及意义
1.1.1 研究背景
随着计算机技术和信息科学技术的迅速发展,人们的工作和生活方式已经发生了翻天覆地的变化,软件已广泛应用于社会生活的各个领域, 使它成为了当今社会发展中非常重要的角色;然而,随着互联网、大数据及区块链技术的相继诞生,软件行业的发展也发生了一些前所未有的变化,如:需求和服务的个性化要求、开发和交付周期变短,软件规模日趋庞大,软件复杂度和质量要求越来越高等。这些变化为软件的开发和软件项目的管理提出了更大的机遇和挑战。同时,由于市场经济环境不断变化和发展,组织中的业务形式也将发生巨大的变化,从而会对软件、系统的需求变化增多,这些变化与传统软件开发的项目管理特点比较,存在着质的变化,这都将是软件企业和软件项目管理必须应对的改革和问题。因此,只有将科学有效的项目管理方法运用到软件开发过程中才能保证项目成功。敏捷开发管理模式可以顺应市场变化,符合目前发展的趋势。
1.1 研究背景及意义
1.1.1 研究背景
随着计算机技术和信息科学技术的迅速发展,人们的工作和生活方式已经发生了翻天覆地的变化,软件已广泛应用于社会生活的各个领域, 使它成为了当今社会发展中非常重要的角色;然而,随着互联网、大数据及区块链技术的相继诞生,软件行业的发展也发生了一些前所未有的变化,如:需求和服务的个性化要求、开发和交付周期变短,软件规模日趋庞大,软件复杂度和质量要求越来越高等。这些变化为软件的开发和软件项目的管理提出了更大的机遇和挑战。同时,由于市场经济环境不断变化和发展,组织中的业务形式也将发生巨大的变化,从而会对软件、系统的需求变化增多,这些变化与传统软件开发的项目管理特点比较,存在着质的变化,这都将是软件企业和软件项目管理必须应对的改革和问题。因此,只有将科学有效的项目管理方法运用到软件开发过程中才能保证项目成功。敏捷开发管理模式可以顺应市场变化,符合目前发展的趋势。
从 2001 敏捷宣言公布到今天,经过十多年的发展,敏捷开发模式已经成为软件项目开发管理的主流模式,越来越多的企业开始关注敏捷并实施敏捷,但随着敏捷开发模式的实施,人们也开始逐步意识到对实施结果的评估也是非常重要的事情,如效果如何?遇到的问题如何改进,必然会提上议程。敏捷开发的绩效评价不仅要对软件项目生命周期进行绩效指标的重要性和影响力的分析,而且还需要根据不断变化的趋势来寻找稳定性因素,对项目过程的发展趋势进行预测,为项目的过程改进提供决策支持。因此,对于企业采用敏捷开发模式后是否达到了预期目标成为了当前所有实施敏捷开发模式企业所面临的一大重大问题。然而,纵观目前对敏捷开发模式的研究理论,虽然有许多管理及技术专家提出了很多有价值的理论,但对使用敏捷开发后的评价绩效理论则很少,大部分是基于原有开发模式的绩效评价指标进行理论研究,同时,在企业实践中也并没有结合实际的实施情况深入的对绩效评价进行实践性的研究,无法对实施敏捷后的效果进行具体的实施指导,为企业提供参考依据,因而无论从理论上还是从实践方面对敏捷开发模式项目的绩效评价都存在较大的研究空间,本文主要是对敏捷开发的软件项目绩效评价方法论的补充,重点研究一种以建模方式建立绩效评价的方法。
........................
1.2 研究内容与方法
1.2.1 研究内容
本文主要目标是结合敏捷开发和敏捷开发绩效评价的特点,通过分析客户需求和软件开发过程技术特性的联系,识别影响客户需求的关键技术特性,将客户需求转化为软件开发的技术需求,之后通过对关键技术特性进行分析,采用回归分析的方法构建绩效评价模型,为企业评价软件项目提出指导方向。
本文主要研究的内容是包括以下几方面:
1) 从软件项目开发模式及软件绩效评价发展趋势出发,对软件项目及软件绩效评价发展情况和特点深入分析,明确影响敏捷开发模式的软件项目绩效评价的因素;
2) 对软件开发的开发模式类型进行了分析,了解不同类型的开发模式的优缺点,明确了敏捷开发模式的软件项目与其他开发模式的区别;
1.2.1 研究内容
本文主要目标是结合敏捷开发和敏捷开发绩效评价的特点,通过分析客户需求和软件开发过程技术特性的联系,识别影响客户需求的关键技术特性,将客户需求转化为软件开发的技术需求,之后通过对关键技术特性进行分析,采用回归分析的方法构建绩效评价模型,为企业评价软件项目提出指导方向。
本文主要研究的内容是包括以下几方面:
1) 从软件项目开发模式及软件绩效评价发展趋势出发,对软件项目及软件绩效评价发展情况和特点深入分析,明确影响敏捷开发模式的软件项目绩效评价的因素;
2) 对软件开发的开发模式类型进行了分析,了解不同类型的开发模式的优缺点,明确了敏捷开发模式的软件项目与其他开发模式的区别;
3) 分析影响敏捷开发的软件项目绩效评价的关键影响因素,采用建模的方法构建评价模型,通过模型可以达到预测和过程改进的作用;
4) 结合建立的模型方法,采用案例分析法将模型方法具体运用在 Y 公司的敏捷开发模式的软件项目中进行论证,对模型的有效性进行检验,最终形成一种研究方法。
......................
4) 结合建立的模型方法,采用案例分析法将模型方法具体运用在 Y 公司的敏捷开发模式的软件项目中进行论证,对模型的有效性进行检验,最终形成一种研究方法。
......................
第二章 基础理论及相关研究
2.1 敏捷开发的理论概述
2.1.1 敏捷开发的概述
"敏捷"的本意是指迅速的、灵敏的,因此 Anderson 认为敏捷的方法意味着"在不断变化的各种环境中都能够顽强的生存,并取得成功的方法"。而 Highsmith 将敏捷定义为"具有一定的创新和适应变化的能力,以便可以在动荡的商业或市场环境中获得利润"。Cockbum 则从实施敏捷方法的有效性和可操作性对敏捷进行了补充定义。上述对敏捷的定义说明了,敏捷的组织必然是拥抱变化,行动迅速,灵敏,可以在不改变敏捷方法结构基础上对刚性和灵活性进行平衡。敏捷开发的软件项目主要强调了人的重要性,人是敏捷开发方法的核心,通过对可交付产品进行不间断地迭代,逐步实现完善软件各种功能和性能的目的。
敏捷开发有时会被称呼为敏捷开发模式, 这种开发模式是一种新的软件开发模式,自 20 世纪 90 年代以来逐渐引起社会各届广泛关注,是遵循了敏捷开发要拥抱变化的思想,是一种快速响应需求的软件开发能力。它与“非敏捷”开发模式进行比较可知,敏捷开发模式更加强调项目技术开发团队与业务人员之间的密切合作的方式、强调了高效的沟通方式是面对面沟通、频繁交付可行软件、自组织团队、具有高度适应需求变化的技术开发团队,也更加关注团队中的人员在软件开发中的作用。
2.1 敏捷开发的理论概述
2.1.1 敏捷开发的概述
"敏捷"的本意是指迅速的、灵敏的,因此 Anderson 认为敏捷的方法意味着"在不断变化的各种环境中都能够顽强的生存,并取得成功的方法"。而 Highsmith 将敏捷定义为"具有一定的创新和适应变化的能力,以便可以在动荡的商业或市场环境中获得利润"。Cockbum 则从实施敏捷方法的有效性和可操作性对敏捷进行了补充定义。上述对敏捷的定义说明了,敏捷的组织必然是拥抱变化,行动迅速,灵敏,可以在不改变敏捷方法结构基础上对刚性和灵活性进行平衡。敏捷开发的软件项目主要强调了人的重要性,人是敏捷开发方法的核心,通过对可交付产品进行不间断地迭代,逐步实现完善软件各种功能和性能的目的。
敏捷开发有时会被称呼为敏捷开发模式, 这种开发模式是一种新的软件开发模式,自 20 世纪 90 年代以来逐渐引起社会各届广泛关注,是遵循了敏捷开发要拥抱变化的思想,是一种快速响应需求的软件开发能力。它与“非敏捷”开发模式进行比较可知,敏捷开发模式更加强调项目技术开发团队与业务人员之间的密切合作的方式、强调了高效的沟通方式是面对面沟通、频繁交付可行软件、自组织团队、具有高度适应需求变化的技术开发团队,也更加关注团队中的人员在软件开发中的作用。
敏捷开发模式主要的工作方式是团队作为一个整体进行迭代工作;每次迭代的周期都相对较短,每一次结束的迭代开发后都必须交付可使用的软件,团队通过对业务优先级的排序进行迭代规划和实施。
..........................
..........................
2.2 软件项目基本理论
2.2.1 软件项目的概念和特点
随着科学技术和互联网技术的迅速发展,计算机技术已经被广泛的普及到人们工作和生活的各个领域,随着人们工作和生活节奏变快、思想越来越活跃,变化越来越个性,这种现象造就了人们对功能需求的多样性和独特性,以及要求系统功能高质量,高效率的交付。这都将对软件产品的规模和软件复杂程度带来一定的影响。通过对大量的规模较大的软件企业多年来项目开发失败的教训的研究可以看出,只有科学有效的管理软件开发过程,才能确保软件项目成功。软件项目团队要准确地把握软件开发活动中的重要节点,通过采用科学的管理理论和软件开发的方法来管理和规范项目。
所谓的软件项目是指与软件相关的项目,它是由客户希望通过软件实现某一种功能而提出需求的,软件技术人员接到客户需求后,通过对需求进行功能分析,将客户需求转化为计算机相关的技术需求,之后由软件的专业人士通过各种计算机软件开发手段来实现客户要求。从客户提出需求到需求被实现的整个过程,我们称之为软件项目。每一个软件项目都具有独特性、临时性和目标性的要求。
2.2.1 软件项目的概念和特点
随着科学技术和互联网技术的迅速发展,计算机技术已经被广泛的普及到人们工作和生活的各个领域,随着人们工作和生活节奏变快、思想越来越活跃,变化越来越个性,这种现象造就了人们对功能需求的多样性和独特性,以及要求系统功能高质量,高效率的交付。这都将对软件产品的规模和软件复杂程度带来一定的影响。通过对大量的规模较大的软件企业多年来项目开发失败的教训的研究可以看出,只有科学有效的管理软件开发过程,才能确保软件项目成功。软件项目团队要准确地把握软件开发活动中的重要节点,通过采用科学的管理理论和软件开发的方法来管理和规范项目。
所谓的软件项目是指与软件相关的项目,它是由客户希望通过软件实现某一种功能而提出需求的,软件技术人员接到客户需求后,通过对需求进行功能分析,将客户需求转化为计算机相关的技术需求,之后由软件的专业人士通过各种计算机软件开发手段来实现客户要求。从客户提出需求到需求被实现的整个过程,我们称之为软件项目。每一个软件项目都具有独特性、临时性和目标性的要求。
软件项目成立的根本是客户的需求,而软件项目的实现过程则需遵循软件技术的相关要求,如软件生命周期过程、软件开发语言等。从软件开发角度看:软件开发过程是一个非常复杂的过程,它不仅涉及到软件实现的技术、还会涉及到项目管理、产品设计和软件测试等技术。从项目生命周期看:不同的软件开发模式会有不同的生命周期与之对应,不同的开发模式就会对软件实现过程有不同的技术要求。因此,对实施软件项目的人员和技术提出了较高的要求,有以下几个主要的特点:
1) 用户需求具有不确定性和模糊性。由于软件功能属于一种无形的产品,而且随着技术的进步和市场的变化,用户的需求是会随时变化的。另外,有些客户在提出需求的过程中,对自己本身的需求的认识不够准确,这也会为软件开发带来一定的不确定性和模糊性。
2) 由于软件项目涉及的知识领域较多,而且在软件功能实现的过程中主要依靠人的因素较多,因此决定了对软件开发人员要求较高。
..........................
1) 用户需求具有不确定性和模糊性。由于软件功能属于一种无形的产品,而且随着技术的进步和市场的变化,用户的需求是会随时变化的。另外,有些客户在提出需求的过程中,对自己本身的需求的认识不够准确,这也会为软件开发带来一定的不确定性和模糊性。
2) 由于软件项目涉及的知识领域较多,而且在软件功能实现的过程中主要依靠人的因素较多,因此决定了对软件开发人员要求较高。
..........................
3.1 基于敏捷开发的绩效管理的特点及方法 ............................ 19
3.1.1 基于敏捷开发的绩效管理特点 .............................. 19
3.1.2 基于敏捷开发的绩效管理流程 .............................. 20
第四章 基于敏捷开发的软件项目绩效评价模型构建 ........................ 25
4.1 绩效评价模型构建的范围和原则 .................................. 25
4.2 绩效评价模型构建步骤 .......................................... 26
第五章 Y 公司软件项目的绩效评价模型应用 ............................... 39
5.1 Y 公司软件项目概况 ............................................ 39
5.1.1 企业概况 ................................................ 39
5.1.2 软件项目概况 ............................................ 39
第五章 Y 公司软件项目的绩效评价模型应用
5.1 Y 公司软件项目概况
5.1.1 企业概况
本次进行验证的项目为 Y 公司自主开发的软件项目。Y 公司是中国支付行业的先驱者,在支付和交易服务方面处于行业领先地位,同时在支付行业中获得了各种企业奖项、Y 公司主要致力于互联网支付行业,秉承聚焦重点行业、客户焦点为服务目标,为客户提供优质服务、诚信待人;对员工贯彻开放分享、成就未来,为行业打造交易改变生活、一切皆有可能的价值观,通过从行业、企业、客户和员工四个维度出发,共同打造出一个大家共享的世界领先的交易服务平台。
5.1.2 软件项目概况
Y 公司进行敏捷模式开发的项目为公司内部使用的办公自动化系统——FN 信息化系统,此系统从项目立项经历了将近 2 年的时间,目前仍然按照敏捷开发模式按照用户提出的需求进行迭代开发中。
公司的 FN 项目为公司级的战略项目,旨在提高公司内部员工的沟通效率,降低沟通成本,同时优化公司的各种申请流程,提高各部门的配合和协作的效率。此项目的需求全部来自于不同部门的办公需求,由于办公需求会随着人员结构、组织架构和公司战略要求的变化而变化,因此本项目为了更好的服务需求方,及时实现各方的需求,采用了敏捷开发模式,快速响应各方要求。
..........................
第六章 总结与展望
6.1 结论及不足
文章主要通过对敏捷开发的相关理论知识和项目管理知识的汇总分析,分别阐述了敏捷开发的概念、敏捷开发的价值观、原则及敏捷开发中目前比较流行的 Scrum 方法,从两类开发模式下的项目管理及绩效指标的共性和区别出发,结合敏捷开发模式自身的特点,构建了一套敏捷开发模式下软件项目绩效评价模型,评价指标中包括了 4 个一级指标,10 个二级指标和 16 个软件/系统技术特性指标,从敏捷开发的客户价值、业务价值、技术价值、开发和交付进度、成本、质量稳定性、效益稳定性等方面利用回归分析法搭建了影响绩效评价结果的预测性模型。为了验证模型的有效性,本文又以 Y 公司的FN 办公信息化系统为例,通过利用绩效评价模型的影响因子对项目的改进点进行预测,项目根据预测的改进点进行改进,之后通过统计改进后的项目绩效相关数据,采用绩效评价模型进行评价,本次评价采用了项目的两次迭代数据进行分析,对比,最终得出了项目绩效评价的第二次迭代结果高于第一次迭代结果,由此可见,项目绩效评价模型对项目的预测和评价是有效的,同时证明了此模型的合理性和可行性。
6.1 结论及不足
文章主要通过对敏捷开发的相关理论知识和项目管理知识的汇总分析,分别阐述了敏捷开发的概念、敏捷开发的价值观、原则及敏捷开发中目前比较流行的 Scrum 方法,从两类开发模式下的项目管理及绩效指标的共性和区别出发,结合敏捷开发模式自身的特点,构建了一套敏捷开发模式下软件项目绩效评价模型,评价指标中包括了 4 个一级指标,10 个二级指标和 16 个软件/系统技术特性指标,从敏捷开发的客户价值、业务价值、技术价值、开发和交付进度、成本、质量稳定性、效益稳定性等方面利用回归分析法搭建了影响绩效评价结果的预测性模型。为了验证模型的有效性,本文又以 Y 公司的FN 办公信息化系统为例,通过利用绩效评价模型的影响因子对项目的改进点进行预测,项目根据预测的改进点进行改进,之后通过统计改进后的项目绩效相关数据,采用绩效评价模型进行评价,本次评价采用了项目的两次迭代数据进行分析,对比,最终得出了项目绩效评价的第二次迭代结果高于第一次迭代结果,由此可见,项目绩效评价模型对项目的预测和评价是有效的,同时证明了此模型的合理性和可行性。
随着对课题的不断深入研究,虽然模型在项目验证过程中说明了模型具有一定的可行性和可操作性,但是本论文仍存在一些不足之处。
1) 在进行绩效评价指标选择中,仍然存在指标选项主观性的问题。在进行绩效评价影响因素的选择过程中,使用了调查问卷的形式由一些敏捷专家进行确定,而且参与的专家相对较少,所以绩效评价模型的结果会存在一定的主观性;在评价绩效指标与指标影响因素之间的相关关系时,主要仍然是项目实际的经验和敏捷研发的理论为主要依据进行评价的,故对相关性评价也存在着主观性。
2) 在进行敏捷绩效评价研究的过程中,所选择调研的企业主要包括了金融业、互联网、通信行业、电力行业,但是其他行业中的敏捷绩效评价情况没有全部覆盖到,而且敏捷开发过程因为是快速响应,拥抱变化,不同的项目可能会存在一些不同的特点,因此不能保证本文中所选的绩效评价指标能够全面覆盖所有的要求。
1) 在进行绩效评价指标选择中,仍然存在指标选项主观性的问题。在进行绩效评价影响因素的选择过程中,使用了调查问卷的形式由一些敏捷专家进行确定,而且参与的专家相对较少,所以绩效评价模型的结果会存在一定的主观性;在评价绩效指标与指标影响因素之间的相关关系时,主要仍然是项目实际的经验和敏捷研发的理论为主要依据进行评价的,故对相关性评价也存在着主观性。
2) 在进行敏捷绩效评价研究的过程中,所选择调研的企业主要包括了金融业、互联网、通信行业、电力行业,但是其他行业中的敏捷绩效评价情况没有全部覆盖到,而且敏捷开发过程因为是快速响应,拥抱变化,不同的项目可能会存在一些不同的特点,因此不能保证本文中所选的绩效评价指标能够全面覆盖所有的要求。
3) 另外本文中的绩效评价指标对客户和软件开发过程评价性较多,但是对软件开发完成交付给客户后的维护指标评价相对较少,不能够完全综合说明软件项目的整体绩效情况。
参考文献(略)
参考文献(略)