项目管理在软件中的应用摘要:随着信息产业的飞速发展,项目管理对于以应用开发为主的软件企业是一个行之有效的管理方法,项目管理在软件开发中的应用日益受到重视。软件项目开发是一项系统而复杂的工作,它需要一个团队的互相配合、分工协作;项目管理是在一定的约束条件下,以高效率地实现项目的目标为目的,按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。软件项目管理的交叉学科,是项目管理的原理和方法,在软件工程领域的应用。本文是针对项目管理在软件开发过程中的应用研究,通过对软件开发过程的各个阶段中存在的问题以及解决的方法进行研究,希望能够从项目管理的角度解决软件开发过程中的一些问题。文章首先介绍了关于项目管理的一些知识,项目管理在软件开发中的应用的成因;然后指出了如今的软件项目在开发中遇到的问题,比如项目越来月庞大、参与的人员越来越多、开发进度和质量很难估计和度量,生产效率也难以预测和保证等;针对这个主要问题的进行分析和总结,找出软件项目开发各个环节和外部因素存在问题;借鉴其他类型项目管理的方法,提出解决开发过程中遇到问题的可行方法;最后,在实际中介绍使用传统项目管理技术管理软件开发项目的方法,然后介绍了使用敏捷项目管理的初步实践,通过两者比较,提出了使用敏捷项目管理进行软件开发的方法。目录一、摘要··································1二、项目管理和项目管理在软件中的研究·············3(一)什么是项目管理····················3(二)为什么要项目管理······················3(三)项目管理的发展与现状···················4(四)项目管理在软件开发中的应用的成因·········4三、软件项目开发中遇到的问题·················5(一)重视术轻管理······················6(二)管理工作随影性强、缺乏规范性·············6(三)管理不规范······················7四、软件项目开发各个环节和外部因素存在问题········7(一)对项目经理或项目管理员进行系统的培训·······7(二)加强项目经理的计划意识和管理意识··········7(三)解决沟通意识问题··················8(四)加强项目经理的风险意识·················8(五)解决项目团队内分工协作问题················8(六)解决项目干系人的相关问题·················9五、传统项目管理技术与敏捷项目管理···············9(一)使用传统项目管理技术管理软件开发项目的方法··9(二)使用敏捷项目管理的初步实践···············14六、总结·····························17如果用两个字概括当前社会的特点,那就是变化,而这种变化在信息产业中体现得尤为突出,技术创新速度越来越快,用户需求与市场不断变化,人员流动也大大加快。在这种环境下,企业需要应对的变化以及由此带来的挑战大大增加,也给管理带来了很多问题和挑战。软件行业是一个极具挑战性和创造性的新行业,管理上没有成熟的经验可供借鉴。而项目管理应该说对于软件企业,尤其是那些以应用开发为主的软件企业,是行之有效的管理方法。因此,项目管理在软件开发中的应用日益受到重视。1、什么是项目管理?项目管理是在一定的约束条件下,以高效率地实现项目业主的目标为目的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。2、为什么要有项目管理?没有项目管理,项目也有可能成功。但没有管理的项目,很难保证项目的利润空间,对公司来说,亏损的风险就大。所以我们要有项目管理,以保证公司在总体上是盈利的,注意不是每一个项目都要盈利。另外,有了项目管理,就有了管理改进的基础,无论刚开始的项目管理多么糟糕,只要有管理,就有了改进的可能性,至于能不能得到改进,以及改进的快慢,则取决于两个因素:一个是人,特别是各级管理者;另一个是利益。关键是利益,准确的说是利益的分配,在权责利明确的前提下,人才能充分的发挥作用。还需要指出的是利益是多元的,这里的多元不仅指利益的具体形式,而且指利益的受众是多元的,包括客户方相关人员个人的利益。3、项目管理的发展与现状。今天,项目管理作为一种现代化管理方式在国际上已获得了广泛的应用,从最初的国防、航天、建设工程领域,迅速发展到电子、通信、计算机、软件开发、金融等行业以及政府机关的项目管理工作。随着计算机、网络系统的迅速发展,项目管理技术的不断进步,项目管理软件产品层出不穷,其功能、特点、应用对象也各不相同。当前,越来越多的企业和组织在内部推广项目管理的理论方法及管理模式,如果都采用项目管理软件进行管理,效果就更加明显,可以节省大量的资源和财富。国外90%以上的项目管理都采用软件进行,但我国在这方面的应用还不到10%。新世纪项目管理在中国的迅速兴起,给软件企业的发展带来了前所未有的发展机遇。4项目管理在软件开发中的应用的成因随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作,每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化管理,专业分工也可以降低对开发人员的要求,从而降低产品研发成本。随着计算机硬件水平的不断提高和信息技术的飞速发展,计算机软件的应用发威越来越广,软件产品的规模也日益庞大,软件复杂度越来越高。传统“作坊式”开发模式已经不适应发展的需要,大型软件项目必须按软件工程的开发模式,由团队共同协作完成。各软件企业都在积极将软件开发人员特别是软件项目管理人员,需要进一步地理解和掌握现代软件开发人员特别是软件项目管理人员,需更一步地理解和掌握现代软件工程的理论方法,完成思想转念上的转变。如果软件开发过程中缺乏同意有效的项目管理,将造成软件成本日益增长,开发进度难以控制以及软件质量差、软件维护困难等情况。因此为了使软件项目能够按照预定的成本、进度、质量顺利完成,必须对软件开发过程实施项目管理,规范软件开发的过程。软件开发不同于其他产品的制造,软件的整个过程都是设计过程(没有制造过程),另外,软件的开发不需要大量的物质资源,而只要是人力资源;并且软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。所以说,软件项目管理和项目管理相比,有很大的独特性随着现代软件技术的发展,人民开始总结出软件开发的首要问题不是技术问题而是管理问题,软件项目的成败很大程度上取决于对其开发过程的管理和控制,软件企业的开发是有在形成一套完整而规范的过程后才能对开发进行有效的控制、开发高质量的软件。当前的软件项目成功率很低,软件项目出现了如此多的问题有很多原因的,大概归纳如下;第一、重视术轻管理。事实上,项目管理依赖于技术支持与管理的支持,如果技术与管理其中如何一方存在薄弱的环节,项目将面临很大的风险。第二、管理工作随影性强、缺乏规范性。项目的成败过分的依赖与项目经理与用户领导的能力,管理工作随意性强,缺乏规范性,一旦人员有变动,项目将面临较大的风险第三、管理不规范。项目内部缺乏交流、信息交流不畅通,缺乏统一管理。综上所述,软件项目在开发过程出现这样那样的不足,存在这些问题的主要原因有两个,一是对软件研发项目管理上存在认识不组。管理实际上是一把手工程,需要高层管理人员的足够重视。通过分析目前项目管理需要改进的问题,可以从几种相关角色的角度去考虑解决问题的可行方案:项目经理,项目组成员、市场人员、客户等。1对项目经理或项目管理员进行系统的培训项目经理接受系统的项目管理知识培训是非常有必要的,有来了专业领域的知识与实践,再加上项目管理知识与实践和一般管理的知识和经验的有机结合,必能大大提高项目经理的项目管理水平。。应实行项目经理知识技能资格考核制度,让项目经理自觉补充学习项目管理的知识和一些常用工具和方法2加强项目经理的计划意识和管理意识在高技术行业,日新月异的主要特点,因此计划的制定需要在一定的条件的限制和假设之下采用渐进明细的方式进行不断的完善。提高项目经理的计划意识,采用项目计划制定相关各种知识、技术、工具,加强对开发计划、阶段计划的有效性进行事前事后的评估。加强项目管理方面的培训,并通过对考核指标的合理设定和宣传引导项目经理更好地做项目管理工作。技术骨干在担任项目经理之前,最好能经过系统的项目管理知识,特别是期中报的人力资源管理、沟通管理的学习,并且在实际工作中不断提高自己的管理素质,丰富项目管理经验,提高项目管理意识。3解决沟通意识问题制定有效的沟通制定和沟通机制,对由于缺乏沟通而造成的事件进行通报作为教训提醒,以提高沟通意识;沟通方式应根据内容而多样化,讲究有效率的沟通;通过制度归队对由于未及时收取邮件而造成的损失的责任归属;对于特别重要的内容要采用多种方式进行有效沟通以确保传达到位,例如发送邮件外还有电话提醒。回执等,重要的内容还有通过举行各种会议进行传达4加强项目经理的风险意识通过学习项目经理知识掌握风险识别、量化、对策研究、反应控制的工具和方法掌握项目风险管理所必备的知识。总结本行业项目中常见的风险及其对策作为风险管理计划中必要的风险内容,别切实评估相应的对策的有效性和可行性5解决项目团队内分工协作问题项目团队内部有时由于各阶段不同角色或同阶段不同角色之间的责任、分工不够清晰而造成工作互相推诿,责任互相推卸的现象,这些想象或多或少地造成了项目团队内部资源的损耗,从而影响了项目的进展。项目经理应当对项目成员的责任进行合理的分配并清楚地说明,同时应强调不同分工、不同环节的成员应当互相协作。共同完善6解决项目干系人的相关问题项目干系人员宝坤项目经理、项目成员和客户等项目相关人员。项目的目的就是实现项目干系人的需求和愿望。项目干系人管理应当从项目的启动开始,项目经理及其项目成员就要分清项目干系人包含哪些人和组织,通过沟通协调对他们施加影响,驱动他们对项目的支持,调查并明确他们的需求和愿望,减少其对项目的阻力,以确保项目获得成功。现在让我们把传统技术管理软件开发项目的方法和敏捷项目管理方法进行比较一使用传统项目管理技术管理软件开发项目的方法按照《人月神话》的说法,软件开发是个焦油坑,书店里关于软件开发管理的书籍林良满目,各个软件开发组织也在尝试和应用不同的软件开发管理办法,希望寻找到“软件开发的银弹”。在软件开发管理中,引入项目管理的办法,已经得到广大软件开发管理人员的一致认同,但对于具体实施何种项目管理办法,各个软件开发组织都有不同的答案,更多的迷茫,因为引入的项目管理办法不能从根本上解决软件开发项目面临的进度拖后、费用超支等问题,软件开发的银弹到底在哪里?以下是我对国内软件开发组织不同项目管理成熟度的归纳和总结,大概可以分如下几类;1)小作坊、混沌形的,这样的组织还处在接单求生存的阶段,管理者还根本没有项目的意识,以满足客户需求、定制开发和回款为第一要务;2)尝试按照项目管理的思路与方法管理软件开发项目,但发现推行困难,不得要领,目前很多中小型的软件开发组织都处于这个阶段;3)大型的软件企业,已经通过CMM|ISO认证、有足够的资源做保障,实行规范的项目