软件开发项目管理浅析

2016-01-01 02:20
无线互联科技 2016年11期
关键词:项目管理阶段软件

岳 鹏

(中石化洛阳工程有限公司,河南 洛阳 471003)

软件开发项目管理浅析

岳 鹏

(中石化洛阳工程有限公司,河南 洛阳 471003)

软件开发项目管理是对软件工程项目实施的项目管理。文章介绍了软件开发项目管理的特点,重点对软件开发项目的立项、实施、交付3个阶段的管理模式进行探讨,提出了一些针对性的管理方法和解决措施,旨在增强软件开发项目的过程控制,提高软件开发从业人员的管理水平。

软件开发;软件工程;项目管理

近些年来,信息技术和互联网技术在各行各业中发展迅速,软件产业随之兴起。人们为了追求更高的工作效率,开发出许多功能强大的软件产品用以替代传统的工作方法,从简单的成品软件,到复杂的定制开发,越来越多的人开始接触到软件开发工作,软件企业也如雨后春笋般快速成长。在软件开发项目的执行过程中,无论是用户还是开发人员常常会遇到各种各样的问题,使开发工作停滞不前甚至面临失败。这是因为软件开发是一项复杂的系统工程,它要求参与人员全面系统地了解软件开发项目的运作特点和关键要素,并在整个软件开发项目周期内保持对项目的控制,当遇到问题时给出合理的解决措施,将重复工作、错误工作的概率降到最低,需要有一整套完善合理的方法对一个软件开发项目进行管控。

1 软件开发项目管理的应用现状

随着信息化的发展,用户对软件的功能、适用性、成本周期的要求越来越严格,软件产品的标准化已经成为趋势,开发模式也向着模块化、流程化等具有典型工业化特征的方式转变,一个软件开发项目的投资越来越多,时间跨度越来越久,涉及的技术越来越复杂,随之而来的多种不确定因素对软件项目的开发周期、质量、效益等带来巨大影响,行业参与者们也越来越多地意识到软件开发项目过程管理的重要性。

软件开发项目管理,简单来说,就是运用一系列的知识、工具和技术,整合各种资源,通过项目参与各方的协作达到项目的建设目标,其根本就是对时间、质量和成本的管理。一些企业通过制定软件管理相关规定来规范开发过程,但是在实际运行过程中与理想情况还相差甚远。软件产品的开发进度滞后、质量不稳定、后期运维量大是困扰开发企业的难题。这是因为一些企业和开发人员在项目管理的过程中有着许多误区:首先缺乏专业的项目管理人员,软件项目负责人实施管理主要依靠技术和经验积累,缺少项目管理专业知识;其次在项目的规划阶段缺少纲领,制定的项目计划随意性大,细节考虑不周,无法进行有效的进度控制管理,导致出现工作进度滞后;沟通渠道和机制不完善,项目中的重要信息没有进行有效的流转和沟通,成员间各行其是,出现重复甚至无效的工作,造成不必要的损失;项目团队分工不合理,在不同项目阶段由于团队内部角色或工作流程的变化导致职责不明确,出现互相推诿的现象,造成内部资源损耗,从而影响项目进展;不重视风险管理,项目负责人没有充分意识到风险管理的重要性,甚至刻意淡化风险,面对风险时缺少对策,使得原本可控的风险演变成导致项目受损甚至失败的事件。

2 软件开发项目管理的目标

项目管理应用在软件开发项目中,最终的目标是使软件开发取得成功,既要满足用户提出的需求,又要实现开发企业的效益最大化。这就要求对软件项目的开发需求、资源配置、实施成本、进度节点、存在的风险等做到心中有数,要重点把握软件开发项目立项、实施、交付3个阶段的过程管理。

2.1立项阶段的管理

一个软件开发项目,最初都是由一个特定的需求引出的,需求就是指这个软件应该“做什么”而不是“怎么做”,需求确定与否,直接影响着项目后续的所有进程,甚至关系项目成败。需求确定一般分为两个阶段:需求定义与需求分析。

需求定义阶段主要包括以下工作:收集用户的需求并提交需求说明书的草稿;与用户一起验证收集到的需求;对需求进行跟踪,及时发现变更。在收集需求的过程中,管理者面对的往往是众多的实际用户,其中有高层管理人员也有基层操作人员,各人的立场不同,对软件功能的需求也不尽一致,有时还会将管理制度的缺陷夹杂其中,这是软件本身无法解决的问题,这时就需要对他们提出的需求进行过滤、筛选。最好的办法就是请用户设置一名项目负责人,将需求汇总到同一个人身上再反馈,这名项目负责人要有一定的权威,不但对本单位的工作较熟悉,也要对软件开发技术有所了解,必要时可以由软件开发团队对其进行一定的培训,这样既使海量的需求得到汇总,又可在用户层级对需求进行过滤。

在需求分析阶段主要包括以下工作:分析需求,确保收集的需求是明确、可用的;建立技术人员与用户之间的联系,使技术需求能有效覆盖用户需求;对需求进行分级,制定需求说明书;由用户来审核、批准需求说明书。

需求说明书作为需求确定阶段的最终产物,体现的是用户的最终意志,因此应使用通俗易懂的自然语言,清晰明确地阐述软件开发项目的目标。在需求确定阶段,要注意需求与项目预算是否相匹配,现有技术是否能够满足实现需求,并且对于某些可能会发生变化的需求要格外注意,为需求变更预留一定的预算与时间。

2.2实施阶段的管理

软件开发项目的实施过程阶段首先要完成对软件开发项目的预算估计、进度计划、人力资源配置、风险评估等,制订指导项目全面发展的路标。项目计划书作为项目管理的依据,是指导项目全过程的可操作的文件,它既体现了客户的需求,又是软件开发项目活动的基础,软件开发项目的预算规划是控制项目整体成本的尺度,是项目计划书的依托。一个好的项目计划书往往要经过不断完善和评审,通过资源调整、优化工期、降低预算等方式,才能具有强大的可执行力。

软件开发项目管理要严格按照项目计划书执行,确保在预算范围内,项目可以按照用户需求和时间进度执行。在这个过程中要制订实际进度的测量节点,将测量所得的实际进度与计划进度对比后,如出现滞后,就需要分析影响项目进度的因素,及时对人力和其他资源进行调整,必要时也可对预算进行调整,对项目运行全周期进行有效的掌控。在这个过程中,需要随时掌握确定已完成的工作,对下一步工作进行评估,看是否存在技术、预算的风险点,对于项目计划中的关键节点要制订专门的进度计划。软件开发项目在实际运行中总会出现意外问题,例如人员变动、预算缩减等,问题与风险不同,问题是在项目过程中提出的,是未能预料到的延缓项目进展的障碍,这也是任何项目都不可避免的。一个合格的项目管理者在面对问题时要客观、冷静,不纠结于划分责任,对问题进行主次分级,利用现有资源及时解决问题。

2.3交付阶段的管理

软件开发项目的产品交付,是整个项目过程结果的最终检验,交付阶段的重要环节就是测试和验收,这是保障软件质量并对项目管理成败给予评价的重要节点。

软件产品验收交付前必须要经过测试。测试的基本目标是检验软件产品是否按照原定的方式运行,在模拟的使用环境中是否存在可能的缺陷以及长期使用的可靠性。测试不仅仅是简单的程序运行,而是需要大量的真实数据来构成测试用例,为了达到尽可能暴露产品错误的目标,测试用例的数据内容应当具有普遍性和特殊性。这些数据都是在长期工作中累积起来的,软件开发企业很难获得众多行业内容的真实数据。这就要求用户要深入地参与到测试当中,给出使用体验并进行结果校验。要指出的是,测试并不是只在项目末期,而是贯穿于整个项目周期,使测试和程序开发同步进行,这样会提高发现错误的概率,及时对产品质量进行修正。测试的最终结果要形成完善的测试文档,这些文档是度量和评定软件质量的依据,也是项目团队最重要的工作成果汇报,为下一阶段软件产品的修改、发布和维护提供支持。

当软件测试完成后,就可以进行软件产品的发布了。发布阶段要建立完善的版本控制体系,要确保所有的程序都被集中存放并冻结,所有测试中发现的缺陷都已被修复,程序打包并通过测试,编码和文档(包含源代码文件、需求分析文档、测试文档、安装手册、使用手册、二次开发手册、产品信息文档等)全部集中入库,形成一个完整的交付物,由项目负责人按照合同约定的方式交付用户。交付后要根据用户的需求提供培训及维护服务,与用户建立良好的后期合作关系,不但有利于软件产品的运行,更有利于软件开发企业的持续发展。

3 结语

“制造有用的软件产品”是软件项目的根本,软件项目与其他工程项目相比,有很多独有特点。经过长期的知识积累,其已经总结出软件产品制造过程中的许多规律,形成了成熟的工业化方法。因此,当把项目管理应用到软件项目中的时候,必须遵循这一规律。在管理论中,十分重视管理者在相关领域中的专业知识,在不同的阶段利用相应的资源、采用适当的管理方法来适应产品的要求。软件开发项目管理体系也同样如此,需要更多的软件开发专业人士去学习项目管理理论,参与到项目管理之中。对于用户和开发者而言,这是一种变革。高效的管理将为用户节约成本,为开发企业增加利润。管理的水平高低终将成为衡量企业核心竞争力的重要标准。

[1]康一梅.软件项目管理[M].北京:清华大学出版社,2010.

[2]SOMMERVILE L.软件工程[M].北京:机械工业出版社,2015.

Analysis of Software Development Project Management

Yue Peng
(Sinopec Luoyang Petrochemical Engineering Co., Ltd., Luoyang 471003, China)

Software development project management is the project of the implementation of software project management, this paper introduces the characteristics of a software development project management, focusing on the discussion the management mode of three stage of the software project management:project establishment, implementation and delivery. It puts forward some corresponding management methods and measures, in order to enhance the process control of software development projects, improving the management level of software development professionals.

software development; software engineering; project management

岳鹏(1983-),男,河北临城,本科,中级工程师;研究方向:工程项目信息化,软件开发项目管理。

猜你喜欢
项目管理阶段软件
关于基础教育阶段实验教学的几点看法
禅宗软件
在学前教育阶段,提前抢跑,只能跑得快一时,却跑不快一生。
软件对对碰
大热的O2O三个阶段,你在哪?
两岸婚恋迈入全新阶段
谈软件的破解与保护