积极将软件项目管理引入开发活动中
Pick to: introduced petrifaction enterprise software development project management features and the status quo, and the software development of the project management is suggested.
摘 要:介绍了石化企业软件开发项目管理的特点及现状,并对软件开发的项目管理提出了建议。
关键词:项目管理;软件开发;建议
项目管理,是指在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求[1]。这指出了项目管理涉及的范畴和要达到的目标。
1.石化企业软件开发项目管理的特点和现状
软件开发不同于其他产品的制造,软件的整个过程都是设计过程(没有制造过程);另外,软件开发不需要使用大量的物质资源,而主要是人力资源;并且,软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。基于上述特点,软件项目管理与其他项目管理相比,有很大的独特性。这种独特性表现在软件项目管理的一些困难,在石化企业具体表现为以下几点。
(1)项目需求变化难于把握 客户的要求也即项目的需求往往是不明确的,也很难用统一的标准来衡量。
(2)过程难于控制 常常是直到项目快结束时才知道可否按时完成。
(3)任务难于量化,计划可行性差 软件产品较难衡量,常常是靠感觉进行。项目经理对风险缺乏充分的考虑,造成计划可行性差。
(4)版本管理混乱,项目间可继承性差 各个项目组间彼此独立,重复开发多。
(5)缺乏可共同执行的标准 公司没有统一的标准,各项目组各自为阵,成员在不同项目时遵守不同的标准,导致无所适从。
综上所述,软件开发过程常常处于无序状态,较难监控。但是,印度就有不少软件企业的开发是规范的,可以管理的。也正因为如此,印度成为世界上最大的软件输出国。一般来说,印度的软件公司从以下几个方面来对开发项目进行管理:①项目生命周期;②项目进度管理;③项目规模的估计;④软件质量控制;⑤软件配置管理;⑥风险管理;⑦项目计划、监督及控制。
从软件工程的角度讲,软件开发主要分为6个阶段[2]:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段。不论是作坊式开发,还是团队协作开发,这6个阶段都是不可缺少的。国内许多公司根据实际情况,在进行软件项目管理时,重点将软件配置管理、软件质量管理、软件风险管理及开发人员管理4个方面内容导入软件开发的整个阶段,来管理软件开发的整个过程。
2.石化企业软件管理项目实施要点
不同的企业用的标准不一样,不同的项目经理管理的方式也不一样。石化企业在组织软件开发、实施项目管理时主要从下面几点去体现。
2•1 合理配置人员
首先软件开发是一项长期艰苦的工作,所以一个团结、协作的团体才能在规定的时间内完成一个质量上乘的软件项目。所谓合理配备人员应包括按不同阶段适时运用人员,恰当掌握用人标准。一般来说,软件项目不同阶段、不同层次技术人员的参与情况不一样。如人员配置不当,很容易造成人力资源的浪费,并延误工期。特别是采用恒定人员配备方案时,在项目的开始和最后都会出现人力过剩,而在中期又会出现人力不足的情况。为开发人员创造出一个人尽其才的环境也是项目成功的重要环节,针对每个人不同的特长,根据项目的具体环境和条件来合理安排人员在恰当的岗位上。
2•2 严格执行软件开发规范
软件开发需要严格按照软件规范实施。用手工作坊式的方式来开发软件,其结果必然失败。从项目的用户需求分析、系统分析、编码、调试、测试、发布都需要一步一步完成,不能轻视或忽略任何一个步骤。前部分没有完成好,不要贸然进行下一步。越是项目起步阶段,越是要注意按照规范进行。
特别需要重视软件开发中文档管理。那种认为只要产品做出来可以运行,何必花费许多精力去做文档的观点是错误的。没有文档会带来很多问题。用文档去引导开发过程,抛弃随心所欲的开发模式,就像工厂工人师傅按照图纸生产零件一样,否则很可能会得到次品甚至是废品,给后来开发者留下一堆没有意义的“垃圾”产品。文档应该是开发中某一阶段结束的标志,每个阶段后都需要提交相应的文档,而且要确保文档的质量。确保文档质量的最有效方法就是评审,提交文档后,项目负责人组织相关人员对该文档进行审核,在充分讨论的基础上进行文档的重新修改和审核直到满足项目要求。文档应该是贯穿整个过程的主线,在不同的阶段需要不停地对文档进行完善,使之真正成为全体项目人员的智慧结晶。
2•3 重视测试,正确实施测试程序
测试是软件开发中容易忽视的问题,许多人认为开发的主要工作是编码。实际上,在没有严格执行开发流程的开发活动中,测试可能是惟一能确保软件质量的方法和手段。而越是松散的项目,越轻视测试活动,既没有固定的测试组织,又没有程序员间的交叉测试,更没有考虑过有效的测试流程和方法,软件质量完全建立在对程序员能力信任的基础上,这是很不安全的。
测试是对软件产品质量的检验和评价。它一方面检查软件中存在的质量问题,同时对产品质量进行客观的评价。一般把发现的错误bug(也称为缺陷defect)按严重性分为4类:死机(系统崩溃或挂起)、致命(使系统不稳定,或破坏数据,或产生错误结果,而且是常规操作中经常发生或非常规操作中不可避免的)、严重(系统性能或响应时间变慢、产生错误的中间结果但不影响最终结果,如显示不正确但输出正确)、一般(界面拼写错误或用户使用不方便)。也把发现的错误按优先级分为3种:高、中、低。一般是某错误对用户接受或使用影响越大其优先级越高。
要完成严格的测试,就必须建立规范的系统测试流程,有专人负责执行,而且开发人员要积极配合,不要认为测试人员是在给自己找麻烦。测试人员查找的错误可能是程序员无法发现的错误。另外,在系统测试阶段,测试小组要进行一些常规内容测试(如Y2K测试、病毒检查、裸机测试、加密检查、说明书检查等),并按要求写入测试方案中。测试应该在现实的环境中进行。所谓现实环境就是与用户实际使用的环境相同或相近,因为开发环境和用户使用环境有很大区别的,而开发的产品最终是要交给用户使用的。如果没有办法模拟用户环境,则程序员可能必须自己开发一些模拟程序来模拟现实环境。特别是与硬件配合的项目,因为在程序调试时硬件可能没有完全完成,这时就必须开发模拟硬件的程序,否则开发的进度可能无法保证。
2•4 合理制定项目计划,进度安排
软件项目管理过程开始于项目的计划。在做项目计划时,第一项活动是估算。现在已经使用的技术是时间和工作量的估算。因为估算是其他项目计划活动的基石,而且项目计划又为软件工程过程提供了工作方向,所以不能没有计划就着手开发,否则就会陷入误区。软件项目的进度安排主要是考虑软件交付用户使用的这一段开发时间的安排。进度安排的准确程度可能比成本估计的准确程度更重要。软件产品可以靠重新定价或者靠大量的销售来弥补成本的增加,但进度安排的落空会导致市场机会的丧失或者用户不满意,而且也会导致成本的增加。因此,在考虑进度安排时要把人员的工作量与花费的时间联系起来,合理分配工作量,利用进度安排的有效分析方法严密监视软件开发的进展情况,以使得软件开发的进度不至于被拖延。
在做进度安排时要考虑的一个主要问题是任务的并行性问题。当参加项目的人数不止一人时,软件开发工作就会出现并行情况。因为并行任务是同时发生的,所以进度计划表必须决定任务之间的从属关系,确定各个任务的先后次序和衔接,确定各个任务完成的持续时间。另外还应注意关键路径的任务,这样可以确定在进度安排中应保证的重点。
3.结 语
目前,中国的项目管理还是一个尚待开发的领域,很多项目管理人员都在实践中不断摸索和思考。各软件企业也在积极将软件项目管理引入开发活动中,对开发实行有效的管理。现在许多的软件企业开始学习和借鉴国外的先进管理经验。如果对人员的合理配置、合理制定开发计划、严格执行软件开发规范和重视软件测试这4个方面加以重视,软件开发项目将会取得较好效果。
参考文献
1.陈松桥, http://www.51lunwen.org/ 任胜兵,王国军.现代软件工程[M].北京:北方交通大学出版社, 2002. 8~16
2.范军,康晓东,刘积仁.软件开发项目管理[M].北京:人民邮电出版社, 2002. 6