搜索 | 会员  
软件研发项目管理中的问题及策略研究
来源: E-Works万方数据   作者:马宝华  日期:2009/7/30  类别:研发管理  主题:  编辑:德仔
1 软件研发项目管理及其特点 随着信息技术的飞速发

1 软件研发项目管理及其特点

    随着信息技术的飞速发展,软件数量急剧增大。软件产品的规模也越来越庞大。软件开发开始作为一个项目运作,因此软件研发项目管理显得越来越重要。也开始受到软件开发行业的重视。软件研发项目管理最早源自于20世纪70年代中期。当时发现70%的软件项同是因为管理不善引起的,而并不是因为技术实力不够,进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部。就广泛意义而言,项同管理是在一定的约束条件下,以高效率地实现项目的目标为目的,以项目经理个人负责制为基础,以项月为独立实体进行经济核算,按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动,保证项目按照预订的成本、进度和质剧顺利完成。软件因其复杂性和难以度屠,使软件项目管理较之其他项目管理而占有其特殊性。首先,软件是知识产品,进度和质垦都难以度量,生产效率也难以保证。其次,软件系统的复杂程度也是超乎人想象的。例如,宇宙飞船的软件系统源程序代码多达2000万行,如果按过去的生产效率一个人一年只能写1万行代码的话,那么需要2000万人年的工作量,这是非常惊人的。正因为软件如此复杂和难以度量,软件研发项目管理的发展还很不成熟。

2 软件研发项目管理中的问题

    软件开发技术、方法不断更新换代,软件开发过程与软件工程方法也得到不断地改进,现代项目管理方法也开始进入到软件研发等高科技领域。但即便是这样,软件研发项目管理不善的问题仍然存在。据美国软件工程实施现状的调查,软件研发的情况仍然很难预测,大约只有1O%的项目能够在预定的费用和进度下交付。在商用软件产业中,这一现象尤为严重。软件项目失败的原因是多方面的,如:需求定义不明确;缺乏一个好的软件研发过程;没有一个统一领导的产品研发小组;子合同管理不严格;没有经常注意改善软件过程;对软件构架很不重视;软件界面定义不善且缺乏合适的控制;软件升级暴露了硬件的缺点;关心创新而不关心费用和风险;军用标准太少且不够完善等等。在关系到软件项目成功与否的众多闪索中,需求变化和风险管理,软件开发规模估算、项目规划、进展控制等都是与项目管理直接相关的因素。因此,找到相应的策略和解决办法意义至关重要。

3 软件研发项目管理策略

3.1 需求开发与管理

    需求开发与管理是软件项目中一项十分重要的工作。软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望,通过对应用问题及其环境的理解与分析,为问题涉及的信息、功能及系统行为建立模型,将用户需求精确化、完全化、最终形成需求规格说明,这一系列的活动即构成软件开发生命周期的需求分析阶段。通俗的讲,“需求”就是用户的需要。需求工作对软件项目能否最终实现有至关重要的影响。据调查显示在众多失败的软件项目中,由于需求原因导致的约占到45%。因为,在项目开发工作中,很多人对需求的认识还远远不够,从小到儿十万元,大到上亿元的软件项目的需求都或多或少的存在问题.有的是开发者本身不重视原因、有的是技术原因、有的是人员组织原因、有的是沟通原因、有的是机制原因。另外,由于需求分析的参与人员、业务模式、投资、时间等客观因索的影响和需求本身具有主观性和可描述性差的特点,闪此,需求分析工作往往面临着一些潜在的风险。如:用户不能正确表达自身的需求;业务人员配合力度不够;用户需求的不断变更;需求描述的多义性,忽略了用户的特点分析等等。因此,需求分析可以说是软件项目开发中最困难的一项工作,对于开发小组的使用成员(包括用户)来说,需求确定是极具认知性和创造性的活动。它不仅要求分析人员具有丰富的需求分析经验和良好的专业素质,还要求分析人员具有良好的学习能力、公关能力、语言能力和组织能力。在实际工作中分析人员要面对不同的单位、不同的部门、不同的人员、不同的文化、不同的关系、不同的管理水平等等不同的情况。

    需求分析是介于系统分析和软件设计阶段之间的重要桥梁。要想做好需求工作,首先要对其有正确的了解和认识。做好软件需求开发是一项系统工作,而不是简单的技术工作,只有系统的了解和掌握需求的基本概念、方法、手段、评估标准、风险等相关知识,并在实践中中加以应用。才能真正做好需求的开发和管理工作。其次,要想做好需求工作还需要建立一个有效的工作机制,只有建立了工作机制,才能保证需求工作按照既定方案执行,需求开发和管理的参与者才会在一种有序的状态下工作。这佯才会充分运用工作机制和个人能力去获取问题、分析问题、编写需求文档和进行需求管理。

3.2 软件研发项目的控制

    为了保证项目按照预期的项目目标进行,必须对项目的运行情况和输出进行持续的跟踪监控,收集各种项目进展信息,对收集的信息进行分析,与预期的项同同标进行比较,这就是项目控制。项目控制的重要性可以用著名的“破窗理论”来说明。美吲政治学家威尔逊和犯罪学家凯林挺出了一个“破窗理论”。他们认为:如果有人打坏了一栋建筑上的一块玻璃,又没有及时修复,别人就可能受到某些暗示性的纵容,去打碎更多的玻璃。久而久之,这些窗户就给人造成一种无序的感觉。结果,在这种麻木不仁的氛围中,犯罪就会滋生、蔓延。“破窗理论”在社会治安综合治理中的作用是显而易弛的,在项目管理、项目控制中也有着重要的借鉴意义。许多人认为,这样做太简单,芝麻小事,没有什么意义,而且兴师动众,没有必要。但是一个软件开发项目是否能够保证按照计划的进度质量成本完成的一个重要标志就是项目能否进行“防微杜渐”的控制。这是“破窗理论”在项目管理领域中的一个直观的体现。

    项目的特点是渐进明晰的。在软件开发类项目的初期,规模估算是很难准确量化的。有时,尽管已经尽可能明确制定了项目目标,并以此为目标制定了尽可能周密的计划,如果没有对照项目计划进行严密的监控,并及时调整计划,不断使计划明晰化并符合实际,以尽可能地保证项同按照基准计划实施,并使计划的变更尽可能地减少,那么项目就很难达到原先计划中制定的目标。这些只标要同时兼顾进度、质最、成本。所以不仅要制定出好的项目计划,更要进行严密的项目控制。项目控制是项目经理的一项重要职责,也是项目管理部门、项目成员、项目干系人的重要职责。

    项目控制的基础是项目计划,项目计划的基础是项目目标。因此,项目管理的第一步是要明确项目同标。软件开发项目目标应该包括软件系统的范围、质量、进度、成本、市场或政治目标。其次,是根据目标分析自身的资源状况,资源包括人力资源,设备、资金、信息等。其实,对于项同开发类项目的成本主要就是人力。有了从项目规模估算的规模(工时)表推导出的人力投入情况表,项目经理可以很容易的算出项目的整体成本,也可以通过及时地释放人员来降低成本。在项目发生变更时,也能够快速得到项目成本变化的趋势,找到项目成本控制的办法,从而达到成本管理的目的。第三步是根据项目目标和资源约束来制定项目计划,然后就是项目计划的实施。在项目计划实施过程中要持续跟踪监控项目进展情况,并与项目计划比较,发现偏差,分析原因,及时采取纠正、预防措施,随时解决项目中需要解决的问题,包括项目团队的沟通和冲突问题。项目内外各种因素具有不确定性,同时项目相关环境中存在一定的干扰,因此项目的实施难以完全按照项目计划进行。出现偏差是小可避免的。良好的项目控制可以保证项目按照计划稳定地完成项目目标,就是说可以及时地发现偏差、有效地缩小偏差、迅速地纠正或预防偏差,使项目始终按照合理的计划推进。

3.3 “以人为本”的管理理念

    评判一个项目是否成功的标准除了在预定的时间内、预定的成本内,技术性能规格和功能上都达到了预定的目标以外,还应该考虑到一些“人”的因素,如项目的客户、公司的管理者、项目团队成员等主要的项目干系人对整个项目的满意程度如何等等,这即强调了项目管理中“以人为本”的管理理念。这里的人,主要指的是一些与项目有利害关系的一些人,一般包括客户或者用户、项目团队、项公司的管理层等一些主要的利害关系者。一个项目能否成功,很大程度上取决于能不能分清楚这些项目利害关系者各自对项目的影响,小能利用好这些人力资源,沟通协调好他们之间的关系。如果一个项目的项目成果虽然在技术和功能上达到了目标,但是却搞砸了公司和客户之问的关系,使公司失去了一个大的客户,或者因为自己项目团队问题,造成公司大批技术骨干人员流失。项目组成员怨声载道等,这样的项目能说是成功的吗?项目管理中要“以人为本”,主要就是要真正站在这些项目干系人的立场上,从他们的角度出发,使他们能够通过你的项目中实现他们的价值。如果项目经理能很好的利用这种“以人为本”的思想在项目管理中,并能把这种思想转化为项目团队的团队文化,团队成员也能以这种思想指导自己的工作,那么要实现项目的成功,肯定会容易很多。

    “以人为本”首先要以客户为本。要以客户需求,以客户操作使用的方便性作为指导产品开发、项目实施的原则。一切工作都要贯彻此原则。以客户为中心,不是被动消极的接受客户的意见,盲从客户。而是积极主动地引导客户,和客户达成共识。这需要处处想在客户的前面,真正的替客户着想,从客户的角度出发考虑问题。很多项目的失败都是因为项目的需求不确定造成的,而需求的经常变动大部分都是因为我们不能从客户的角度出发分析和发掘需求造成的。一个成功的项目应该很好的解决两个问题,那就是,我们可以帮助客户解决什么问题?我们能给客户带来什么价值”。只有从“我们可以帮助客户解决什么问题”这一点出发,才能更好的做好需求分析。做好整个项目的范围管理。“能给客户带来什么价值”也就是“帮助客户实现价值”。客户出钱让我们去给他们做项目,最终目的不是为了拥有这样的系统,而是想通过使用这个项目成果达成某种预期的商业目标。所以在项目管理过程中一定要让我们的系统能够给客户带来良好的收益。为了通过项目成果可以使客户的到最大的收益,就要在定位项目目标的时候能够充分考虑到客户的利益。所以以客户为本,充分考虑客户的利益,真正让客户通过项目实现自己的价值是使项目顺利进行和成功的重要保障。

    其次,还要以项目团队成员为本。软件项目中最主要的是人才、是团队合作精神。任何项月的成功都离不开一个好的团队。团队建设是项目经理需要关注的一个课题,把“以人为本”的思想用在团队的建设和管理中同样非常有效果。项目经理要相信自己用队的每一个成员,放手、放心地鼓励队员参与项目,培养每个成员的自信心,这样整个用队才有蒸蒸日上,勇往直前地气势和信念。正如孙子兵法云:“欲得其中,必求其上;欲得其上,必求上上”,否则不可能顺利达到目的。以项目团队成员为本,从项目团队成员的角度和他们自身利益上去思考问题。可以很快的增强明队凝聚力和团队的效率。团队分裂和骨干流失是项日的一个重大风险,会给我们带来惨痛的损失。有的项目经理虽然专业技术很厉害,也具备一定的管理知识,但恰恰缺乏团队建设能力,会使团队人际紧张,甚至分裂,从而造成项目动荡和失败。事实上如果项目经理能用好以团队成员为本这一思想,考虑项目组成员参加这个项目团队,最终的目的是什么,然后从根本上去分析从而解决问题。总之,坚持以人为本的管理理念,将会使项目的进行更加顺利,从更大的程度上保证项目的成功。

4 结论

    软件研发项目的完成是项相当复杂的工作。有时尽管编码工作看似在一天天进行,但临近尾声时期,各种积蓄已久的问题都不约而同地爆发了,如系统联调卡壳、Bug层出不穷,在测试时需要同时纠错,而事先没有预留这步工作的时间,安装打包工作没有进行,文档没有编制,这需要调整人员应急处理,而当时没有计划这部分工作。除了上文提到的几方面的问题和解决办法之外,有许多重要的因素影响着、制约着整个工程的顺利进展和成功。但无数的案例证明,在软件研发的过程初期,如果没有正确的需求分析和合理计划,在中期如果没有有效的控制,在整个管理过程如果没有正确理念为指导,都会导致软件研发工程的延迟或完全停止。没有计划,没有规则,没有控制的软件开发过程带来的只可能是无法预料的结果。因此项目管理对于以应用开发为主的软件企业是一个行之有效的管理方法,是促成公司项目和产品研发良性发展的重要保障。

德仔网尊重行业规范,每篇文章都注明有明确的作者和来源;德仔网的原创文章,请转载时务必注明文章作者和来源:德仔网;
头条那些事
大家在关注
广告那些事
我们的推荐
也许感兴趣的
干货