软件工程项目管理简析

(整期优先)网络出版时间:2021-08-16
/ 3

软件工程项目管理简析

洪嘉盛 刘亮 王康

(湖南文理学院 常德 415000)


摘要:本文主要从人员的组织与管理、软件项目进度管理、软件项目质量管理、软件项目风险管理四个方面介绍了软件工程项目管理的主要内容和相关概念,指出当前软件企业在软件项目开发过程中遇到的实际问题,并提出解决问题的方案。

关键字:软件项目管理,进度管理,质量管理,风险管理,软件项目

中图分类号:TP311.5 文献标志码:A


Analysis of software engineering project management

Wangkang,Hongjiasheng,Liuliang

(Hunan University of Arts and Science,Changde 415000)


Abstract: This paper mainly introduces the main contents and related concepts of software engineering project management from four aspects of personnel organization and management, software project schedule management, software project quality management and software project risk management, points out the practical problems encountered by current software enterprises in the process of software project development, and puts forward the solutions to the problems.

Key words: software project management; schedule management; quality management; risk management; software project.


引言

随着社会的迅速发展,软件的种类逐渐增多,人们对于软件质量的要求也日益严苛。为了顺应社会信息化趋势,追求更大的市场,越来越多的企业开始注重特色、创意开发,却忽略了软件项目管理在软件项目开发过程的重要性。

为了持续推动计算机软件行业的发展,软件企业应高度重视软件项目管理,积极解决开发过程中出现的问题,并根据企业自身的实际情况调整管理方式,使软件项目管理充分发挥作用。

  1. 软件项目的和软件项目管理概述

  1. 软件项目

软件开发项目是为了满足人们在生活、工作上的需求,软件开发人员使用一系列的手段获取用户的需求,然后进行分析,遵循一定的开发原理,使用计算机软件开发技术和工具采取相对应得方法,最终开发出的软件到达用户的要求。

特性:软件项目的特性,是软件区别于其它产品的独特性,是软件独特本质的反映。(1)复杂性:软件项目地复杂性是指理解和管理软件的难易程度,其中包括程序代码的复杂性和文档的复杂性,软件复杂性主要体现在程序代码中的复杂性;(2)一致性:软件项目的一致性是指软件系统的需求要与用户保持一致。(3)可变性:软件不是实体化的,可以方便的修改,这个是软件的优点之一,所以相对于其它项目产品,软件可能会经常变更;(4)不可见性:传统的产品在建造中是有形的建造过程,可以立即看到,而软件项目产品的进展是不可见的。

  1. 软件项目管理

软件项目管理是以软件工程项目为对象,以软件工程项目在固定的时间和有限的资源下为目标而对人员、产品、过程和项目进行分析和管理的活动。

特性:软件项目管理的特性是由软件项目的特性决定的。(1)不确定性:软件项目是抽象的,其开发进度和质量很难估计和度量,生产效率也难以预测和保证,导致软件项目管理拥有诸多不确定性因素;(2)独特性:每一个项目都有其独特性,不存在两个完全相同的项目;(3)阶段性:软件项目经过不同阶段渐进完成的,通常前一阶段的结果是后一阶段的依据和条件,不同阶段的条件、要求、任务和成果是变化的。(4)目的性:项目管理的目的是要通过开展项目管理活动去保证满足或超越项目有关各方面明确提出的项目目标。(5)集成性:项目管理的集成性是项目的管理中必须根据具体项目各要素之间的配置关系做好集成性的管理。

  1. 软件项目管理主要内容

  1. 人员的组织与管理

人员的组织与管理作为一个软件项目质量的决定性因素,其重点在于人员的构成和优化。在项目的实行阶段根据项目所需以及项目组成员的个人专业水平、性格、项目经验等因素多方面综合考量,为每个成员分配相适应的工作内容。越大型的软件项目所需的人力资源越多,成员之间的配合、协调在开发过程中对项目质量的影响就变得举足轻重。因此为每个项目组选择合适的成员并保证人员稳定是人员组织与管理的关键。

  1. 人员的组织与管理中出现的问题

软件产品是团队劳动的结晶,因而团队中各个成员的协作就显得至关重要。但在实际开发中,团队中有一名甚至多名成员不擅长或不愿意与队友进行沟通协作是非常普遍的。如果没有及时全面的交流,小组成员将很难了解队友的项目进展及遇到的困难,更不用说像一个整体一样高效地协作。此外,因个人的水平、经验、心理素质以及对团队内其他成员不熟悉和不信任引起的沟通障碍将导致工作效率不断下降,出现的问题不能及时排解,项目失败的风险极大增加。

  1. 人员的组织与管理问题的解决

项目团队需要定时召开小组会议,汇报每个成员的工作进展和工作中遇到的问题。项目经理还可以在完成里程碑式任务时组织适当的团建活动,活动形式不限,重点是使所有团队成员都能参与进来。这些活动能为团队成员提供一种更放松的环境,有助于彼此熟悉、相互信任,进而消除沟通障碍。项目经理需额外关注团队内少数性格内向的成员,如果活动中有成员至始至终没有主动交谈,就应该主动和他交谈并尊重他的发言,多次之后他们就会开始主动和团队成员交流。这种及时有效的沟通往往能带来和谐的工作环境,进而提高团队合作效率。

  1. 软件项目进度管理

项目进度管理是一个动态管理过程,基于时间的项目进度计划应合理区分阶段计划和产品计划。由于时间的不可逆性,项目管理者需科学性地根据实际实施进度不断地进行修改、维护,尽可能用最少的成本、最短的时间完成一个软件项目的开发。一个完整可行的项目计划能够为项目组中不同职责的人提供一个初步的框架。同理,一个准确具体的项目进度计划配合高效的管理也会为软件开发过程中的各项工作的按时完成提供保证。

      1. 进度管理中出现的问题

由于软件开发项目中的需求变更几乎不可避免,软件开发项目的进度管理一直是很多软件企业的一个棘手问题。在实际的项目开发过程中通常有两种情况:其一是项目经理为了赶工,选择性地忽视一些实际困难,在没有和团队成员进行有效的沟通的情况下就制定了完全不合理的进度计划,从而导致计划从一开始就不被团队成员重视;其二是项目经理在项目初期制定了计划后就不再调整,忽略了“计划赶不上变化”的实际情况。这两种情况都将导致整个项目不能在约定时间完成,从而对项目的成本、质量产生不可估量的影响,进而导致公司信誉受损。

      1. 进度管理问题的解决

项目经理在制定进度计划时应当合理地估计项目实现的难度,并考虑到影响进度的其他因素,给项目进度留有余地。此外还需要一个详细具体的进度计划,规定好每个任务什么时候做,由谁做、多久完成。当制定好一个进度计划时,项目经理就应该严格按照计划执行每日的工作,及时扫除影响项目进度的各种障碍。倘若客户提出了确有必要的需求变更,项目经理需与客户明确需求变更导致的进度调整和成本增加,并及时更改进度安排,使计划保持准确有效。

  1. 软件项目质量管理

质量管理包含软件质量保证(SQA)和质量控制(QC)。软件质量保证是为了确保软件达到所需的软件质量而进行的一系列有计划、有目标的管理活动,主要包含SQA审计与评审、SQA报告、处理不符合问题;质量控制则是通过消除缺陷更为深层次地提高软件质量以满足不同的质量需求。在软件项目开发过程中,质量是相对于用户的价值,开发产品质量能达到甚至是超越用户的需求,那么便可以认为该项目进行了有效的项目质量管理。因此,是否满足用户的需求,是衡量一个软件项目质量的根本标准。

      1. 质量管理中出现的问题

在市场对软件质量的要求不断提高的情况下,很多软件企业依然寄希望于测试人员去完成整个软件项目的质量保证任务,

忽略了开发人员和管理人员在质量管理起到的作用。但实际上,这种只靠软件测试来提高软件质量的思想显然是非常落后的。如果到后期测试时才发现大量错误,即使最终解决了问题,也会严重影响软件产品的交付时间和软件质量。此外,对于现在市场所需求的更复杂、更庞大的软件系统而言,软件项目开发团队通常会忽略一个事实,即用户满意度、可维护性、可用性、与效率等也是重要的软件质量指标。

      1. 质量管理问题的解决

项目经理作为管理层应当让开发人员认识到一个高质量的软件需要多方紧密合作,绝不是仅仅依赖测试人员。例如开发人员在编码过程中就应该进行单元测试,提高代码的可维护性。同时,项目经理还需制定质量计划并持续监控软件开发的过程、组织团队成员培训来提升成员的质量管理意识。规模大些的企业还需要建立独立的质量部门对软件项目开发的各个环节进行监督。在项目的每个阶段结束时,组织第三方专家依据软件规格说明书对软件产品进行审查,及时发现问题并在交付之前解决。

  1. 软件项目风险管理

软件项目风险管理需要对风险进行识别、评估和控制。主要流程为识别出不确定因素和其可能对项目产生的影响及后果,对各个风险根据影响程度逐一评级,再从整体去评估风险,并确定好合适的风险应对策略从而达到控制、管理风险的目的。

在软件开发过程中提前识别和规避风险能起到稳定“民心”和增加团队集体意志力的作用,使团队能从容地化解突如其来的风险,并将损失降到最低。

      1. 风险管理中出现的问题

目前我国大部分软件企业体量并不大,这些软件企业在具体的软件项目开发过程中的风险管理工作通常只是走个过场,甚至有的项目经理都没有风险管理的意识,对于风险管理工作漠然置之,制定的风险管理措施也都十分空洞、没有实质性内容。这将导致当项目中出现真实风险时没有有效的措施进行应对,以至项目失败、企业利益受损。

      1. 风险管理问题的解决

软件开发项目的管理人员应当正确认识到风险管理的重要性,并在实践中使用多种风险管理方法和技术手段对各种风险因素进行有效控制。项目管理人员需要在项目初期采用Delphi法和故障树分析法(FTA)等风险分析方法进行详尽的风险分析,生成具体的风险来源表,对于每个风险制定相应的应对计划,通过规避风险来提高项目的成功率,对于超出项目组可控水平的风险应及时进行风险转移或直接终止项目。此外,还应当对整个软件项目过程进行风险控制和管理,从而尽可能地降低风险导致的损失,在保证企业效益的基础上安全平稳地完成软件开发项目。

  1. 结语:

在软件项目的需求不断扩大和软件系统的越来越复杂的情况下,计算机软件工程项目管理能够帮助我们在低成本下高效率地完成一个高质量软件项目,所以我们必须要提高计算机科学技术水平,重视计算机软件工程项目管理。同时,我们需要在实践中不断地预判、分析和总结各种风险,从而避免风险或者降低的损失。


参考文献

[1]周贺来.基于PMBOK的软件项目管理方法研究[M].北京.中国水利水电出版社,2017.

[2]Stepanek.项目管理之殇:为什么你的软件项目会失败[M].北京.机械工业出版社,2014.

[3]杰拉尔德·温伯格.质量·软件·管理——一阶测量[M].北京.清华大学出版社,2005.

[4]约瑟夫·朱兰.朱兰质量手册[M].北京.中国人民大学出版社,2003.

[5]Watts S.Humphrey.软件管理沉思录[M].北京.人民邮电出版社,2012.