软件开发是一项比较复杂的系统性工作,由于软件开发具有创造性和挑战性,使得软件行业在经济地位中永远走在相对高端的位置。这来源于较为多样化的软件产品,较为复杂的功能流程。在软件开发项目的实际管理中,总是会出现许多问题和困难,甚至面临最终的失败,我们要从这些管理中分析失败的原因,总结有益的经验教训,这对于今后的软件开发项目管理,起着关键的作用。
一、项目管理在软件开发项目应用的原因
目前,我国许多软件企业,无论是项目型企业,还是产品型企业,都还没有适合企业特点的软件管理模式形成。随着软件开发的深入,各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,应用到软件开发的项目管理日益受到重视。各软件企业都在积极将软件开发项目管理引入软件开发活动中,从而对软件开发实行有效的管理。有些企业自己制定了一些软件管理的相关规定来规范软件的开发过程,但是还是没有解决软件开发的根本质量问题,由于这些问题的出现导致了软件产品质量的不稳定,后期的升级维护有很大障碍,对使用者造成了严重的困扰,甚至会损害客户的个人利益。从概念上讲,软件开发项目管理是通过对人员、成本、质量、进度和风险进行分析和管理,从而使软件项目能够按照预定的成本、质量和进度顺利完成;实际上,软件开发项目管理的意义不仅局限于此。进行软件开发项目管理不仅有利于将软件开发工作人员的个人创造力转化成企业软件的研发能力,而且在很大程度上提升企业的软件创新能力,促进企业软件产品能够稳定发展,并逐渐走向成熟。软件开发是一项复杂的系统工程,牵涉到各方面的因素,实际工作中,经常会出现各种各样的问题,人员分配不合理、成本过高导致项目无法继续、质量太差、严重问题过多以及种种无法预料的风险,最终都会导致项目的失败。同时,随着软件开发队伍及开发规模的逐渐增大,软件开发不再是只需要几个人员就可以很容易解决的事情,这就需要对需求人员、开发人员、测试人员和运维人员制定制度来规范每个人的工作,同时进行规范化管理。需求人员需要利用自己的业务知识、软件项目系统功能解决方案,对客户提出的需求进行专业化的分析,给出合理的建议,充分避免返工和不必要的风险;开发人员需要进行专业分工,降低软件研发成本;测试人员利用各种自动化测试工具,在最短的时间内做出准确的问题分析,协助开发人员定位问题,确保软件产品保质保量的顺利上线;运维人员运用良好的沟通能力和谦和的态度做好售后服务,切实解决软件产品上线后用户的各种问题和困惑,保证良好的用户体验。
二、软件开发项目管理的流程
软件行业没有建筑工程等领域规范,是一个很特殊的领域,软件的发展具有很开阔的空间,而且目前软件开发项目管理理论和标准还在发展中,所以在项目管理中经验具有很重要的作用。
为实现软件开发项目管理的目标,使软件开发获得成功,需要对软件开发项目的范围、需要的资源、实施的成本,工程的进度、实现的任务以及可能存在的风险等做到心中有数。保证软件开发项目管理的所有信息贯穿于整个项目管理过程中,软件开发项目管理全过程包括项目初始、项目计划、项目执行控制、项目结束四个阶段,其中每个阶段之间是紧密相连的,这些阶段分别又包含多个不同的过程,而且反复循环、并行工作的情况也比较频繁。软件开发项目管理过程中各阶段之间的信息反馈和沟通要及时进行,在遵循项目组管理和团队间管理的同时,进行定期和不定期的沟通、协调和交流。
1、项目初始阶段的管理:软件开发项目管理的首要阶段需要确定项目的目标范围,包括开发商和客户双方的协议合同、软件产品主要需要实现的功能和这些功能所量化的范围、项目开发的周期等方面。同时,软件所配备的硬件运行环境、性能、稳定性、限制条件都必须同客户明确表明,以满足客户的要求。项目组要系统地阐述项目的范围,确定所要实现的软件系统的资料、功能、性能、目标及预期达到的效果,提出问题及充分描述问题,并进行成本的粗略估计,通过技术评估、经济分析,论证项目在资源、时间、效果、资金、实施方法和技术等方面的可行性。
2、项目计划阶段的管理:项目行动指南的基准是建立项目计划,其中包括对软件开发项目的初步估算、进度规划、人员的选择、设备配置、产品质量规划、风险分析等,是指导项目全面发展的路标。对软件项目的预算进行规划建立时,首先要为将来的评估提供参考,同时也提供一个控制项目成本的尺度,这是项目进度安排的依据,最终形成的项目计划书将作为跟踪控制的依据。软件开发项目计划是一个以指导项目执行和控制为原则的可操作的文件,用来协调所有其他计划。它体现了客户的需求,是软件项目跟踪与监控的依据,是开展项目活动的基础。编制一个好的项目计划需要不断修改、评审、优化、再评审、最后细化等,需要不断地对其进行完善,最终确立完整的项目计划。新编制出来的计划进度,如果达不到要求,就要对项目进行优化计划、资源调整、解决资源冲突,同时,要适当的调整被优化项目的工期、降低成本预算,最终降低项目的成本。无论是成本计划、进度计划、风险计划还是质量计划等,所有计划的管理和制订都不是独立存在的,所有计划要从全局角度出发,以整体思想为指导,消除管理的局部性,确保各项工作有机的协调、相互的配合进行,平衡各个目标的冲突。
3、项目执行控制阶段管理:一旦建立了项目的基准计划就必须严格按照计划执行,包括按计划执行项目和控制项目,以使项目在预算内按客户要求和进度进行。在这个阶段,项目管理过程包括测量实际进程,在与计划进程相比较后,若出现计划有不足,就需要整合人力和其他方面资源,监控项目性能,最终保证项目计划的实现。为了测量实际进程,需要掌握实际上已经完工或未开始的工作,对所有的资源消耗等都要有详细的了解,这些都很重要。如果实际进程与计划进程相比后,出现实际进程明显落后于计划进程、达不到要求、超出预算等方面的问题,就必须立即采取纠正措施,或者更正计划的不合理之处。以使项目恢复到正常轨道。
4、项目是一个集成过程,在实施过程中必须从大局出发,有一个宏观的项目掌控,当局部发生冲突时,项目管理者必须做出最后决定。一个系统是一个整体,系统元素彼此联系、相互影响,项目集成管理的目标在于对项目中的不同组成元素进行高效、正确的协调。在项目执行控制过程中,项目管理者需要制定一个可行的管理流程,对项目的范围、成本、进度、质量、风险等问题进行规范,以此来保证项目的顺利实施。
三、软件开发项目管理种常见问题
1、缺乏项目管理的系统培训:在软件行业中,过去几乎没有比较专业的人员担任项目经理,一般都是在技术上能够独当一面的员工被任命为项目经理,这些人往往在对项目管理方面不够专业,对管理知识比较匮乏。
2、项目计划意识不足:项目负责人对项目的整体计划和各个阶段的计划认识不足,因此制定总体计划时,许多事情都欠缺考虑,制定计划比较随意;在阶段计划进行的过程中,因为各种理由导致计划拖延,造成计划与控制管理无法衔接,最终导致进度无法有效的进行。
3、项目关系人问题:在软件识别阶段,由于项目需求人员对整体计划的制定、人员的确定及相关关系,对客户的工作职能缺乏了解,最终导致企业无法得到最终经权威客户代表确认的需求或完整需求;还有因为客户各个部门的负责人想法不同,对自己的观点不断进行改变,使得项目计划得不到统一,又要求项目要尽早完工,最终造成项目进度不断拖延,范围的不断蔓延,成本也越来越高。
4、沟通意识问题:在项目中一些重要信息没有进行有效及充分的沟通,在制定计划、情况通报、意见反馈、成果或技术问题等方面与负责人的沟通不足,造成每个人各忙各事,重复工作太多,产生很多不必要的损失。
5、项目组内分工协作问题:由于有时项目团队内部同阶段不同角色或各阶段不同角色之间的责任分工不够清晰,从而产生责任互相推卸、工作互相推诿的现象,有时同阶段不同角色或各阶段不同角色之间的责任分工比较清晰,但是各项目成员不愿意与他人协作,只顾完成自己那部分任务。这些现象都将造成项目组内部资源的损耗,从而影响项目进展。
四、解决对策
1、项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。
2、计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定的相关知识、技术、工具,加强对开发计划、阶段计划有效性的制定,同时进行事前事后的评估。
3、项目关系人管理应从项目启动时开始,项目经理及项目需求人员要分析项目关系人的构成情况,并通过沟通协调,研究最佳方案。
4、增强沟通意识,需求人员与客户之间进行充分沟通,便于了解实际的需求情况,能够尽快反馈所完成的功能效果图,让客户明确系统的实现情况;开发人员内部充分沟通,让新技术得以普遍的使用,让每个人遇到的问题能够及时的解决;测试人员和开发人员之间进行充分的沟通,利于将风险和隐患扼杀于项目的初始阶段;运维人员与用户之间进行充分沟通,方便尽快解决问题,了解系统需要优化的方向,从而提高系统的易用性。
5、项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时要强调不同分工、不同环节的成员应当相互协作,共同完善。
结束语:对于软件企业而言,对软件实施有效的软件开发项目管理,是一件很复杂的管理事务,合理有效的对软件开发进行管理,对企业的可持续发展有着至关重要的作用。对于软件行业来说,软件开发项目管理是企业重要的核心环节,需要所有管理者的共同协作。
参考文献:
[1]马丽.保险软件项目管理的常见问题及解决方案[J].金融电子化,2008,12:82.
[2]李子潇.软件项目管理常见问题及解决方案[J].吕梁高等专科学校学报,2009,01:59-60.
[3]郑海澎.浅谈软件项目管理中的常见问题[J].黑龙江科技信息,2012,13:12.
来源:信息周刊 2014年52期
作者:栾芳芳