针对软件项目管理的流程分析和设计探究
2013-09-30吴宗东
吴宗东
[摘要]鉴于在软件项目开发和项目管理中存在复杂性、不确定性以及不可预见性,在研究了人一系列关于软件项目管理流程方法以及软件项目设计的运作过程的答题程序之后,结合对各阶段流程的着手条件、关键工作过程以及最后结果,在本文章对在软件项目管理的流程分析和设计中存在的一系列问题做了较为详细的阐述、分析并提出建议。经过分析软件项目开发的特点,针对软件开发项目的高失败率的特性,通过对软件项目管理方法的研究,提出了软件项目开发过程的一种管理流程和相应的子流程,实现了对软件项目控制和管理。
[关键词]软件项目;设计管理;流程
[中图分类号]TP31 [文献标识码]A [文章编号]1672-5158(2013)06-0076-01
1 何为流程及在软件项目管理中的作用
1.1 软件开发的目的
在进行软件项目开发活动中,要实现很多目标,比如关于项目的范围、成本、时间以及质量等,项目协调也是要完成的目标。项目协调可以满足项目参与者和利益相关者的要求,伴随软件规模和它所涉及领域的扩展,软件项目管理变得越来越复杂,大大的增加了管理难度,造成这结果的主要因素是不能管理其过程如果管理项目在无纪律混乱的情况下,那么项目组织就很难总结出好的管理方法和工具,就更不用说从中获益了。管理严谨的好处不仅能够就检查和改进在阶段内出现的偏差,还可以及时的终止项目。甚至还可以避免人才的来去带来的负面影响。如果想要有效的对过程进行控制,就不得不对项目管理流程更加明确。
1.2 软件项目的构成
一系列活动有机构成流程。而个人与团体构成基本活动,基本活动的构成不需要来自其他活动的转换。流程的每个活动间都有着自己的独有的流向,在流程过程中包含着明显的开始与结束,所以这是一个非静止的概念。从结构方面可以看出,流程由四个基本因素构成:活动及活动的逻辑关系、承担着、实现办法。流程管理所包含的不但有管理技术,还有现代管理的理想,以前的职能管理凭借的是控制、塔式组织。但随着时间的推移其已经不能适应市场竞争和当今企业的发展需要,以分工理论为主的管理理论已经使用了几百年,目前又返回到系统和整合上面。
1.3 软件项目生命周期的一系列的开发过程是各种各样的流程活动
软件项目是由各种各样活动流程活动组成的,具体包括如下,软件项目的计划编制、系统分析、概要设计、详细设计、程序编码、测试与维护等活动过程都属于流程活动:制定软件项目管理流程,当我们在制度项目管理流程过程中,要着重考虑一下几点:(1)流程的制定可以将项目逐步引至成功,(2)流程的制定可以适应软件的开发,(3)流程的制定对项目开发可以起到指导作用,(4)流程制定是使用流程图表示的,可以让每个参与者都能够清楚的明白管理过程与开发过程之间的关系,(5)流程过程中的参评要有明确的定义、标准和方法。
2 软件项目管理大体过程设计
2.1 软件项目管理的构成
软件项目管理过程大体可以分为以下几部分:项目构思、项目立项、签订合同和执行合同。可以使用P1、P2、P3、P4、P5代替。同时也可以划分为五个里程碑,分别是:完成立项、签订合同、定义功用、产品开发、投入市场,可以用TM1、Tm2、Tm3、TM4、TM5代替。
2.2 软件项目管理的流程分析
项目管理的大体流程分析,项目搜寻是项目开始的前提,其阶段主要任务包括收集市场信息、客户需求、以及潜在的需求。项目立项阶段就是可行性的研究阶段,就是讨论成本与效益的可行性。项目售前阶段是项目立项与签订项目合同的这段时间,主要任务包括以下几个方面:做好与客户介绍交了的计划、对产品的销售对象要有一个比较全面的了解以及客户对项目感兴趣的原因和对产品的要求。合同生成阶段要做的是对项目方案的比较与相关的政策法规的认识,以及对合同的评估以及签订合同。合同执行阶段是项目管理流程的重要环节,主要包括软件的开发、测试、验收、系统的维护等过程。
3 软件项目失败的原因和软件项目管理方法的探究
3.1 软件项目失败的原因
我们可以从目前国内外的软件行业企业可以看出,“软件危机”的影响仍持续着软件行业。软件项目的实施情况也总是很难令人满意。经过研究发现,软件项目之所以会失败的原因主要有以下两方面:一是应用项目发展难以控制;二是项目管理者对项目管理工作的认识掌握还不成熟。实践证明,缺乏有效的项目管理是致使软件项目失控的直接原因。
3.2 制定项目的任务
软件项目计划的主要作用是用来协调其他计划的,协调的目的是为了指导控制和执行可操作文件。它这是对客户需要的理解表现,是开展项目活动的开始,也是开展其他工作的依据,项目计划由全局计划和下属计划构成。在下属计划制定时,项目经理必须遵循的原则是:谁负责那一部分工作,那部分的计划就有谁来制定,项目经理只需审批就行。
3.3 开发过程的制定
软件开发之所以存在较大风险,最主要原因是软件过程能力低,这是因为管理软件过程十分困难,为此就非常有必要在软件过程的控制和管理方面加强。不同的软件项目有着不同的过程,虽然项目计划与执行是互相交叉的,其主要部分是相似的,但是不同的项目的每个过程它所包含的具体活动是差之毫厘谬以千里,而且由于不同的制定者所使用的开发技术和技术路线的不同,所导致的侧重点就不可能相同了。项目经理在计划制定前就必须根据开发软件的实际情况,建立一个稳定性好、可控的软件开发模型。
3.4 加强过程控制
软件项目的开发和实施总是处于动态之中,这种动态是持久的、永恒无止境的,世上不存在静止的软件项目。需求、技术、系统结构、代码都会发生变化,就算是连环计都会发生变化,项目经理在做好了计划和准备后,最重要的任务就转换到过程的控制上来了。过程管理和变更控制是过程控制的主要部分。配置管理是一个软件项目能否顺利执行的前提。在软件开发过程中比如会出现很多的附加产品,比如代码、一系列文档、数据等等,这些产品是有用的。而且随着软件项目的改变这些产品都会发生变法生产出不同的版本,试想一下,如果配置管理失效,项目工作人员势必会深陷配置项的“泥潭”。很明显我们应该加强项目过程的任何部分细节。
4 结束语
在本文设计的软件项目管理总体流程及相关技术,目前已经十分成熟了,在软件项目的研发和管理中已经大量的采用了。流程管理在软件项目管理中的使用,降低了软件项目管理的复杂性,增加了软件项目的成功率。事实也证明,根据企业和项目的实际情况,制定软件项目的实施步骤,确定产品的用处,指明各阶段的开始条件和终止条件,进行有效的流程控制与管理,这样将会极大的提高了软件开发的效率和降低项目的失败率。
参考文献
[1]罗铁清,王如龙,软件项目管理的研究及在项目开发中的应用,项目管理技术2005,3:66-70
[2]刘宽宏,殷人尾,基于GMMI的过程和产品质量保证模型,计算机工程,2004,30(15):75-77
[5](美)凯西,施瓦尔贝,IT项目管理,王金玉,时郴译,北京:机械工业出版社,2002
[4]张益林,王如龙,基于WEB的工作流技术在工程项目管理系统中的实现,科学技术与工程,2005