段怡
摘 要:大数据时代给软件项目管理带来了新思维。本文首先分析了软件项目管理中各种数据的来源,并从数据规模、多源异构和动态性三个角度,阐述了软件项目管理中数据的“大”的含义;其次总结了大数据对软件项目管理带来的三个方面的影响;然后提出了数据驱动的软件项目管理的过程;最后提出了基于大数据的软件项目管理的三条建议。
关键词:软件项目管理;大数据;过程驱动;数据驱动
中图分类号:F270 文献标识码:A 文章编号:1671-2064(2018)21-0151-02
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动[1]。其内容主要涉及以下几个方面:人员的组织与管理,软件度量,软件项目计划,风险管理,软件质量保证,软件过程能力评估,软件配置管理等。与其他项目管理相比,软件项目管理具有两个方面的不同:一是,软件是纯知识产品,其开发进度和质量很难度量;二是,软件系统的复杂性,导致了软件开发中各种难预见和难控制的风险。
随着项目管理系统、版本控制系统、缺陷追踪系统、邮件列表和论坛等工具在软件开发和管理活动中得到普及,这些工具产生了海量的数据,记录了开发的过程和管理的轨迹。如何有效收集、组织和运用这些大数据,采用新的视角,重新审视软件项目管理的基本问题,突破原有的认知瓶颈,并在新条件下探索新的项目管理模式和规律,进而改进互联网时代软件项目管理方法,成为了大数据时代下软件项目管理的新思维。
在国內外,应用大数据技术创新管理的研究较多。在国外方面,文献[2]认为大数据计算能够带来商业、科学和社会的革命性突破。文献[3]关注大数据如何使得管理创新有效。文献[4]强调数据驱动的决策将使得管理创新更加科学有效。在国内方面,文献[5]讨论了大数据背景下的商务管理创新问题。文献[6]以国家电网为例,提出基于大数据的商业模式创新新思维框架。这些工作虽然从不同视角讨论了大数据对管理创新带来的影响,但未讨论对软件项目管理的改变。
针对上述问题,本文详细讨论了大数据对软件项目管理带来的新思维。首先,分析了当前软件项目管理中可用的各种大数据;其次,阐述了大数据对软件项目管理带来的影响;然后,从流程视角,提出了数据驱动的软件项目管理的具体流程;最后,提出了实施基于大数据的软件项目管理的若干建议。
1 软件项目管理中的大数据
因为开发和管理活动的需求,近年来软件项目广泛使用了版本管理系统、质量保障系统、缺陷追踪系统、邮件列表和论坛等工具,大量软件项目管理所需的数据被保存起来,如图1所示。在软件开发和管理中,相关人员的每一次代码提交、每一次测试报告、每一个缺陷报告、对缺陷的每一次评论、每一个邮件及回复,都不完整的保存在软件仓库中,记录了软件开发过程和管理过程的演变,以及开发者个体的行为。
对软件项目管理来说,之所以称大数据为“大”,主要体现在数据规模大、多源异构和动态性三个方面,具体内容如:(1)从数据规模的角度来看,可从组织内部和网络上获得海量与项目相关的数据。例如,仅Gonme一个开源项目就有超过70万个缺陷数据,Apache开源社区拥有超过600万封邮件,Mozilla社区有超过2亿条的代码提交日志。据不完全统计,仅互联网上所有开源项目的版本控制系统数据总量估计在70TB的级别。(2)从数据来源和结构角度来看,这些数据来源于不同的软件系统,具有不同的数据结构。这些数据结构有可以直接使用的结构化数据,还包括大量的需要进一步处理的半结构化数据和非结构化数据。(3)从动态性来看,软件项目管理相关的数据都被各种系统不断记录。通过对这部分数据流的实时处理,为软件项目管理的持续提升和改进提供了可能。
2 大数据对软件项目管理的影响
(1)大数据为软件项目管理提供了更多的证据,使得项目管理能在一个更广泛的数据生态中开展管理工作。大数据下的软件项目管理,与传统的软件项目管理有着本质不同。传统软件项目管理受制于软件开发过程数据和项目管理过程数据的匮乏,使得项目管理者无法准确获得项目的全貌,犹如“只见树木,不见森林”;而大数据下的软件项目管理可实时获得各种开发数据和管理数据,“可见树木,也可见森林”。这样来看,我们把传统软件项目管理数据生态想象成一个“水库”,则大数据下软件项目管理的数据生态则是“大海”。(2)大数据决定了软件项目管理方式从单纯的过程驱动转换为过程和数据驱动。传统的软件项目管理是基于过程模型的项目管理,按照项目的生命周期展开过程管理,总体上属于被动管理。因为,软件开发过程与项目管理过程相分离。大数据下软件项目管理应是过程驱动和数据驱动并重的管理。其中,过程驱动的项目管理方式强调从过程视角,贯穿项目的全生命周期,从需求、项目规划、软件开发、质量全程跟踪等多个阶段对软件项目进行全过程管理;数据驱动的项目管理方式强调从动态的视角出发,基于动态的数据收集和数据分析,可以帮助管理者准确理解项目的过去、并对未来进行预测。这种管理方式,使得软件开发过程与项目管理过程形成一个良性的闭环,进而使项目管理从被动管理转换为主动管理。(3)大数据下软件项目管理的创新不再仅仅局限于过程、知识或技术,还有基于数据的发现。大数据的存在,使得软件项目管理更为科学,数据分析结果将为创新方案决策提供核心依据。这意味着项目管理者必须高度重视项目管理中发现的各种数据问题。因为,在这些数据问题背后孕育着各种可能的创新方案。当然,这些创新方案的决策主要取决于数据分析的结果以及软件组织对结果的解读;创新方案在实践中是否成果,关键在于数据的可得性和数据分析结果及解读的准确性。
3 数据驱动的软件项目管理
数据驱动的软件项目管理,如图2所示,应包括以下步骤:第一步,获取项目管理的原始数据;第二步,对数据进行清洗和预处理;第三步,针对具体管理目标建立相关度量,并对数据进行分析和计算,得到各种度量各种指标;第四步,基于度量指标,客观准确地理解项目的过去、预测未来。
获取项目管理的原始数据主要可以通过两个方面:一方面,从组织内部采用的版本管理系统、质量保障系统、缺陷追踪系统、邮件列表和论坛等工具中获得;另一方面,从采用爬虫从互联网上抓取项目的相关信息,缺陷报告、邮件列表、技术难点等。数据质量是保证分析结果真实可信的必要因素。但是,原始数据因为各种原因而存在问题,因此,必须对原始数据进行清洗和预处理。此外,原始数据中存在半结构化和非结构化的数据也需要将其为转换结构化的数据,以方便计算机计算和分析。在获取原始数据和数据清洗的过程中,随着对原始数据的透彻理解,可根据项目管理目标,建立相应的度量。对数据进行挖掘和分析的时候,需要特别注意:鉴于软件项目本身的个性化,一些适用于其他项目的数据挖掘方法难以照搬,因此需要根据项目的个性化特征对传统的数据挖掘和分析方法进行突破。這每一次代码提交、每一个缺陷报告、每一个邮件等记录着开发和管理的数字轨迹,管理者可以从这些海量的数据中理解项目的过去和预测项目的未来。
4 建议
为使基于大数据的软件项目管理在项目实践中具有可操作性,提出如下建议:
(1)软件组织应着手建立一种与大数据项目管理相适应的广泛参与的机制和企业文化,将以往基于项目经理意图或专家知识的决策转换为数据驱动的决策,以数据分析结果作为决策和评价的基础。(2)软件组织应着手建立数据分析部门,用以收集、处理和分析数据,为项目管理提供数据依据。同时,加强该部门与开发部门、测试部门、业务部门级外界的配合与合作,尽可能多的获取数据和信息。(3)软件组织应该应改变当前的人力资源管理,增加对数据分析方面专业人才的积累,并在实践的项目管理中突出大数据的重要性。
参考文献
[1]王强.IT软件项目管理[M].清华大学出版社,2004.
[2]Manyika J,Chui M,Brown B,et al.Big data:the next frontier for innovation,competition,and productivity.mckinsey.com[R/OL].December 13,2012.
[3]Mcafee A,Brynjolfsson E.Big data:the management revolution[J]. Harvard Business Review,2012,90(10):60-66.
[4]Lavalle S.Big data,analytics and the path from insights to value[J].Mit Sloan Management Review,2011,52(2):21-32.
[5]冯芷艳,郭迅华,曾大军,等.大数据背景下商务管理研究若干前沿课题[J].管理科学学报,2013,(1):1-9.
[6]刘丹,曹建彤,王璐.基于大数据的商业模式创新研究——以国家电网为例[J].当代经济管理,2014,(6):20-26.