时间:2022-07-25 22:08:53
开篇:写作不仅是一种记录,更是一种创造,它让我们能够捕捉那些稍纵即逝的灵感,将它们永久地定格在纸上。下面是小编精心整理的12篇软件项目管理,希望这些内容能成为您创作过程中的良师益友,陪伴您不断探索和进步。
关键词:软件;项目管理;SW-CMM;模型;市场竞争力;企业
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)04-0113-03
在当前形势的影响下,一些中小软件企业在实际的发展过程中,由于对软件项目管理认识不足,导致在相关的产品质量管理方面出现了各种各样突出的问题。这些问题的存在,客观地说明了软件企业在发展过程中工作思路的不科学及对项目管理认识不清,阻碍了企业的正常发展。做好软件项目管理的基本工作,必须理解和掌握对中涉及的相关技术概念及基本原理,为后续工作的开展奠定良好地基础。SW-CMM软件项目管理模型,结合了项目管理的主要内容及软件的相关特点,有利于提升企业整体的项目管理水平,扩大自身的经营范围。SW-CMM体现了这个时代无数成功软件企业的研发能力和先进的管理理念,为相关中小企业的项目管理提供了一定的参考思路。
1软件项目管理的研究背景及意义
1.1软件项目管理的研究背景
软件项目管理主要针对的是软件行业。它是项目管理与软件行业结合的产物,对于软件行业工作效率的提高有着重要的影响。软件行业的生存和发展依赖于企业内部团体的研发能力,主要是通过相关技术人员彼此间工作的配合逐步实现的。软件项目管理为软件企业未来的生存和发展带来了巨大的推动力。SW-CMM又称软件能力成熟度模型。它最早诞生于20世纪80年代,是由美国的大学研究机构主持开发的。这种软件项目管理的理论体系庞大,内容比较丰富,涉及的范围也比较广泛。其本质上是一种先进的管理方法,主要应用与软件领域,体现的是管理方面的思想。通过对不同层次的内容指出了软件工作机制中控制活动所遵循的基本原则,为软件项目管理和项目施工提供了可靠的工作思路。这给软件企业处理实际问题带来了一些指导性建议,节约了研发人员的工作时间,加快了研发速度,为企业的整体发展带来了积极的推动作用。同时,作为一种参考标准,SW-CMM对于软件企业的预算管理有着一定地影响:对企业如何控制生产成本,实现利润最大化目标提出了具体的解决方法。相对国外比较成熟SW-CMM,我国在这方面的研究理论非常少,缺乏科学的参考标准,相应的软件组织更是很少,只有部分的中小组织。将复杂的SW-CMM理论体系变得简单化,是未来软件研究工作者需要完成的主要工作任务。
1.2软件项目管理的研究意义
软件项目管理直接关系着软件企业的生存和发展,是保证企业竞争力的重要措施。做好软件项目管理的研究工作,有利于提高软件产品的质量,扩大企业的生产经营范围。同时,这种管理理念和管理方法的实施,从根本上降低了企业的生产成本,为企业整体经济利益的增加带来了积极的影响。中小企业在软件项目的管理过程中一直存在着很多的问题,管理方法的不合理,管理机制的不完善,都阻碍着企业正常的发展。因此,做好软件项目管理的研究工作,对于软件企业整体的发展具有现实的参考意义。软件项目管理是决定软件企业战略部署的关键措施,这也客观地决定了开展软件项目管理研究工作的必要性。
2软件项目管理及SW-CMM的相关内容
2.1软件项目管理概念及特殊性的表现形式
软件项目管理主要是指企业通过对项目成本、施工进度、质量管理、人员配置方面的控制而开展的相关活动。软件项目管理对于企业技术人员的研发能力影响很想很大,也直接体现着企业整体的研发水平。软件生产技术相对较高的企业,其项目管理水平较高,综合的研发能力比较突出。软件项目管理的特殊性主要是指这种管理与其他项目管理的区别。主要表现在;1)思维上的独特性。软件项目是通过技术人员的思维能力逐步开展实施的,具有抽象性的逻辑实体。在具体的研发过程中相对比较自由,需要经过一定的研发时间才能获得最终的产品;2)组成结构的复杂性。这主要是指软件本身具有一定的复杂性。其复杂性包括:代码组成的复杂性和解决实际问题的复杂性。当软件在应用过程中遇到特殊的问题时,必须从程序的设计、实际的需求、研发角度等方面展开必要地研究,而这样的处理过程增加了整个工作机制的复杂性,使得整体结构的复杂性逐渐地体现出来;3)层次感鲜明。软件中某些符号存在着优先级,使得系统在处理实际的问题时,必须充分考虑优先级的高低,间接地使软件项目管理在某些应用方面的层次感非常鲜明,为相关工作的开展带来了极大的方便。通过这些不同的表现形式,可以清楚地看到软件项目管理的特殊性。
2.2SW-CMM的基本结构
当前形势下,国际上较为流行的SW-CMM主要分为软件能力成熟度模型和软件能力成熟度的具体实践。这两种技术报告有着不同的侧重点:前者是强调软件实施中的相关原则,主要是为了使软件能够朝着更高层次的方向发展,最后保持一定的成熟度。这种成熟度侧重于具体的过程。而后者主要强调的是不同级别实践过程中的成熟度,侧重于成熟度实现的途径研究。通过对成熟度内涵的分析,可以为软件实施做出一定的综合评估,以达到软件改进的最终目的。SW-CMM结构的基本原理主要是指:在具体的过程中通过各项实践活动的有效开展,可以实现关键过程的相关目标。这些目标象征着不同的成熟度级别。这也客观地体现出了SW-CMM结构中成熟度级别的高低是与一定过程内实现目标相关的。这为软件项目管理带来了重要的参考思路,也为软件实施过程中评估报告的评价指标指明了方向,给相关模型的构件带来了一定的参考依据。
2.3SW-CMM等级的研究
SW-CMM的等级主要包括五个方面:优先级、管理机、定义级、重复级和初始级。这些不同的级别反应了SW-CMM的基本结构特点,在实际的应用中有着特定的含义。五个级别的相关含义主要有:1)初始级。这主要是指软件的生产组织的起始阶段,基本没有形成真正的软件研发环境。无论是管理上还是具体的实践应用方面,都无法达到相关的设计要求;2)重复级。这一级别中的内容较丰富。主要是指它涉及的对象较多,包括人、物、组织及相关的信息传递。这种过程中信息之间的交流需要结合实际的情况随时地调整。应用、测量、研究、规范化、标准化等组成了一个严密的体系,对于软件项目管理起着科学的引导作用。所谓的重复是指在软件项目管理中可以对制度、合同、预定方案等方面重复执行。不同的项目允许在一定的控制范围内出现一些偏差。这主要是从局部的细节方面研究的。而从整体上观察,可以看出这些重复的行为基本的原理都是一样的。无论是参考标准还是项目控制管理,其中的某些过程中是可以重复的;3)定义级。这是软件研发的关键阶段。软件项目管理模型的形成涉及了软件工程和项目管理。在定义级阶段,需要制定相关的参考标准。这些标准的形成,为未来软件的使用进行了必要地规范,为软件的顺利实施指明了方向。这个级别所涉及的软件过程的特点主要是:规范化和互不排斥性。突出了软件工程和项目管理过程的相关特点。当软件进入生产阶段,需要对软件的整体框架、生产数量、生产质量等方面进行综合地管理;4)管理级。这一级别主要是为了做好软件产品的质量指标的制定工作。通过设置一定的质量指标,可以使软件生产组织的活动更加规范,为软件项目的质量控制提供了可靠地保障。当软件处于该级别时,软件实施及相关的评估报告有了一定的参考依据。通过控制软件的过程,对于可能出现的偏差进行随时地调整;5)优化级。该级别主要的工作内容是为了使软件的性能更加可靠,实际的应用范围更大,从而对软件进行持续地改进。通过相关的试验查找软件中的漏洞,并对实验数据进行全面的分析。最终的目的是为了使该软件在技术上和方法上有所突破。通过对SW-CMM不同级别的分析研究,可以清楚地看到软件的设计、制定及实施的过程是可以不断地改进的,这也是对应软件项目管理存在的意义。
3SW-CMM的软件项目管理模型分析与研究
3.1项目启动
项目启动是整个SW-CMM模型内的初始阶段,需要从项目的可行性、项目方案的制定与实施、资源配置管理等方面展开深入地分析。其中,项目的可行性分析主要包括三方面的内容:1)技术角度的可行性。主要是指技术的选择能否对市场风险起到一定的预防作用;2)经济角度的可行性。主要是指项目的成本预算是否合理;3)社会推广的可行性。主要是指项目在推广过程中是否合法,相关的操作方式是否合理。同时,项木启动也对具体的工作目标、整个项目的估算及项目立案的管理等方面做出了一定的说明。
3.2项目的整体计划
在整个模型中这部分的内容相对比较丰富,其中主要涉及了成本控制、风险规避、项目方案指导、工作步骤的有效分解及职责的明确等方面的内容。其中的工作步骤的有效分解可以起到对整个软件综合评估的作用。项目的成本控制可以通过多种方式达到预期的目的。主要有:相似项目的比较;专家团队的评估;算法模型的模拟及特殊的估计法等。对于一些规模较小的项目可以采用一些SW-CMM模型的建立进行相关地估算。
3.3项目的风险评估
无论是在项目的启动阶段还是后续的项目实施阶段,都必须对整个项目的工作机制进行的综合的风险评估。风险评估的过程有着相对完整的体系。主要包括:风险的识别、风险的分析等。利用风险评估体系对SW-CMM项目管理进行整体的评估,主要是从项目实施中三方面的内容展开的。由于软件工程项目在具体的推广过程中可能出现各种类型的风险,需要对项目的风险评估机制进行随时地修改。
3.4项目的实施与控制
这一阶段是项目取得成功的关键所在。由于项目在实际的实施过程中可能会遇到各种各样的突发状况,仅仅利用项目的风险评估机制很难对项目计划做到准确地预估,必然会导致一些偏差的存在。因此,利用项目的实施与控制的作用可以及时地修正这些偏差,保证整个项目能够顺利地实施下去。项目的实施与控制主要包括:需求管理、项目的全程监督及项目的有效控制。通过这些方面工作的开展,可以提高项目实施整体的工作效率。
3.5项目的维护与软件质量管理
当所有的项目结束后,需要开展相关的资料整理及项目验收的工作。项目的验收一般是通过用户的体验完成的。由于最终的软件主要是为用户服务的,用户的客观评价是对整个软件安全性能的最好体现。除此之外,也需要对项目中一些重要的资料进行及时的归档整理。并对相关的工作做出一定地总结。SW-CMM软件的质量管理包含着许多重要的内容。由于软件最终的应用与推广主要是针对用户与社会的,必须对软件的质量进行一定的管理,防止意外事件的发生。软件的质量管理主要包括:软件的综合评审、软件的性能测试、软件的漏洞、解决软件存在问题的方法。通过对这些方面的有效控制,可以保证软件的质量可靠性。
3.6软件的配置管理
作为SW-CMM的软件项目管理模型的重要支撑平台,软件的配置管理对于整个软件的生命周期起着至关重要的作用。软件配置管理主要是对软件生命周期内产品的变更及相关的演化过程进行一定地管理。它主要解决的问题是软件变更过程中的标识、变更过程的控制及最终的等方面的问题。最终的目的是为了使最终的产品在有效性、需求性及可控性等方面达到用户的实际的要求。
4结束语
SW-CMM软件项目管理模型在实际的应用中起着至关重要的作用,主要是因为它深入地分析了软件企业在项目管理工作方面存在的问题,并找到了科学的解决措施。这为软件企业未来的发展带来了积极地影响,使得企业在实际的项目开发中拥有了更多的选择。文中通过对SW-CMM项目管理模型实际应用的研究,为中小软件企业的发展提供了有效的策略。
参考文献:
[1]魏国兴.基于CMM的软件过程管理系统的设计与实现[D].北京:北京邮电大学,2010.
[2]张策.CMM/CMMI模型在成品油协同监管服务平台项目中的应用研究[D].长春:吉林大学,2011.
[3]周津衍.基于CMM的A软件项目开发过程改进研究[D].上海:东华大学,2015.
关键词:项目管理;Web;研究性学习;教学网站
Keywords:projectmanagement;Web;study;teachingwebsite
前言
软件行业是一个极具挑战性和创造性的行业,软件开发是一项复杂的系统工程,牵涉到各方面的因素,在实际工作中,经常会出现各种各样的问题,甚至面临失败。如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。
1.项目管理在软件开发中的应用的成因
目前我国大部分软件公司,无论是产品型公司还是项目型公司,都没有形成完全适合自己公司特点的软件开发管理模式,虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制问题。这样导致软件产品质量不稳定,软件后期的维护、升级出现麻烦,同时最终也会损害用户的利益。
随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,应用开发的项目管理日益受到重视。
2.软件项目管理常见问题及解决方案
(1)缺乏项目管理系统培训
在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理,被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。
解决方案:项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。
(2)管理意识问题
部分项目经理不能从总体上把握整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。有些项目经理没有很好的管理方法,不好安排的工作只好自己做,使项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。
解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。
(3)项目计划意识问题
项目经理对总体计划、阶段计划的作用认识不足,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。
解决方案:计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。
(4)沟通意识问题
在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。
解决方案:制定有效的沟通制度和沟通机制,提高沟通意识;采取多种沟通方式,提高沟通的有效性。通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如:除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。
(5)项目干系人问题
在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、工作职责等没有足够了解以至于无法得到完整需求或最终经权威用户代表确认的需求;或者是多个用户代表各说各话、昨是今非,但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。解决方案:项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。
(6)风险管理意识问题
有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。
解决方案:通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法,掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。
总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。
(7)项目团队内分工协作问题
项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任分工不够清晰而造成工作互相推诿、责任互相推卸的现象;有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰,但是各项目成员只顾完成自己那部分任务,不愿意与他人协作。这些现象都将造成项目组内部资源的损耗,从而影响项目进展。
解决方案:项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。
一、软件维护项目概述
1.项目背景上海证券交易所信息系统是上海证券交易所的核心系统之一,自1996年提出建设,经过需求探索、实施和完善,于1999年基本建成。整个系统覆盖了上海证券交易所信息中心、发行上市部、公司管理部、会员部、交易部、中证指数公司等多个部门的核心业务,与交易系统、监察系统、中登公司结算系统、券商、上市公司、上海证券交易所官方网站、报社等多方建立了复杂的数据接口。系统建成后,由于中国证券市场的迅猛发展和上海证券交易所新业务的拓展以及管理方式的改变等因素,信息系统需要根据业务和管理的变化进行相应的频繁调整,使之能够满足业务的开展。某些新业务的推出由于保密等特殊要求,还需要在限定时间内完成代码的变更上线。根据历史数据统计,整个信息系统每周平均需要进行1次以上的变更。
同时,由于上海证券交易所业务的特殊性,一个很小的差错就有可能引起市场波动,因此要确保系统变更的绝对正确。频繁的系统变更,给管理和系统安全运营带来了极大的挑战。为了适应业务的变更需要,降低运行风险,我们经过多年的摸索和实践制定了一套维护项目管理办法,从维护工作分类、软件生命周期模型选择、维护工作流程、工作量管理、工作汇报制度等方面进行控制,从各方面确保在控制维护费用的同时提高维护质量,确保在预算范围内高质量地完成维护工作,保障信息系统的安全可靠运行。考虑到运维支持的及时性和信息安全性,我们要求外包厂商的维护团队全部驻场维护,按照派出人员数和预计维护工作量两个方面进行合同费用控制。按照实际派出人员数和实际维护工作量进行合同费用最终结算。
2.工作内容在本项目中的维护任务主要为保障信息系统正常运行提供支持服务,配合业务变更对软件系统进行维护等,包括软件功能变更等开发维护、日常运维支持和一些临时性工作需求。根据风险控制等管理需要,我们将软件维护分为以下五类,不同的工作类别采用不同的管理手段。
(1)新增功能:在业务模块中添加新的业务功能或操作。
(2)功能变更:对已上线使用的业务功能进行修改、完善和扩充或变更、下线操作。以上两类一般需要修改源代码,明确需求后,经过严格软件维护项目管理方法上海证券交易所信息echnologyManagement的变更影响分析,按照开发流程实施,经过测试后上线。
(3)辅操作:分为数据相关和非数据相关两个部分,不涉及代码的修改,用于支持用户更好地开展工作或者进行开发的辅助工作。数据相关工作主要是配合用户的临时需求进行数据统计、回溯等工作。非数据相关工作包括用户账户开设、培训、应用软件安装等事务性工作。
(4)常规操作:周期性的系统运维工作,包括日常例行检查、日常维护操作等。
(5)应急处理:对各类因系统故障、软件功能缺陷等突发事件处理和应对,确保系统尽快提供服务,以免对业务开展造成影响。
二、软件维护工作管理
关键词:企业信息化 软件项目管理 风险 层次分析
1 软件项目管理论述
1.1 什么是软件项目管理
“软件项目管理”中所谓的“项目”指的是包含有多个不同活动的一个系统,其中的所有活动因具有相同的目标,使得它们之间产生了复杂的相互刺激、相互作用,从而使得此系统具有独特的功能。而“软件项目”说明这是一个与计算机或互联网挂钩的“项目”,这其中的所有活动都要在特定的时间、预算、环境、资源限定内完成。
而软件项目管理则是为了使这些由各种与互联网挂钩的活动所构成的系统,能够按照特定的环境顺利完成,对该系统的完成期限、人员、资源、进度、质量、风险等进行分析和管理的活动,该系统的最终目的是使得客户满意度以及公司获利度都达到最大化。虽然光靠管理还不能完全达到此目标,但软件项目管理无疑是一个催化剂,它有利于将开发人员的个人开发能力转化成企业的开发能力,从而提高企业的整体竞争力[1]。
1.2 软件项目管理和其他类型的项目
经分析,与其他项目的管理方式相比,软件项目的管理显然具有某些不同的特征[2]:
(1)不可见性
一个像盖房子或修铁路这样的具有型制品的项目,其每个阶段的进展,人们是可以直接看到的,而 “软件项目”的制造过程中,客户是无法每一步都看到的。这说明软件项目管理具有不可见性的特点,而想要了解软件项目管理,要考虑的是如何使其中的每一个过程都变得可视化。
(2)复杂性
大到航空母舰,小到一颗糖果,以及其他实体制品,每一块钱是如何花费的是可以看得见的。但是对于软件项目,如何计量钱花在这些软件产品上的多少,那就复杂的多了。
(3)一致性
传统的“制造者”一般都使用一些物理系统例如金属、塑料、植物或其他实体材料来进行作业。这些物理系统所包含的实体材料虽然也有一定的复杂性,但是它们都服从某些物理或化学定律。同样的道理,对于软件项目中的所有产品,软件开发者也需遵循一定的准则,比如他们的所作所为都必须与客户需求保持一致。
因此,虽然参加软件项目的制作与维护工作不只一个成员,可每个成员所做的最终成果都必须具有一致性,而这就需要管理者来协调和解决[3]。
(4)灵活性
软件可以被方便的改变,这是软件的长处之一。然而这也意味着,一旦有外部的变更,例如客户对软件的需求有所变更,或者当软件系统接入一个组织的系统时,这就期望改变软件来适应其他组件,而不是改变其他组件来适应软件。因而只要外界环境有变化,比如用户需求有变,软件系统就会经常被变更。
1.3 软件项目管理的内容
不论是个人还是公司团队协作开发,软件项目管理中的六个阶段:需求分析、概要设计、详细设计、编码、测试、安装及维护都是缺一不可的[4]。
在八十年代初,美国著名软件工程学者B.W.Boehm 总结出了七条软件开发过程中需要遵循的准则[5]。它们分别是:
1.采用用分阶段型的生命周期来严格计划管理;2.坚持进行阶段评审;3.实行严格的产品控制;4.采用现代程序设计技术;5.结果应能够清楚地审查;6.开发小组的人员应该少而精;7.承认并不断改进传统软件工程的实践性。
1.4 为什么软件项目管理很重要
首先是成本的问题。2002年至2003年,英国政府花费在ICT项目上的经费已经远远超过公路系统上的经费[6]。
非常不幸的是,投入经费再多,也不是每个项目都能成功。在2003年度的一份分析报告中,美国Standish Group通^分析13522个项目得出结论:只有1/3的项目是成功的;82%的项目延期,43%的项目超出预算。
从以上的案例可以发现,导致该项目失败的最大原因与项目管理缺陷有关。因此,要想使得软件项目成功、高效的进行,不仅仅要多投入,还要找到有效的管理方法,才能前后兼顾,运筹帷幄。
2 风险论述
2.1 风险的定义
在企业软件项目开发中,常常会出现超出预算延迟时间,甚至失败的可能性[7] [8]。不确定性导致了风险和潜在损失的发生。因此,风险通常被定量的表述为风险发生的概率与其可能引起的损失程度的乘积。Charette认为潜在的损失应该通过一定的方法进行推测,Kumamoto和Henley认为效用值也很重要。综合他们的看法可以得到分析风险的四要素:风险事件(what can go wrong)、风险概率(likelihood)、风险值(value)、效用值:
因此,软件项目管理中将会出现的各种不确定因素,倘若我们能够提前预测到风险,未雨绸缪,就可以最大限度减少风险的发生。这是风险管理中最有效的手段。
2.2 风险分类
根据软件项目管理内容,我们可以将风险分为:
(1)技术风险。
主要体现在影响软件生产率的各种要素上,比如:需求识别不完备、客户对需求缺乏认同、客户不断变化的需求、需求没有优先级、识别需求中客户参与不够、设计质量较低,重复返工、过高估计了新技术对生产效率的影响、对应用领域熟悉度不够、采用的开发平台不符合企业实际情况等等。
(2)管理风险。
比如:项目目的不明确、项目计划和任务识别不完善、项目组织结构降低生产效率、缺乏项目管理规范、团队沟通不协调等等。
(3)人员风险。
比如:人员素质低下、缺乏足够的培训、开发人员和管理人员关系不佳、缺乏有效的激励措施、缺乏项目急需技能的人员、团队成员因为沟通导致重复返工等等。
(4)商业风险。
2.3 风险管理的重要性
风险管理是属于未雨绸缪的范畴,因此,有效的风险管理可以避免企业在人员、财务、法律、社会责任以及投资方面的各种风险,从而减少企业必须要的损失,保证稳定的正增长的经营活动。因此对于最求稳步成长的企业来说,风险管理在整个管理流程中都显得尤其重要。
3 风险管理的过程
项目风险管理流程一般由若干个主体部分所构成,这些主体之间不仅有着相互作用的关系,而且与流程外的其他管理也会互相影响。不同的项目管理组织从不同的角度对项目风险流程进行划分。
风险管理的过程中,其各个阶段的关系,如图1所示。
3.1 识别风险
识别风险的步骤中最关键的一步是将不确定性转变为明确的风险。根据一系列方法来确定风险的类型,进而给出对策和建议。风险识别的过程如图2所示。其中风险识别的输入可以是项目的WBS、项目计划、历史项目数据、项目资源要求等信息。在识别过程中故障树、风险树等等都是常用的风险识别工具,项目风险的准确识别与否取决于组织决策者的知识与经验。
3.1.1 检查单法
项目识别最常用也是最简单的方法是建立风险项目检查表。如表3-1所示,为一个软件开发风险检查单的修订版。理想的情况下,项目相关人员的代表小组应该核对一遍项目检查表,以判断哪些风险可能会在项目中出现,然后根据类型来看决策。
项目管理方法认为在项目实施的过程中,评审可以识别出很多问题以及解决方法。有时候,这些问题可以添加到组织风险检查单队列中,以便于新的项目使用。
3.1.2 头脑风暴法
在日常的组织决策中,由于组织中成员们心理作用的影响,决策结果很容易倾向于权威者或大多数成员的意见,由此形成了“群体思维”。而这种群体思维使得组织中成员缺乏批判精神和创造能力,最重要的是这损害了决策质量。为了保证组织管理决策的创造性和有效性,学术界研究并改善了组织决策的新方法,头脑风暴法就是其中的一个。
落实到软件项目开发中,头脑风暴法就是由项目小组成员在一起,不受项目权威影响,每个人充分发挥自己的能力思考项目中可能的风险,自由讨论和发言,充分预测项目中出现的各种情况,最终汇总成为项目的风险表。在此中,头脑风暴法被运用的目的是获得一份客观的、公平的、综合的软件项目风险列表。
3.2 风险评估
L险识别时的一个问题,也是最值得考虑的的问题,就是风险的列表潜在是无限的。为了区分出其中的危害和可能出现的更大的风险,可以通过下面的公式对风险的影响进行评估:
风险影响(RE)=PC
其中可能性P(0P1)是指出现不如意结果的可能性。损失C是不如意的结果发生所带来的后果。而后果是由风险、成本、进度、技术等要素之间的关系来决定。通过风险影响(RE)来量化风险为所有已知风险提供了相对的优先顺序。例如:
时间:测试可能会持续两个多月;可能性=0.8。
风险影响=0.83个月测试带来的损失
正确程度:独立完成检验可能会耗资200 000;可能性=0.7
风险影响=0.7200 000元
成本:恢复测试需要两个工程师花一个月的时间;可能性=0.95
风险影响=0.95恢复测试的成本。
而大多数管理者拒绝对损失或者某些事情发生的可能性进行精确的估计,这其中的原因是大多数的估计都是猜测出来的。因此我们在本文用层次分析法来评估系统:在估计事物的区别时,可用中等、较强、强、较弱、弱五种判断很好的表示。分别用1、3、5、7、9五个数值来表示。当需要更高的精度时,还可以在相邻判断之间做出比较,其间用2、4、6、8来表示。
3.3 风险监控
风险监控是项目风险管理的最后一项,风险在项目的推进过程中可能会增大或者减弱,所以需要进行风险来检查每个风险的化解程度,如果最初的化解措施是无效的,要及时调整应对办法来化解风险,并识别随着它们消失而产生的新的风险。
风险监控的内容包括:
1) 不断地跟踪风险发展变化;
2) 不断地识别新的风险;
3) 不断地分析风险的产生概率;
4) 不断的整理风险表;
5) 不断地规避优先级别高的风险。
关键词:软件行业;多项目管理;应用探究
中图分类号: 文献标识码:A DOI:10.3969/j.issn.1003-6970.2013.07.055
本文著录格式:[1]王楚雄.软件行业中的多项目管理[J].软件,2013,34(7):147
0 引言
软件行业中的多项目管理主要涉及到的是软件项目的综合管理,这是一个开放的、动态且复杂的系统,面对的是多项目而不是单一项目。多项目管理正逐渐成为当前及未来软件项目管理的重要方法之一。多项目管理是一个大的综合性概念,既是一种思想也是一种方法,侧重于解决多个项目同时运作而产生的资源配置、成本和效率等问题。多项目管理的实施能否成功,直接关系到软件企业的经济利益。针对我国软件行业从业人员水平参差不齐、资源分散、缺乏创新性和竞争力、没有自己的品牌并且缺乏国际合作的特点,多项目管理成为必然选择。
1 软件项目管理的特点
1.1管理困难,可控性低。
因为软件设计和开发是知识密集型的智力活动,是资金密集型和劳动密集型的工作,包含了人的智力成果。因为项目的不可见性导致管理困难、进度控制困难、质量控制麻烦,可靠性低等问题;
1.2 用户需求变化大,更改频繁,项目的成本和进度得不到有效的控制。
1.3 对人才资源需求量大。
软件行业的最大特点就是软件的设计和开发人员都具备了一定的高学历和高素质,技术水平和经验都相对要高一些,需求量比较大。
2 多项目管理的涵义及特点
2.1多项目管理
多项目管理是指对于一个组织中同时进行的多个项目进行项目实施全过程的管理。多项目管理是随着项目管理方法在企业或政府部门中的广泛运用而逐渐形成的一种以长期性组织为对象的管理模式[1]。其实质就是在企业中同时管理和协调多个项目的选择、计划、评估、执行和控制。目的是使所有项目的执行效果达到最佳状态。它是通过对项目群、项目组合以及项目的成功管理来实现的。
2.2多项目管理的特点
⑴ 合理分配各种资源
多项目管理是站在企业的整体角度和层面来组织多个项目的筛选、评估、计划与执行。与单个项目管理不同,单项目管理是在假设各类资源都充足的情况下进行的项目管理,是一种“由因索果”的方式。而多项目管理是在假设有多个项目需要同时实施的情况下,如何协调和分配有限的资源来获得多项目执行成功的管理方式,它以“由果索因”的方式为核心思想[2]。
⑵ 项目成组管理,具有统一性
指将各项目按照项目成组的原则进行有效分组,对分配到同一组中的各个项目进行统一管理和管理。项目成组原则为:①项目优先级;②项目类别;③项目管理的生命周期④项目复杂程度等。
⑶ 管理难度大
多项目管理,顾名思义是对多个项目的管理,需要对这些项目进行计划、组织和控制及检测。在管理过程中需要项目经理综合多种因素进行决策和管理。其管理难度和复杂程度可见一斑。
3 多项目管理的分类
多项目管理的类型可以大致分为两类:一种是各个项目没有共同的目标,但项目本身很类似,工作开展方式和所需人员都具有相似性。这些项目之间可以相互参照、相互帮助;另一种是各个项目之间没有相似性,没有可以参照的地方。但是,如果这些项目组合在一起就会使组织的技术资源、人力资源和财务资源得到有效的配置和利用,从而提高企业或组织的综合竞争力。因此,将多项目管理分为:项目成组管理及项目组合管理。
3.1项目成组管理
项目成组管理将多个在工作流程、所用技术和人力资源方面有相似需求的项目放在一起,把他们看做一个项目来管理,以达到综合管理和规模效应,提高工作效率、增加企业利润。
3.2项目组合管理
项目组合管理就是将多个项目统一进行管理,这些项目没有相似性,无法互相参照。但是,如果这些项目在一起实施后可以达到资源的优化配置和资源利用率的最大化,无论是人员还是技术都可以达到最佳的使用状态,降低行业成本并提高了核心竞争力。
4 在软件行业中如何应用多项目管理
因为在软件企业中,经常会遇到多个软件项目需要共同执行,所以,软件行的多项目管理非常重要,软件开发工具和技术在行业发展过程中不断升级优化,系统集成项目需要集成最先进的平台设备、应用软件等来完成,执行过程必须跨部门、跨行业甚至要进行项目的整体调整和资源调度[3]。软件行业的客户需求量大,单一项目管理已经无法满足社会发展需要,多项目管理要在软件行业中发挥应有的作用。
⑴ 软件复用及管理组织变革。这是达成多项目管理的一个最佳途径。不仅能够缓解多个项目之间的资源配置问题,而且提高了多项目之间的沟通效率。常见方法是:软件的模块化和标准化。
⑵ 增加关键资源数量和项目优先级。为了错开各项目在同一时间对关键资源的争夺,可以适当增加关键资源的数量,避免争夺;对于优先级比较高的项目可以优先使用关键资源,但它不能无限期的占用,在使用一段时间后要将资源使用权转给下一优先级项目。
⑶ 项目成组管理。即在相似性的前提下优化资源配置。如:同组的各项目所需的软件技术相似,减少了同组软件开发人员的培训成本,提高了相关软件技术的复用率。例如,将Java项目和Net项目分开管理。
5 结语
软件行业是智力资源性行业,不仅对人才、技术、资源等方面要求高,而且对管理方面的要求也很高。软件应用日益广泛,市场竞争也日益激烈。多项目管理在对多个软件项目进行统一计划和组织执行,有利于综合调动资源、降低资源冲突、缩短系统开发周期进程,进而提高软件行业的整体实力。
参考文献
[1]黄明君.软件企业多项目间的沟通与协调研究[D].北京邮电大学,2010.2.
论文摘要:本文主要分析了我国软件项目管理的现状及存在的误区,总结了软件项目管理方面的经验,提出了初步的解决方案和办法。
随着计算机硬件水平的不断提高,计算机软件的规模和复杂度也随之增加。计算机软件开发从“个人英雄”时代向团队时代迈进,计算机软件项目的管理也从“作坊式”管理向“软件工厂式”管理迈进。这就要求软件开发人员特别是软件项目管理人员,要更深一步地理解和掌握现代软件工程的理论方法,完成思想观念上的转变。本人结合软件项目管理知识,对我国IT行业的特点及相关的软件项目管理工作普遍存在的问题和思想观念上容易陷入的误区进行了分析,并提出了初步解决方案和办法。
一、IT行业的发展特点
随着信息技术的发展,IT行业以惊人的速度逐步深入到社会各行各业,成为推动社会进步和国民经济发展的重要力量,对我国传统产业和传统的企业管理理念产生巨大的冲击,深刻地改变着人们的生产、生活和工作方式。
1、高技术性
IT行业是最典型的技术密集型、知识密集型的产业。人才是IT行业最宝贵的财富,具有明显的技术性、流动性和年轻化的特点。
2、高渗透性
IT行业具有很强的渗透性和带动作用,是国民经济发展的倍增器,IT行业已逐步渗透到我国第一、第二、第三产业以及社会生活的各个领域,有效地推动了产业结构调整和技术升级,提高了人们的生活质量,为产业发展和整个社会生活带来革命性的变化。
3、高风险性
IT行业在产品研发、生产和市场推广过程中,都要进行巨额的资金、设备和人力投入,由于技术的高度复杂性和市场的高度不确定性,项目风险控制难度加大,项目的成功率较低。但是一旦某个新项目或新产品获得成功,将会带来相对高额的回报。
4、高竞争性
IT行业是一个富有创造性和挑战性的行业,要求在有限的资源条件下,在越来越短的时间范围内,为客户提供技术创新性强、个性化程度高的信息产品和服务。在我国企业ERP系统项目建设中,项目真正的成功率一般在40%一50%之间。目前,攀钢集团公司正投入巨资进行ERP系统项目建设,项目进展虽说顺利,但如何把行业发展和项目管理的实施有机地结合起来,提高企业信息化水平和效益,仍是面临的一个重要课题。
二、软件项目管理所存在的问题及对策
软件项目管理IT行业的一个富有创新意义的领域,是针对特定的项目需求,以团队运作的形式,有效地组织项目资源,通过对项目的管理和控制,实现项目的目标。在我国IT行业起步较晚,但发展迅速,项目管理在IT行业的应用还很不成熟,一般的、常规的组织管理方式已很难适应,这是软件开发中项目管理面临的最大挑战。
1、对项目管理认识和重视不够
项目经理或管理人员不十分了解项目管理的知识体系,所以在实际工作中没有项目管理知识的指导,完全依靠个人现有的知识技能,管理工作的随意性、盲目性比较大。在软件企业中,项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。希望尽快推行和实施软件项目经理知识技能资格制度,各方面都能充分认识项目管理的重要性,让项目经理自觉学习项目管理的知识和一些常用工具和方法。
2、对项目的系统性把握不够
在软件企业一些项目管理人员对项目总体计划、阶段计划的作用认识不足。项目经理认为计划不如变化快,项目中也有很多不确定的因素,做计划是走过场,因此制定总体计划时比较随意,造成计划与控制管理脱节,无法进行有效的进度控制管理。其实制定计划的过程就是一个对项目逐渐了解掌握的过程,通过认真地制定计划,项目管理人员可以知道哪些要素是明确和重要的,哪些要素是要逐渐明确和次要的,通过渐近明细不断完善项目计划。制定计划的过程,也是在进度、资源、范围之间寻求一种平衡的过程。因此,提高项目管理人员的计划意识,加强对开发计划、阶段计划的有效性,并进行事前事后的评估。
3、管理思想贯彻不到位
项目经理如果没有从总体上去把握管理整个项目,而是埋头于具体的技术工作,造成项目组成员之间任务不均、资源浪费。在软件企业中,项目经理大多是技术骨干,技术方面的知识比较深厚,但无论是项目管理知识,还是项目管理必备的技能、项目管理必备的素质都有待补充和提高。同时由于工作分解结构设计的缺乏合理性,项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。因此加强项目经理在项目管理知识方面的培训和考核,引导项目经理更好地做好项目管理工作。
4、沟通的效率不高
在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失。在项目沟通管理方面:管理者要用70%的时间用于与人沟通,而项目经理需要花费90%或更多的时间来沟通。所以项目管理人员不但自己要把工作重点放在沟通上,而且要善于沟通,以提高沟通意识和沟通的效率。
5、对付风险的策略不成熟
项目管理人员没有充分分析可能的风险,对付风险的策略考虑比较简单。有些项目管理人员没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险和一些简单的对策,对于后面的风险防范起不到一定指导作用。项目风险管理是对项目潜在的意外损失进行规划、识别、估计、评价、应对和监控的过程,是对项目目标的主动控制手段。因此通过学习项目管理知识,掌握风险识别、量化、对策研究、反应控制的工具和方法,加强对项目规划中风险管理计划的审核,提高项目组的风险管理意识。
以上对软件开发项目管理中容易出现的问题的分析可能还不够深入,电无法列举所有遇到或将遇到的问题,解决办法也只能在际情况中把握。
三、软件项目管理的误区
1、在项目的需求分析阶段,开发方与客户方在备种的问题的基本轮廓上达成一致即可,具体细节可以在以后填充。因为无论开始时有多么细致,以后对需求的修改几乎是必然的。这是一种非常危险的思想。实际上许多软件项目失败的最主要的原因就是需求阶段对问题的描述不够细致,导致后来预算超出或者时间进度达不到要求。因此,在项目需求分析阶段,双方必须全面地尽可能细致地讨论项目的应用背景、功能要求、性能要求、操作界面要求、与其他软件的接口要求,以及对项目进行评估的各种评价标准。
2、软件项目的需求可以持续不断的改变,而且这些改变可以很容易地被实现。的确,在具体实际中由于种种原因客户方很难在需求分析阶段全面而准确地描述所有问题。随着开发进度的推进,往往会有一些需求的改变。但这并不表明“软件项目的需求可以持续不断的改变,而且这些改变可很容易地被实现”。实践表明:随着开发进度的推进,实现软件需求更改所需要的代价呈指数形式增长。所以软件需求的改变应当尽量早地提出,才可能花费少,容易被实现。
3、既然在项目人员配置中设置了专门的测试人员,那么软件所有的内部测试工作全部应该由测试人员完成。软件程序测试分为“白盒法”和“黑盒法”两种方式。由于使用“自盒法”对测试人员各方面素质的要求极高,程序测试时测试人员总是最优先使用“黑盒法”。如果测试没有通过,不得已造才考虑对程序代码进行“白盒法”测试。显然,这种对“白盒法”有意无意的“逃避”,对软件的可靠性和稳定性构成了威胁。如何解决这个问题?一方面需要提高对测试人员的要求,另一方面也需要程序员完成部分进行”白盒法”测试。
4、在开发进度滞后的情况下,可以聘请更多的程序员加入到开发团队中,通过增加人力资源来赶上进度。如果新加入的程序员很难适应项目管理方式、软件开发风格、团队协作氛围;那么“新人”的加入可能是有害的。
5、技术骨干应该成为项目的项目经理,项目经理一定是所有项目成员中薪水最高的。在“软件作坊”时代,这是一种普遍使用而且效果不错的方法;而在“软件工厂”时代,这种方法却带来各种问题,有时甚至直接导致项目失败。究其原因这主要是因为随着现代软件开发分工的细化,对项目经理的要求也发生了根本的改变一一最注重的不是其对某项专业技术的掌握程度,而是其组织、领导、协调开发团队的能力。项目经理的薪水在项目成员中是比较高的,但不一定是最高的。
四、我国软件企业实施项目管理的实践和经验
我国的许多软件企业按项目方式运作已有多年,在这期间,我国软件企业进行了不懈地探索,有成功的经验,也有失败的教训,其中主要体现在以下几个方面:
1、客户满意作为项目管理的最终目标
客户是项目的委托方,也是项目的受用方,如何使客户对项目的最终结果感到满意,是项目管理的一个核心问题。为让客户满意项目组要树立以客户为中心的观念,项目管理的整个生命周期都要面向客户,并把客户满意度作为衡量项目成败的一个重要指标,使项目组的利益与客户的利益紧密地联系在一起。项目的需求就是客户的需求,它应包括客户的现实需求和潜在需求。信息技术的迅速发展,导致IT行业客户需求的多样性、多变性、不确定性和个性化。软件产品或解决方案需要企业与客户在充分沟通的基础上,共同提取、挖掘,从而不断逼近客户的真正需求,客户与企业之间体现出很强的互动性。
2.项目管理要面向结果,首先要面向人
项目管理要以人为本,项目经理首先是人力资源经理,对于知识密集型的软件企业来说,尤其如此。通过项目为员工提供平台,通过员工的发展目标与项目目标的有机结合,使员工在项目的平台上实现自我的价值。
3.项目管理的挑战性和推动力
关键词:软件工程;项目管理;质量;进度
软件产业是一种知识型产业项目,而在软件工程项目中能够落实项目管理理论应用的话,将会获得更好的管理质量与管理效率。本文便针对软件工程项目管理中质量和进度这两个关键点做如下探讨。
1软件工程项目管理的内容研究
就从需求方的软件项目管理角度上来说,是对软件工程项目进度、风险和质量等内容开展的一系列管控活动。根本目的是保证软件项目符合事先设定进度,高质、高效完成。
1.1协调内部资源
站在需求方的角度上来看,在做软件项目管理时要做内部资源的协调,而由此会涉及到诸多方面。在此具体内容有:对软件工程项目总的目标规划进行明确,尽量协调软件工程项目各类资源要素的权限。保证软件需求方相关部门可掌握支撑方软件的实际情况,辅助软件支撑方明晰软件系统的情况。对软件需求方就某方面提出的具体功能要求,应与支撑方做积极的交流,保证满足要求。
1.2外部支撑方管理
对支撑方软件工程项目管理工作来说,主要的内容包括有:软件需求方和支撑方两者积极进行组织协调的工作,合理制定项目进度规划,包括总的进度规划和主要控制点等。软件工程项目管理的支撑方可以严格按照软件项目所制定的根本目标和进度需求,提供以完善的人力、物力、财力支持,并做好后续保障服务。软件支撑方与需求方通过积极协调,保证软件开发质量,满足需求方对软件功能提出的实际要求。
2软件工程项目质量和进度管控实践
2.1质量控制要点
(1)制定科学、合理的软件项目成功标准。一般情况下,软件工程项目是按照需求方提出的实际需求来研发一套软件工程信息系统,该系统的成功以需求方认可作为惟一评判标准,能够研发出满足客户需求的软件项目,是判定软件质量的关键所在。而想要最终得到需求方认可,首先就应该先要求需求方项目管理做需求部门、支撑方的协调,通过于此来明确用户的需求,之后再由支撑方来承担需求方对软件功能所提出的要求实现,确保可满足之前提出的具体功能要求,最后,以支撑方作为辅助,协同需求部门实现软件功能要求的价值实现。(2)督促工程项目管理质量的检查。质量检查工作属于是软件工程项目管理工作中的一个核心内容,在实际实践中可通过定期、不定期两种方法结合的手段来督促检查。在检查前,应掌握软件项目的质量信息情况,着重注意整体质量与各子模块质量。以此为前提,再对比项目当前质量、制定目标质量要求。如果质量误差在允许范围内,则代表质量合格,若误差较大,那么必须及时针对这些误差做深入分析,及时针对性的提出解决举措。(3)完善工程项目文档管理工作。就软件系统的本质来说,是物理和其相应对的文档这两个内容一同组成的,在系统开发上,可把文档描述作为重要的参考依据,系统在日常运行和维护时也是需相应文档支持的。文档可以说是对系统开发、演变相对应的文字阐述,而在项目管理实践中,必须要强调做好软件项目的文档管理工作,并保证文档的准确性,确保可从中获取到有效信息,为提高软件研发成功率保驾护航。
2.2进度控制要点
(1)制定合理的进度计划。在软件工程项目管理实践中,制定合理的进度计划能为进度有效的管理与控制提供基本保障,同时也是软件顺利实施和产生的根本前提,直接决定着项目是否成功。科学、合理的软件工程项目进度规划应该是基于软件需求方、支撑方有效协调下,制定出来的全面性项目实施计划。具体来说可以分成阶段性计划、个人计划这两个重要组成。结合具体实践来说,于软件工程项目管理水平较低时,各项任务具体的工作量确定为不超过总工作量的5%视为适宜,工期进度则以低于总工程项目的10%作为合理判定。(2)保证进度执行的精准度。就软件工程项目管理中进度执行来说,结合长时间的实践经验总结出一点:精准度是较低的,而这也是软件工程项目管理中一个亟待于解决的难题。很多软件工程项目实际完成的时间要比预计时间长。针对于此,想要保证进度执行的精准程度,便需注意以下管控要点:首先,落实进度指标的详细量化,进行严格的数据统计分析;其次,强化软件工程项目进度和预先规划的合理化配置,避免由于一味的依赖于事先规划而造成项目执行达不到精准度要求的错误;最后,实时落实项目规划并有效的把控变更,确保软件工程项目能如期完成。
3结束语
上文主要是从软件需求方工程项目管理的角度着手,结合实践经验,探究软件需求方对软件工程项目管理有关于质量和进度控制这两个关键内容的管控要求。在软件工程项目质量控制上,应通过制定科学、规范的软件成功标准,强化对质量的督察、完善文档管理工作来保证管理质量;而在软件工程项目的进度控制上,则应通过制定合理的进度计划、保证进度执行的精准度来提高管理效率。这样应用于实践,才能获得好的反馈。
参考文献
AbstractContent:Withthedevelopmentatfullspeedoftheinformationindustry,theprojectmanagementisaneffectualofficeproceduretothesoftwareenterpriserelyingmainlyonapplicationanddevelopment,theapplicationinsoftwaredevelopmentoftheprojectmanagement
ispaidattentiontodaybyday.Thistexthasbeenanalyzedanddescribed
throughtheorigincauseofformation,existingproblemandcorresponding
solutionofapplicationtotheprojectmanagementinsoftwaredevelopment
mainly.
关键词:项目管理,软件开发
Keywords:Projectmanagement,Softwaredevelopment
如果用两个字概括当前社会的特点,那就是“变化”,而这种变化在信息产业中体现得尤为突出,技术创新速度越来越快,用户需求与市场不断变化,人员流动也大大加快。在这种环境下,企业需要应对的变化以及由此带来的挑战大大增加,也给管理带来了很多问题和挑战。软件行业是一个极具挑战性和创造性的新行业,管理上没有成熟的经验可供借鉴。而项目管理应该说对于软件企业,尤其是那些以应用开发为主的软件企业,是行之有效的管理方法。因此,项目管理在软件开发中的应用日益受到重视。
项目管理的两个问题
1、什么是项目管理?
项目管理是在一定的约束条件下,以高效率地实现项目业主的目标为目
的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。
2、为什么要有项目管理?
没有项目管理,项目也有可能成功。但没有管理的项目,很难保证项目
的利润空间,对公司来说,亏损的风险就大。所以我们要有项目管理,以保证公司在总体上是盈利的,注意不是每一个项目都要盈利。
另外,有了项目管理,就有了管理改进的基础,无论刚开始的项目管理多么糟糕,只要有管理,就有了改进的可能性,至于能不能得到改进,以及改进的快慢,则取决于两个因素:一个是人,特别是各级管理者;另一个是利益。关键是“利益”,准确的说是“利益的分配”,在权责利明确的前提下,人才能充分的发挥作用。还需要指出的是“利益”是多元的,这里的多元不仅指利益的具体形式,而且指利益的受众是多元的,包括客户方相关人员个人的利益。
3、项目管理的发展与现状。
今天,项目管理作为一种现代化管理方式在国际上已获得了广泛的应用,从最初的国防、航天、建设工程领域,迅速发展到电子、通信、计算机、软件开发、金融等行业以及政府机关的项目管理工作。随着计算机、网络系统的迅速发展,项目管理技术的不断进步,项目管理软件产品层出不穷,其功能、特点、应用对象也各不相同。当前,越来越多的企业和组织在内部推广项目管理的理论方法及管理模式,如果都采用项目管理软件进行管理,效果就更加明显,可以节省大量的资源和财富。国外90%以上的项目管理都采用软件进行,但我国在这方面的应用还不到10%。新世纪项目管理在中国的迅速兴起,给软件企业的发展带来了前所未有的发展机遇。
项目管理在软件开发中的应用的成因
随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作,每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化管理,专业分工也可以降低对开发人员的要求,从而降低产品研发成本。
软件开发是一项复杂的系统工程,牵涉到各方面的因素,实际工作中,经常会出现各种各样的问题,甚至面临失败。如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。
早在20世纪60年代中期,人们就发现软件的生产出现了“问题”,主要表现在生产过程不规范,缺乏管理。后来,人们在软件工程方法学中引入了工程的概念、原理、技术和方法,这种思想在一定程度上解决了软件生产过程中遇到的问题。但是直至80年代还是没有提出一套管理软件开发的通用原则,软件管理不善的问题依旧在大范围内存在。
目前的软件开发正逐步趋向于复杂化、多元化,大多数开发团队中都会出现同时开发多个版本、开发/维护工作并存、多地点同时开发等情况,给软件开发管理带来了前所未有的困难。如果管理不善,必将造成版本混乱,各个开发人员的工作相互交叉、干扰,整个开发团队的工作在一种无秩序的不良状况下运行,严重影响软件产品开发的进度和质量。
因此,随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,应用开发的项目管理日益受到重视。而项目管理技术的发展与计算机技术的发展是密不可分的,随着计算机性能的迅速提高,大量的项目管理软件涌现出来。它们可以用于各种商业活动,提供便于操作的图形界面,帮助用户制定任务、管理资源、进行成本预算、跟踪项目进度等。
软件项目管理常见问题及解决方案
对于软件开发项目中,经常出现两种极端情况,一种是创造了新的生产率和质量的纪录;一种则完全是一场灾难,不是被取消就是拖延很长时间。前者如在很短的时间内,为了赶进度,在几乎不可能的时间内开发出一套软件产品,创造了软件开发的记录,满足了上级所要求的上机日期,由于开发时间太短,过于仓促,上机时,问题百出,试运行时间长达几个月或一年半载的,而且程序一改再改,维护工作量大。
后者,如某套系统未弄清楚需求,或因设计问题,开发失败。通过提炼这些成功和失败的例子,软件项目成功或失败的根本原因可能会更清晰一些。
目前我国大部分软件公司,无论是产品型公司还是项目型公司,都没有形成适合自己公司特点的软件开发管理模式,虽然有些公司根据软件工程理论建立了一些软件开发管理规范,但并没有从根本上解决软件开发的质量控制问题。这样导致软件产品质量不稳定,软件后期的维护、升级出现麻烦,同时最终也会损害用户的利益。
分析目前项目管理需要改进的问题可以从几种相关角色的角度去考虑:项目经理、项目组成员、公司管理人员、市场人员、客户等。
问题一:缺乏项目管理系统培训(相关对象:项目经理、管理人员)
项目经理在项目管理方面的培训较少或不够系统。项目经理或管理人员不了解项目管理的知识体系和一些常用工具和方法,所以在实际工作中没有项目管理知识的指导,完全依靠个人现有的知识技能,管理工作的随意性、盲目性比较大。在软件企业中,以前几乎没有专门招收项目管理专业的人员来担任项目经理(甚至很少是管理专业的),被任命的项目经理主要是因为他们能够在技术上独当一面,而管理方面特别是项目管理方面的知识比较缺乏。
解决方案:项目经理接受系统的项目管理知识培训是非常必要的,有了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。应实行项目经理知识技能资格考核制度,让项目经理自觉补充学习项目管理的知识和一些常用工具和方法。
问题二:项目计划意识问题(相关对象:项目经理)
项目经理对总体计划、阶段计划的作用认识不足。项目经理认为计划不如变化快,项目中也有很多不确定的因素,做计划是走过场,因此制定总体计划时比较随意,不少事情没有仔细考虑;阶段计划因工作忙等理由经常拖延,造成计划与控制管理脱节,无法进行有效的进度控制管理。没有计划或者是随意的不负责任的计划的项目是一种无法控制的项目。
解决方案:在高技术行业,日新月异是主要特点,因此计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式进行不断完善。提高项目经理的计划意识,采用项目计划制定相关各种知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。
问题三、管理意识问题(相关对象:项目经理)
部分项目经理没有意识到自己项目经理的角色,从总体上去把握管理整个项目,而是埋头于具体的技术工作,造成项目组成员之间忙的忙、闲的闲,计划不周、任务不均、资源浪费。在软件企业中,项目经理大多是技术骨干,技术方面的知识比较深厚,但无论是项目管理知识,还是项目管理必备的技能、项目管理必备的素质都有待补充和提高,项目管理经验也有待丰富。有些项目经理对于一些不服管理的技术人员,没有较好的管理方法,工作不好安排的工作只好自己做。另外由于工作分解结构设计的合理性,项目任务无法有效、合理地分配给相关成员,以达到“负载均衡”。
解决方案:加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做好项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是其中的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。
问题四:沟通意识问题(相关人员:项目经理、项目组成员)
在项目中一些重要信息没有进行充分和有效的沟通。在制定计划、意见反馈、情况通报、技术问题或成果等方面与相关人员的沟通不足,造成各做各事、重复劳动,甚至造成不必要的损失;有些人没有每天定时收邮件的习惯,以至于无法及时接收最新的信息。
解决方案:制定有效的沟通制度和沟通机制,对由于缺乏沟通而造成的事件进行通报作为教训提醒,以提高沟通意识;沟通方式应根据内容而多样化,讲究有效率的沟通;通过制度规定对由于未及时收取邮件而造成损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如除发送邮件外还要电话提醒、回执等,重要的内容还要通过举行各种会议进行传达。
问题五:风险管理意识问题(相关人员:项目经理)
项目经理没有充分分析可能的风险,对付风险的策略考虑比较简单。项目经理在做项目规划时常常没有做专门的风险管理计划文档,而是合并在项目计划书中。有些项目经理没有充分意识到风险管理的重要性,对计划书中风险管理的章节简单应付了事,随便列出几个风险,随便地写一些简单的对策,对于后面的风险防范起不到什么指导作用。
解决方案:通过学习项目管理知识掌握风险识别、量化、对策研究、反应控制的工具和方法掌握项目风险管理所必备的知识。通过加强对项目规划中风险管理计划的审核提高项目组的风险管理意识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,并切实评估相应对策的有效性和可行性。
问题六:不重视项目经验的总结(相关人员:项目经理、管理人员)
项目经理在项目结束时有些是因为自身对写文档工作的兴趣或意识,或
者是因为紧接着要参加下一个项目,总体对项目总结的重视程度不够。有些是项目总结报告一再拖延,有些是交上来的报告质量较低,敷衍了事。
解决方案:在制度上鼓励和加强项目经验总结工作,使得项目总结及时并且具有指导意义而不是走过场。
问题七:项目干系人相关问题(相关人员:项目经理、项目成员、客户)
在范围识别阶段,项目组对客户的整体组织结构、有关人员及其关系、
工作职责等没有足够了解以致于无法得到完整需求或最终经权威用户代表确认的需求。由于项目经理的工作问题,客户参与程度部不高,客户方相关责任人不明确或对范围和要求责任心不强,提出的要求具有随意性,项目前期对需求的确认不够积极;或者是多个用户代表各说各话、昨是今非但同时又要求项目尽早交付;项目后期需求变化随意,造成项目范围的蔓延,进度的拖延,成本的扩大。
解决方案:项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减小其对项目的阻力,以确保项目获得成功。
问题八:项目团队内分工协作问题(相关人员:项目经理、项目成员)
项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任
分工不够清晰而造成工作互相推诿、责任互相推卸的现象,有时各阶段不同角色或同阶段不同角色之间的责任分工比较清晰但是各项目成员只顾完成自己那部分任务、不愿意与他人协作。这些现象或多或少地造成了项目团队内部资源的损耗,从而影响了项目的进展。
解决方案:项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当相互协作,共同完善。
以上对软件开发项目管理中出现的问题的分析还不够深入,也无法列举所有遇到或将遇到的问题,解决方案也要根据实际情况进行调整,希望引起对这些问题更多的思考和改进。
结束语:项目管理虽然没有非常高深的理论,但要真正实施起来,也绝非易事。对于软件开发企业而言,这不是一个小的改变,而是一种变革,企业需要为此付出艰苦的努力,宣传并树立公司范围内的项目管理文化十分重要。从而在实践中锻炼提高,解决各种各样的问题,使项目管理工作越做越好。
参考文献:
吴照云《管理学原理》经济管理出版社
StanleyE.Portny(宁俊等译)《如何做好项目管理》新经济工商实务丛书
NealWhitten(孙艳春等译)《管理软件开发项目》(第二版)软件项目管理系列丛书
1.1盲目性应用
盲目性应用,即无论是产品型软件企业还是项目型软件产业,都没有一个适合自身企业特点的软件开发管理模式。随着信息化时代的来临,第三次革命的广大蔓延,使IT产业在我国得到了迅速的发展,相对应的各个软件的应用也逐渐增加。由于,我国的软件企业建设起步较晚,相关技术性软件缺乏有效的创新性。因此,在不合理的管理下,往往会造成为了追赶进度,而在短时间内生产一批软件,大大降低了软件开发的应用价值,造成程序在进入实际应用时,一改再改,上机漏洞百出,运行时间过长,甚至完全的开发使用受挫等问题。
1.2无规范性操作
无规范性操作,即相关企业缺少对软件开发的相关规定,检查督导力度不够,企业管理人员、企业技术人员的应用力度不到位等。我国大多数软件开发企业都属于中小型企业,所开发利用的产品大多效法与国外的软件产品,缺乏有效地创新能力,评估工作量能力欠缺。虽然,某些公司意识到了这一点,但在自己企业的软件开发与管理中,虽然建立了一些软件开发管理的规范,由于过于硬式化,可执行力不强,造成软件开发的操作上出现问题。操作中的无纪律、无规范性,使得很多软件的基本构架被砍掉,导致了所开发产品的质量不稳定,对以后的升级与维护造成负担,使用户对公司不满,最终损害了企业的利益。
2项目管理在软件开发中的应用措施
项目管理应用于软件的开发与利用中,即相关的软件开发项目人员,在有限的资源的前提下,运用所要规定的软件内涵、理念、方法及观点,进行有效的开发与管理。宣传并树立企业范围内的项目管理文化十分重要。实现项目全过程,包括软件开发项目的计划、软件开发项目的组织、软件开发项目的指导、软件开发项目的调控及软件开发项目的评价,得到全面的项目实现,创造企业利益最大化。将项目管理融入到软件的开发应用中应做到:
(1)对软件开发项目的成功标准做准确的设定。
(2)对项目之间的各种要求把握要合理。
(3)对软件的标准进行新的定义。
(4)建立适合的沟通渠道。
(5)制作个人计划。
(6)具备完备的需求说明。
(7)对任务进行有规律的分配。
(8)选择正确的技术并进行相应的估算。
项目管理在软件开发中的具体作用为:
(1)可实现人力、物力、财力的合理分配。
(2)对企业软件的启动、研发进行高标准的组织。
(3)合理的对各个项目进行合理的划分,实现层次管理、合理分配。
(4)调动员工的积极性,实现企业利益的最大化。因此,可以看出项目管理可有效地促进软件开发的进程与管理,是实现软件开发任务、资源管理、成本预算、项目跟踪及企业利益的良好标尺。实现项目管理与软件开发结合是企业形成良好的业务循环的重要手段。项目管理在软件开发中具体的应用措施有:
2.1完善制度
完善制度,即相关的管理人员应按照企业的任务需求合理的制定出一套相对应的管理流程。例如:企业的相关负责人可以根据企业的业务需求来制定《产品立项报告》,并根据各个部门的负责人的审批建议,做出《产品可行性调研》。后对风险进行有效的评估,然后做出产品的《初步设计报告》,并落实于人。(注:一般情况下为保障软件的质量与开发进度,新技术在软件中的使用比例应小于35%)
2.2初步设计
初步设计,即相关的管理人员根据所要开发软件的成本、进度、风险等进行准确的评估,并制定评估范围数值,并根据评估的范围,制定出项目总成本的耗资范围。例如:企业的相关责任人应集中硬件工程师、软件工程师与架构工程师三者进行商榷,并根据业务需求,企业软件系统开发规范,编码规范等,来制定出《项目建议书》、《软件总体设计》等方案,提交决策层评审,评审立项通过后方可进行下一步工作
2.3硬件选型
硬件选型的过程就是根据软件的运行状况选择其运行于哪种硬件上的过程。硬件设备的选择需要根据所开发软件的类别进行选择,例如:开发小型单机软件,需要一台电脑就够了,但是开发大型单机软件则不一样了,需要多台电脑、外网网线、路由器、局域网。项目管理的软件开发首先要构建软件系统,做好预算,不断改进设计模型,做好项目资源管理的控制和软件的优化方案。其次,需要对软件系统进行测试,根据项目管理对软件的需求设计科学合理的测试方案,不断完善硬件选型上的不足,做到硬件与软件的科学有效运行。
2.4软件设计
软件的设计是IT行业中的重中之重,是至关企业形象的良好标志。软件设计,即相关的管理人员对所要开发软件的成本、进度、风险进行精确的细化分析,制定出确实可行的软件开发项目。例如:项目经理需要根据企业的软件复用价值来确定,待开发与难开发两者,并根据《初步设计》的要求,写出《软件的详细设计》方案并编织代码,测试代码,软件设计的最终环节要在总工程师的辅助下完成,总工程师要做出详细的批示和完善措施,由此进行改进之后再进行大规模的生产与制作。不断提高软件设计产品的质量。
2.5软件的测试
软件的测试是检测所开发软件好坏的良好标尺。软件的测试,即由软件工程师编制代码后,按照《测试大纲》进行自测,并将自测后的数据进行可靠性的综合分析测试。其主要包括:
(1)功能性测试,即对产品的每一项功能进行逐一测试。
(2)应用性测试,即将所开发产品运行与实际操作中,进行现场模拟的EMC、EMI测试。并根据测试的结果,做好详细真实的记录,列出不合格项目,有待加强项目、研发人员定位等确立故障的具体原因,为故障的分析与改正打下基础。
2.6文件归档
文件的归档,即对所开发的软件项目做出完整的整合记录,实现软件的可升级性、可维护性、可继承性及可完善性的良好数据说明系统,是加强积极管理的有效手段之一。对于软件来说,确保一次性研发成功最好,若中途发生了变差,则需要进行修改,在对软件系统进行修改的时候,就需要对文件再次进行归档。所要归档的文件一般有:
(1)软件的研发报告。
(2)软件的可行性分析报告。
(3)软件的初步设计方案。
(4)硬件的详细设计方案。
(5)软件的详细设计方案。
(6)系统的结构详细设计。
(7)软件的测试结果。
(8)审批明确的生产文件。
(9)详细的使用说明书等。
3结束语
利用项目管理软件的形式化语言对项目的整体计划建立方面优势明显,它可以集成一套甚至几套完整的项目管理描述方法以及计算方法和模型,在这些模板基础上,使用人员可以根据项目的具体情况快速完成项目计划的制定,避免浪费大量时间。2按时间管理项目进度项目管理软件可完成项目的时间进度管理,利用形式化语言的描述,可以直观的看到整体计划时间,目前正在执行的计划进度以及待执行计划剩余可用时间等,在计划实施过程中如果出现任何变动,都可在软件开辟的相应的数据库中进行计划变更,其他计划的安排也会相应发生变化,而不必在某一项任务时间或人力、物力的使用发生变更时,逐个对之后任务进行修改,节省了大量时间,也排除了认为更改中的疏漏,确保了计划的准确性。
3对项目要素的管理
在项目管理软件中,通常情况下,将最基本的元素,例如人、材料、机械设备、可用资金等,进行数据化抽象为资源,并建立资源库。根据各基本元素的特性,设置资源日历,利用图表以及资源需求曲线等对项目的各个组成部分所需资源进行直观展示,并指出资源使用情况,便于管理人员及时进行资源的调配,避免人力物力的浪费以及工程进度。
4形成项目任务网络
在整个项目中,各子任务不可能同时进行,他们之间具有一定的逻辑关系,例如对于任务I,J,K,有依次完成的时间上的步进关系,也有I和J同时完成方可进行任务K的情况,这就是任务之间的关联性。项目管理软件针对这种情况可以对各个子任务进行逻辑分类,并构建任务网络,方便管理者安排工程项目的任务。
5完成工程项目的进度跟踪以及调整
项目计划制定后并非一成不变,由于某些不可抗拒因素,例如自然灾害、政策变化、设计更改等状况的发生,项目进度必然受到影响,因此必须根据工程的实际进展进行跟踪调查并及时调整。对项目各阶段的开始时间、完成时间、实际工作量、计划工作量、计划投入资源数量以及实际投入资源数量等一一进行记录,并计算变更量以及对工程整体进度的影响程度,以较为直观的柱状图或饼状图表现出来,根据结果对工程项目中的各个环节进行管理,对于影响到预设目标的行为,例如资源利用量超标等情况,系统可提示管理者进行及时处理。项目管理软件还能对项目过程中的某些设定值在一定范围内进行自动调整,以不对项目整体进度产生影响为原则。
6为管理者决策提供信息
项目管理软件有设定的专门供管理者决策用的管理模块,该模块是将范围管理、时间管理、资源管理、成本管理、风险管理、质量管理等多个子模块的统计信息进行整合,并依据已设条件对其中某些影响项目进度、资源管理或者成本控制的行为进行提取,并在管理模块中显示出来,便于管理者进行筛选和处理,避免了大量繁重的审计工作,能够使管理者决策更加科学快速,有利于工程的整体管理。
结语
论文摘要:信息系统以及相关软件项目的设计开发已经不是企业运作管理中的一部分了,各软件企业都在积极地将软件项目管理引人开发活动中,对软件项目开发实行有效的管理。
目前,中国的软件企业正处于高速发展、急需规范管理并以项目为主导的环境中。企业每天所面对的不仅仅是几个越来越大的大型项目,而将是成百上千不断发生和进行的项目。产生这种变化的因素是多方面的,这包括客户需求的不断提高导致产品生命周期缩短;产品开发项目数量大增;新技术导致了对研究和开发项目需求的增加;为了提高业务赢利能力,改进业务模式的项目需求大增等。在这种多项目并发、技术含量高、变化速度快、资源有限的环境下,如何对企业、项目、资源实施科学的管理,加强团队能力,实现软件企业的生产规模化、规范化、国际化,是当前我国软件业面临的最大挑战。
中国目前软件业的落后状况,实际已经不是技术本身的问题,而是科学管理的问题,软件工程理论与软件项目管理的实际应用与经验,是我国软件企业急待学习与渴求的。中国软件业各个层次上的管理问题,目前可以说已经制约了中国软件业走向国际化的进程。
一、软件项目管理的概念
从概念上讲,软件项目管理是根据管理科学的理论,结合软件产品开发的实际,保证工程化系统开发方法顺利实施的管理实践,为了使软件项目能够按照预定的成本、进度、质量顺利完成,从而对成本、人员、进度、质量、风险、文档等进行分析、管理和控制的一系列活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。
软件项目的开发不同于其他产品的制造,软件开发的整个过程都是以设计过程为主(几乎没有制造过程);另外,软件开发不需要使用大量的物质资源,而主要使用的是人力资源;并且,软件项目开发的产品大多数是程序代码和技术文档,并没有其他的物质结果。基于上述特点,软件项目管理与其他项目管理相比,具有很大的独特性。
二、软件项目管理的目的
随着信息技术的飞速发展,计算机软件产品的规模和复杂度也随之增加。个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。与此同时,软件项目中“项目黑洞”也应运而生:项目无法按期完成、项目合作方的工作难以协调、用户需求经常变动、工作质量难以保证,给企业带来为了愈来愈多的损失。这种情况说明了软件项目开发及管理过程中,存在着许多的问题,需要更多的重视和研究。
没有运用软件项目管理是面临如此众多问题主要原因之一。软件项目管理作为一种科学的管理手段,是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的一系列活动。因此,对于以“项目”为基本运作单位的各软件开发企业,都在积极地将软件项目管理引人开发活动中,对软件开发实行有效的管理。因此,决定一个软件项目实施成功与否,软件项目管理无疑起着举足轻重的作用,软件项目管理已经是公认的软件开发企业的核心竞争力之一。
三、软件项目管理的原则
1.平衡原则
在我们讨论软件项目为什么会失败时可以列出很多的原因,如管理问题、技术问题、人员问题等等,但是有一个根本的思想问题是最容易忽视的,也是软件系统的用户、软件开发商、销售商最不想正视的,那就是:需求、资源、工期、质量这四个要素之间的平衡关系问题。
需求定义了“做什么”,定义了系统的范围与规模,资源决定了项目的投人(人、财、物),工期定义了项目的交付日期,质量定义了做出的系统好到什么程度,这四个要素之间是有制约平衡关系的。如果需求范围很大,要在较少的资源投人下,很短的工期内,很高的质量要求来完成某个项目,那是不现实的,要么需要增加投资,要么工程延期;如果需求界定清楚了,资源固定了,对系统的质量要求很高,则可能需求延长工期。对于上述四个要素之间的平衡关系最容易犯的一个错误,就是鼓吹“多快好省”四个字。正视这四个要素之间的平衡关系是软件用户、开发商、商成熟理智的表现,否则系统的成功就失去了一块最坚实的理念基础。
2.高效原则
在需求、资源、工期、质量四个要素中,很多的项目决策者是将进度放在首位的,现在市场的竞争越来越激烈,“产品早上市一天,就早挣一天钱,挣的就比花的多,所以一定要多挣”,基于这样一个理念,软件开发越来越追求开发效率,大家从技术、工具、管理上寻求更多更好的解决之道。基于高效的原则,对项目的管理需要从几个方面来考虑:要选择精英成员;目标要明确,范围要清楚;沟通要及时、充分;要在激励成员上下工夫。
3.分解原则
“化繁为简,各个击破”是自古以来解决复杂问题的不二法门,对于软件项目来讲,可以将大的项目划分成几个小项目来做,将周期长的项目化分成几个明确的阶段。
项目越大对项目组的管理人员、开发人员的要求越高,参与的人员越多,需要协调沟通的渠道越多,周期越长,开发人员也容易疲劳,将大项目拆分成几个小项目,可以降低对项目管理人员的要求,减少项目的管理风险,而且能够充分地将项目管理的权力下放,充分调动人员的积极性,目标会比较具体明确,易于取得阶段性的成果,使开发人员有成就感。
4.实时控制原则
实时控制项目进度的机制,依靠一套规范的过程来保证实时监控项目的进度,以实现实时控制项目的进展,将项目的进展情况完全的实时的置于你的控制之下。实时控制确保项目经理能够及时发现问题、解决问题,保证项目具有很高的可见度,保证项目的正常进展。
5.分类管理原则
对于不同的软件项目其项目目标差别很大,项目规模也是不同的,应用领域是不同的,采用的技术路线差别也很大,因而,针对每个项目的不同特点,其管理的方法、管理的侧重点应该是不同的。就像古人讲的,“因材施教”,“对症下药”。项目经理需要根据项目的特点,制订不同的项目管理的方针政策。
6.简单有效原则
项目经理在进行项目管理的过程中,往往会得到开发人员这样的抱怨“太麻烦了,浪费时间,没有用处”,这是很普遍的一种现象。当然这样的抱怨要从两个方面来分析,一方面从开发人员本身可能存在不理解,或者逆反心理的情况,另一方面,项目经理也要反思:我所采取的管理措施是否简单有效?搞管理不是搞学术研究,没有完美的管理,只有有效的管理,而项目经理往往试图堵住所有的漏洞,解决所有的问题,恰恰是这种理想,会使项目的管理陷人一个误区,作茧自缚,最后无法实施有效的管理,导致项目的失败。
7.规模控制原则
该原则是和上面提到的其他原则相配合使用的,即要控制项目组的规模,不要人数太多,人数多了,进行沟通的渠道就多了,管理的复杂度就高了,对项目经理的要求也就高了。在微软的MSF中,有一个很明确的原则就是要控制项目组的人数不要超过10人,当然这不是绝对的,也和项目经理的水平有很大关系。但是人员“贵精而不贵多”,这是一个基本的原则,这和我们上面提到的高效原则、分解原则是相辅相成的。
项目管理是20世纪50年代开始发展起来的,项目管理在某种意义上来讲,可以说是一种计划管理方法。项目管理在运行方式和思维模式上改善了工作流程,有效的提高了工作效率。目前在我国的很多领域里的项目管理被广泛的应用和渗透,成为政府和企业提高工作效率的一种利器。经过几十年的发展,项目管理已经不仅仅是管理技术和方法,更重要的是他它已经成长为一门新的学科和专业。项目管理是一个动态过程,针对一些大型的建设工程项目,其生命周期中有大量的数据和信息需要处理,需要各种图表和施工前的规划,同时需要在项目的执行过程中反馈真实的记录,并且需要在项目执行的过程中对计划进行不断的调整,这些具体工作的实现过程,同时也是项目管理水平提高的过程,是项目管理软件的应用过程,因此,项目管理软件的应用显得非常的重要。
1 项目管理软件的概念
1.1项目管理
项目管理会在一定程度上受到一些条件的约束,实现项目目标,以项目经理个人负责制为基础和项目独立实体进行经济核算,并且需要按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。
1.2项目管理软件
项目管理软件是利用网络计划技术,以项目的实施环节为核心,以时间进度为出发点,对实施过程中的进度、费用、资源等进行综合管理的一类应用软件。其中主要包括几个模块,进度计划管理、资源管理、费用管理、报告生成与输出功能等等。在某种意义上来讲,项目管理软件包括了与项目管理工作相关的各种应用软件,涉及到的方面是相对较多的,这也是项目管理相关软件的总称。
2 项目管理软件的功能介绍
针对各种项目管理软件的功能来讲具有很大的差异,但是它们都是以网络计划技术为基础,在基本功能的实现上也相同的,其中包括网络模型建立与分析、资源安排与优化、项目控制和图表输出等几个方面。
2.1网络模型建立与分析
计算机是网络模型进行项目管理的基础。随着科学技术的进步,我国项目管理软件都有方便的网络模型建立与分析功能。可以使用建立数据文件方式、紧前工序号输入方式或直观图像。自动计算各工序参数的时间。求出关键路线、关键工序和总工期。
2.2资源安排与优化
资源是指用于完成项目任务所需的人、设备、工具和物资等。项目管理软件自身存在很多的优势,项目管理软件一般都具有资源管理、根据自愿安排计划和解决资源中图等的功能。在日常的生活和生产中,都需要大量的资源力量,可以随着时间的变化而变化。当资源发生冲突时,可以根据各个工序的重要程度,设定各项工序对资源需求的优先级别。能够根据工序对资源的需求量和资源的供应量,自动排出进度计划。
2.3项目控制包括成本控制和进度控制连个方面。在成长控制方面,通常项目管理软件能够有效的处理项目或工序与实践,这样就可以降低无关的固定费用。必要时可以将时间与成本设备非线性关系,进行成本和进度的 同步计算,根据一些实际的计划进度或实际进度制作全部工作或局部工作的资金流量图和各种分析计划成本与实际偏差、优化和调整计划提供的决策依据。进度的控制主要采用的基本方法有,项目进度跟踪,将实际进度和计划进度进行对比,分析计划进度偏差的主要原因。通过瓦解关键路径或改变工序逻辑关系等方法处理关键路线。
3 矿山建设项目管理中的应用
在过去的几十年里,在我国一些矿山建设生产管理实践过程中,曾经有过很多的相关研究人员应用网络计划技术,开发计算机软件,编制进度计划。但是由于网络图形的特殊和复杂性,短时期内是无法开发出高质量的网络图形处理软件的,这也是造成网络计划技术在我国矿山建设项目管理中未能广泛应用的主要原因之一。据相关调查证明,功能完善、性能优越和使用方便的计算机软件是成功应用网络计划技术的重要保证。矿山建设项目自身具有鲜明的特性,同时又具有一般建设项目的共同特性,应用项目管理软件来管理矿山建设项目是完全可行的。
3.1网络计划动态控制管理
图形化的网络模型可以直观的表示整体工程各项工序的进行顺序和空间上的相互关系。根据一些实际的工程进展情况,通过计算网络模型的时间参数,找出新的关键工序和关键路线,进而改进工程进度计划。目前我国的一些矿山建设项目的工程进度计划已经进行了无数次的调整,取得显著的成绩和效果。
4 项目管理软件的发展现状
4.1国内应用状况
项目管理软件在我国的我应用时间相对较晚。在这样的一个阶段内,国内出现了很多项目管理软件,但是由于与国际接轨的需求,国外项目管理思路被很多单位引进和接受,同时引进了国际先进的项目管理软件,目前,我国使用项目管理软件的企业已经上千家。
4.1.1进度计划的编排
运用项目管理软件编排进度计划,在项目投标以及工程开工之前都能运用这些软件进行编制计划。大多数的企业还处于被动使用状态,因为,项目招标书中要求使用项目管理软件进行项目管理,而被迫使用相应的软件。
4.1.2通过进度和资源结合使用,分析资源的强度和资源的使用安排是否满足需要。很多企业通过使用项目管理软件,尝到了很多的甜头,希望通过项目管理软件的资源分析和成本管理的功能,合理配置资源,使得进度计划更为的合理。
4.1.3根据施工组织措施来编制进度和资源计划,根据计划来安排生产,通过对计划对进度进行控制。这需要计划的编制人员必须按照施工方案来编制计划,现场施工人该按照计划安全生产,必须及时的将实际进行反馈,从而可以有效的实施动态跟踪。
4.2.4项目管理的数据与企业管理信息系统
通过一些有效的手段对远程进行控制。分散在全球各地,通过数据的贡献,减少或者传递到本部,在总部进行汇总和统一的安排,并且将指令通过邮件下发给所有的分公司或工地,对于企业和战线偏长的的项目库可以推广此方法。