1.
为什么需要软件项目管理方法和工具
软件开发和项目管理是软件企业最主要的工作,两者相辅相成,缺一不可。项目管理应当覆盖整个软件开发过程。
软件项目管理的主要工作有:立项与结项、项目规划与监控、风险管理和变更管理、需求管理、质量管理、软件配置管理等。
软件开发的主要过程域有:需求开发、软件设计、软件实现、软件测试、软件发布、客户验收、软件维护等。
由于软件开发和项目管理都是智力型工作,人们很难靠常识和直觉形成和谐的团队工作。如果企业没有统一的项目管理方法和工具,每个人都采用自己的做事方法的话,那么人越多就越乱,形成了“土匪、游击队”的工作方式。阻碍国内IT企业发展的瓶颈问题通常不是技术问题,而是杂乱无章的管理。
项目管理方法和工具对企业的主要贡献是:让所有项目成员有条不紊地开展工作,在预定的时间和成本之内,开发完成质量合格的产品,从而使企业和个人获得预定的利益。
2. 常见软件项目管理方法介绍
2.1 CMM/CMMI
1986年11月,美国联邦政府委托卡内基梅隆大学(Carnegie-Mellon)软件工程研究所(SEI)开发一套用于评估软件承包商能力的方法。SEI于1987年9月发布了一套软件过程成熟度框架和一套成熟度问卷。1991年,SEI将软件过程成熟度框架发展成为软件能力成熟度模型(Capacity
Maturity Model,CMM),诞生了CMM 1.0。
十几年来,CMM的改进工作一直不断地进行。美国国防部希望把现在所有的、以及将被开发出来的各种能力成熟度模型,集成到一个框架中去。到2000年,CMM演化成为CMMI(Capability
Maturity Model Integration,能力成熟度模型集成)。CMMI不仅适合软件,而且适合于软件硬件结合的系统,这是对CMM最大的改进。
CMM将能力成熟度分为5个级别,这5个成熟度等级为评价机构软件过程能力提供了一个有序的级别。同时也为机构的软件过程改进工作指明了方向,让人们分清轻重缓急,指导人们一步一步地改进过程能力而不是企图跳跃式地前进。
CMM有一个重要的概念是关键过程域(Key Process Area)。关键过程域指出为了达到某个成熟度等级必须要解决的一族问题。除了初始级(即CMM
1级)以外,每个成熟度等级都有若干个关键过程域。
CMM 2级有6个关键过程域:需求管理,软件项目规划,软件项目跟踪与监督,软件子合同管理,软件质量保证,软件配置管理。
CMM 3级有7个关键过程域:机构过程焦点,机构过程定义,培训大纲,集成化软件管理,组间协调,软件产品工程,同行评审。
CMM 4级有2个关键过程域:定量过程管理,软件质量管理。
CMM 5级有3个关键过程域:预防缺陷,技术革新管理,过程变更控制。
CMM共有18个过程域,基本上覆盖了项目管理和软件开发的工作。目前CMM/CMMI已经成为世界范围内用于衡量软件开发和管理能力的事实上的标准。
CMM/CMMI的主要应用问题:
用CMM/CMMI指导企业的软件过程改进工作是相当不错的,但是企业要做的重要事情显然不仅是软件过程改进。企业最关注的是生存和发展问题,一切离不开赚钱。CMM/CMMI本身不谈如何赚钱的问题。它假设了美好的前提条件,即企业有充足的人员、资金、时间从事软件过程改进,当软件过程能力提高了,那么产品的质量、生产率自然上去了(同时成本也下降了),企业自然能够获取更多的利润。软件过程改进对企业经济效益的贡献是间接的,从投入到产出,时间相对比较长。
遗憾的是,国内大部分企业没有能力提供那么好的前提条件,企业最缺乏的资源往往就是人员、资金和时间,企业领导当然想把资源用在“刀刃”上,即赚钱最多最快的地方。当软件过程改进和其它直接赚钱的事情“发生资源冲突”时,只好“拆东墙,补西墙”,往往减少软件过程改进的资源。
作者对应用CMM/CMMI的建议:
CMM/CMMI是衡量企业软件过程能力的国际标准,它对软件过程改进有很多有益的指导。CMM/CMMI仅仅对等级评估做了强制要求,但是对企业“如何进行软件过程改进”没有强制要求,CMM/CMMI的数百页文本并不是“放之四海皆准”的,企业可以采纳也可以不采纳。
对于软件过程改进而言,CMM/CMMI是用来参考的,而不是用来迷信的。企业在参考业界推荐的标准或规范时,要舍弃那些听起来很先进但是对本企业无益处的东西,只选取对企业有实用价值的东西。
2.2 项目管理知识体系(PMBOK)
项目管理协会(Project Management Institution,PMI)于1966年在美国宾州成立,是目前全球影响最大的项目管理专业机构,该机构的项目管理专家认证(Project
Management Professional,PMP)被广泛认同。PMI的突出贡献是总结了一套项目管理知识体系(Project
Management Body Of Knowledge,PMBOK)。
PMBOK总结了项目管理实践中成熟的理论、方法、工具和技术,也包括一些富有创造性的新知识。PMBOK把项目管理知识划分为9个知识领域:综合管理、范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理和采购管理。每个知识领域包括数量不等的项目管理过程。
PMBOK和CMM/CMMI对比简评:
CMM/CMMI论述的项目管理方法仅仅适用于软件项目,但是不适用于其它行业的项目管理。PMBOK论述的方法适用于任何行业的项目管理,但是对软件项目管理而言,PMBOK的针对性不够强。
CMM/CMMI不仅论述软件项目管理,而且论述整个机构的软件研发管理。PMBOK的方法局限于项目管理,对于企业研发管理则不够用。
CMM/CMMI基本上不谈“成本管理”和“人力资源管理”,它先假设机构有充足的资金和人力资源,通常不切合企业实际情况。因此PMBOK的“成本管理”和“人力资源管理”可以弥补CMM/CMMI的不足。
作者建议:软件机构采用CMM/CMMI作为主导的方法论,同时要学习PMBOK的知识,取长补短。
3. 常见软件项目管理工具介绍
如果你在互联网上搜索“项目管理工具、项目管理软件”,可以找到上百个项目管理工具。由于企业的情况各色各样,没有办法评选出最好的项目管理工具,因为一个功能很强的管理软件如果不适合客户,那么对于这个客户而言该软件就不是很好。本文只能介绍几个比较有名气的软件,简要说明它们的特征,企业在采购软件的时候一定要根据自身需求去分析、选择。
最有名、用户量最大的项目管理工具当推Microsoft Project(个人使用),及其延伸版本Project
Server(团队使用)。它的主要优点是:
◆帮助用户编制任务进度计划、管理各种资源(人力、设备等)、管理费用;可以绘制Gantt图、各种统计图形、生成图文并茂的报表。
◆该软件非常容易使用,不需要专门的培训用户自己就能学会。易用性是Microsoft软件产品的共性优点。
◆在国内,广大计算机用户很容易得到该软件(绝大多数是盗版),这也是用户量最大的根本原因。
Microsoft Project几乎可以管理任何行业的项目,这既是优点也是缺点:适用面太广了,就缺乏针对性。例如,仅仅使用Microsoft
Project来管理软件项目是不够的,因为Microsoft Project不支持软件项目中的立项与结项、变更管理、需求管理、质量管理、软件配置管理等重要管理工作。
在IT行业比较有名的项目管理工具有:
◆CA公司的项目管理套件:Clarity Portfolio Manager用于战略管理;Clarity
Resource Manager 用于资源管理;Clarity Project Manager用于项目日常工作管理;Clarity
Financial Manager用于项目财务管理;Clarity Process Manager用于项目流程管理。
◆Primavera公司的中低短产品SureTrak Project Manager,高端产品TeamPlay。
◆IBM 的PMOffice。PMOffice原本在大型项目管理领域很有名气,IBM收购PMOffice之后将其纳入Rational旗下,但是目前PMOffice尚未与Rational原先的软件工程系列产品很好地整合。
上述项目管理工具都是国际知名公司的软件产品,尽管它们的功能和品牌已经相当卓越,但是并非普遍适合中国IT企业。主要原因是:
◆国内大部分IT项目都是中小型项目,如果采用上述项目管理工具,不仅大材小用,而且把使用者累死。
◆国内大部分IT企业买不起上述项目管理工具,由于它们的复杂性远远高于Microsoft Project,即使有人拿到了盗版软件,由于得不到专业培训和服务,他也用不好。
作者建议:国内IT企业选择项目管理工具时,应当综合考虑“价格、功能、易用性”,最好亲自试用后,再作决定。
4. 集成化项目管理方法SPP
作者从2002年开始创作并不断改善适合国内中小型IT企业的集成化研发管理方法论,称为“精简并行过程”(Simplified
Parallel Process, SPP)。SPP 的模型如图1所示,SPP有三类过程:项目管理过程,项目研发过程,机构支持过程,共12个过程域。“精简并行”的含义是:
◆对CMMI 3级以内各过程域的内容和要求作了“精简”处理。
◆项目管理过程、项目研发过程和机构支持过程“并行”开展。
SPP的主要优点:
◆SPP融合了CMMI、项目管理与软件工程知识,定义了易于执行的软件开发和项目管理规范(约60页文本)。过程模型清晰直观,机构领导、项目经理、项目成员(开发人员、测试人员等)很容易知道自己“应该在什么时候、按照什么规范做什么事情”。SPP模型有助于企业各个职能单位有条不紊地开展工作。
◆用户可以根据本企业的特征,适当地裁剪或扩充SPP的过程域,很容易制定出最适合于本企业的过程模型。
SPP的主要缺点是:它不是标准,也没有相应的认证,不具备CMM/CMMI、ISO9000认证的宣传价值。
5. 集成化项目管理Future
Future是和SPP方法论配套的集成化项目管理系统,主要功能有:组织结构和人员管理、立项与结项、项目规划与监控、需求开发与管理、风险跟踪和变更管理、质量管理、配置管理、日常工作管理、领导综合管理、论坛等。Future的功能结构如图2所示。
Future的目标是“让项目管理变得简单有效”,主要客户是国内中小型IT企业,主要最终用户是IT企业的研发主管、项目经理、开发人员、测试人员和质量管理人员等等。
Future软件的主要优点是:
◆物美价廉、富有成效的集成化项目管理工具。
Future将最常用的项目管理工具全部集成于Web环境,企业不必购买多个分立的管理工具,避免了管理工具之间不兼容、数据孤立的问题。不仅提高了研发管理效率,而且大大降低了购买工具的成本。
Future软件不仅可以为企业建立完备的研发管理数据库,而且帮助企业领导对所有项目的人员、进度、工作量、成本、质量进行分析,为研发绩效考核提供客观依据。
◆容易扩展、与流行软件兼容
Future的所有页面数据可以导出到Excel和Word文件;可以导入、导出 MS Project
数据文件;
Future可以访问配置管理软件CVS的文件库;
Future将集成更多的工具,如客户服务管理系统、人力资源管理系统等。
为了方便地和企业现有的管理系统交互信息,我们提供编程接口,并帮助用户对Future进行二次开发。
小结:SPP和Future是国内“土生土长”的研发管理方法和工具,比较适合国内中小型IT企业的需求。这些IT企业采用
SPP 和 Future后,有助于快速平稳地提升研发管理能力,付出的成本和精力相比于CMM/CMMI要低得多(大约不到20%)。
|