软件研发项目之成功管理方法.doc
软件研发项目之成功管理方法 [摘 要 ] 针对企业软件研发项目的特点 ,并基于项目管理的内容和方法。通过对多个软件研发项目管理的案例进行研究剖析 ,得到让软件项目获得成功的可操作的项目管理方法 ,使企业能够有效提高软件项目的成功率和项目质量。 [关键词 ] 企业 软件研发项目 项目管理 1.引言 随着信息技术的飞速发展 ,软件数量越来越多 ,同时软件研发项目也面临爆炸式增长。如何开发成功的软件项目 ,也使项目管理显得越来越重要。由于软件项目的独特性和复杂性 ,使得很多企业在软件研发项目管理上存在诸多问题 ,导致软件的开发效率低下 ,成功率和项目质量不高。 2.软件研发项目问题剖析 首先 ,软件项目的独特性造成管理是影响项目成功的最大因素 ,而项目团队作为最重要的管理资源更是重要 ,但是许多项目团队往往没有专职的项目经理 ,下面成员角色和职责也很混乱 ,缺乏统一的产品研发领导小组 ,从而造成组织失效。同时团队缺乏 项目管理技能 ,项目经理也是凭借经验对项目进行管理 ,这种情况必然导致项目团队缺乏独特的创新和开发视角 ,很难写出极其稳定和优秀的代码 ,也就是项目质量很难保证 ,对项目成功造成巨大负面影响。 其次 ,软件项目的特点是渐进明晰的。在项目开发的初期很难估算项目的规模 ,所以造成很多软件项目很难在预定的费用和进度下交付。就我对几家公司的调查 ,完全按照最初的预定指标交付的软件项目只有 9%,说明比例是如何之低。当然原因就存在于企业对软件研发项目的需求定义不明确 ,没有很好的软件开发过程 ,对项目控制过程不重视 ,对软件需求变更和软 件风险缺乏应对力 ,这些都是影响项目成功的关键原因。 3.软件研发项目的成功管理方法 第一 ,要建立科学的软件项目管理的组织模式。 软件项目可以是一个单独的开发项目 ,也可以与产品项目组成一个完整的软件产品项目。如果是订单开发 ,则成立软件项目组即可 ;如果是产品开发 ,需成立软件项目组和产品项目 (负责市场调研和销售 ),组成软件产品项目组。公司实行项目管理时 ,首先要成立项目管理委员会 ,项目管理委员会下设项目管理小组、项目评审小组和软件产品项目组。项目管理委员会是公司项目管理的最高决策机构 ;项目管理小组对项目 管理委员会负责 ,一般由公司管理人员组成 ;项目评审小组对项目管理委员会负责 ,可下设开发评审小组和产品评审小组 ,一般由公司技术专家和市场专家组成 ;软件产品项目组软件产品项目组对项目管理委员会负责 ,可下设软件项目组和产品项目组。软件项目组和产品项目组分别设开发经理和产品经理。成员一般由公司技术人员和市场人员构成。软件项目组和产品项目组的主要职责是 :根据项目管理委员会的安排具体负责项目的软件开发和市场调研及销售工作。我们公司 Fam 项目的失败就是没有科学的软件项目管理的组织模式 ,所以科学的软件项目管理的组织模式的重要 性不言而喻 ,只要我们在做软件项目的时候做到这一点 ,就为项目的成功打下了良好基础。 第二 ,要做好项目人员组织和管理工作 ,即项目人力资源工作。 我们知道 ,软件开发中的开发人员是最大的资源。对人员的配置、调度安排贯穿整个软件过程 ,人员的组织管理是否得当 ,是影响对软件项目质量的决定性因素。所以在软件项目一开始 ,就要合理的配置人员。我们要根据项目的工作量、所需要的专业技能 ,再参考各个人员的能力、性格、经验 ,组织一个高效、和谐的开发小组。一般来说 ,一个开发小组人数在 5 到 10 人之间最为合适 ,如果项目规模很大 ,可以 采取层级式结构 ,配置若干个这样的开发小组。 在选择人员的问题上 ,要结合实际情况来决定是否选入一个开发组员。并不是一群高水平的程序员在一起就一定可以组成一个成功的小组。作为考察标准 ,技术水平、与本项目相关的技能和开发经验、以及团队工作能力都是很重要的因素。一个一天能写一万行代码但却不能与同事沟通融洽的程序员 ,未必适合一个对组员之间通讯要求很高的项目。还应该考虑分工的需要 ,合理配置各个专项的人员比例。例如一个网站开发项目 ,小组中有页面美工、后台服务程序、数据库几个部分 ,应该合理的组织各项工作的人员配比。对于 一个中型农技 110 网站 ,对数据采集量要求较高 ,一个人员配比方案可以是 2 个美工、 2 个后台服务程序编写、 3 个数据采集整理人员。 当然我们要对候选人员能力进行评分 ,达到一定分数的则可以考虑进入开发组。另外在决定一个开发组的开发人员数量时 ,除了考虑候选人素质以外 ,还要综合考虑项目规模、工期、预算、开发环境等因素的影响 ,同时在组建开发组时 ,还应充分估计到开发过程中的人员风险。由于工作环境、待遇、工作强度、公司的整体工作安排和其他无法预知的因素 ,一个项目尤其是开发周期较长的项目几乎无可避免的要面临人员的流入流出。如 果不在项目初期对可能出现的人员风险进行充分的估计 ,作必要的准备 ,一旦风险转化为现实 ,将有可能给整个项目开发造成巨大的损失。以较低的代价进行及早的预防是降低这种人员风险的基本策略。具体来说可以从以下几个方面对人员风险进行控制 : a.保证开发组中全职人员的比例 ,且项目核心部分的工作应该尽量由全职人员来担任 ,以减少兼职人员对项目组人员不稳定性的影响。 b.建立良好的文档管理机制 ,包括项目组进度文档、个人进度文档、版本控制文档、整体技术文档、个人技术文档、源代码管理等。一旦出现人员的变动 ,比如某个组员因病退 出 ,替补的组员能够根据完整的文档尽早接手工作。 c.加强项目组内技术交流 ,比如定期开技术交流会 ,或根据组内分工建立项目组内部的开发小组 ,是开发小组内的成员能够相互熟悉对方的工作和进度 ,能够在必要的时候替对方工作。 d.对于项目经理 ,可以从一开始就指派一个副经理在项目中协同项目经理管理项目开发工作 ,如果项目经理退出开发组 ,副经理可以很快接手。但是只建议在项目经理这样的高度重要的岗位采用这种冗余复制的策略来预防人员风险 ,否则将大大增加项目成本。 e.为项目开发提供尽可能好的开发环境 ,包括工作环境、待 遇、工作进度安排等等 ,同时一个优秀的项目经理应该能够在项目组内营造一种良好的人际关系和工作氛围。良好的开发环境对于稳定项目组人员以及提高生产效率都有不可忽视的作用。 第三 ,一定要做好软件项目的控制。 对于软件开发项目而言 ,控制是十分重要的管理活动 ,也是项目的成败所在。软件质量保证 (SQA,Software Quality Insurance)和软件配置管理(SCM,Software configuration management),包括软件风险分析都是软件工程控制活动的一类。而进度跟踪则起到连接软 件项目计划和控制的作用。技术评审更是可以提高软件项目的成功概率 ,因为在开发大型软件过程中所犯的错误绝大数是规格说明错误或设计错误 ,而正式的技术评审发现这两类错误的有效性高达75%,因此技术评审也是非常有效的软件质量保证方法。软件配置管理(SCM,Software configuration management)则是应用于整个软件过程中的保护性活动 ,它是在软件整个生命周期内管理变化的一组活动。也就是说 ,我们把软件项目质量保证和配置管理做好 ,也就做好了软件项目的控制工作 ,也就为项目的成功打下了良好的基石。 4.结语 软件研发项目的完成是项相当复杂的工作 ,为了能够最大化的避免项目的失败 ,让软件项目走上成功之大道 ,那我们就要未雨绸缪 ,以正确理念为指导 ,使用有效的项目管理方法 ,正确建立项目团队 ,恰当使用资源 ,做好项目控制。只有这样 ,才是企业软件研发项目良性发展的重要保障。