时间:2022-04-11 03:38:07
绪论:在寻找写作灵感吗?爱发表网为您精选了1篇软件项目论文,愿这些内容能够启迪您的思维,激发您的创作热情,欢迎您的阅读与分享!
论文关键词:软件项目 风险管理 策略 监控
论文摘要:在软件项目管理中,频繁的人员流动是软件项目的一个风险,为了缓解这种风险,项目管理者必须建立一套策略来降低人员流动,同时,还需要监控某些因素,这些因素可以提供风险是否正在变高或变低的指示,通过这种监控管理,妥善地处理风险事故造成的不利后果,最终实现项目的总体目标。
一、引言
在软件公司中,技术人员的流动性一直处于比较高的水平,因此给公司带来了很大的损失,要想改变这种现状在短期内恐怕难以做到。但这个问题又一直困扰着公司的项目管理者,特别是与软件项目组人员组织相关的频繁的人员流动给软件项目带来了极大的风险。那么,认识到这种风险后,怎样来对这种风险进行有效的控制,采取主动行动,创造条件,尽量扩大风险事件的有利后果,妥善地处理风险事故造成的不利后果,最终实现项目的总体目标,这是本文笔者要讨论的问题。
软件风险是指软件开发过程中及软件产品本身可能造成的伤害或损失。风险关注项目未来的发展,这意味着风险涉及选择及选择本身包含的不确定性,在软件开发过程及软件产品都要面临各种决策的选择。风险是介于确定性和不确定性之间的状态,是处于无知和完整知识之间的状态。同时,风险将涉及思想、观念、行为、地点等因素的改变。
一般来说,在软件项目中,存在以下一般性风险:(1)产品规模风险—与要建造或要修改的软件的总体规模相关的风险;(2)商业影响风险—与管理或市场所加诸的约束相关的风险;(3)客户相关风险—与客户的素质以及开发者和客户定期通信的能力相关的风险;(4)过程风险—与软件过程被定义的程度以及它们被开发组织所遵守的程度相关的风险;(5)技术风险—突破技术的极限极具挑战性和令人兴奋,但这也是有风险的;(6)开发环境风险—与用以建造产品的工具的可用性及质量相关的风险;(7)与人员及经验相关的风险—与参与工作的软件工程师的人数、稳定性、总体技术水平及项目经验相关的风险。
二、降低风险可采取的策略
如果软件项目组对于风险采取主动的策略,则“避免”永远是最好的目标。这可以通过建立一个风险缓解计划来达到。在软件项目中,频繁的人员流动被标注为一个项目风险,基于以往的历史和管理经验,人员流动的概率为70 %,被预测为对于项目成本及进度有严重的影响。而软件项目中,人员的频繁流动又是一个无法改变的现实,为了缓解这个风险,项目管理者必须建立一个策略来降低人员流动。可采取的策略如下:
1.找出人员流动的原因。可以与项目现有人员一起探讨人员流动的原因,比如是否公司提供的工作条件不如人意、报酬偏低、竞争激烈等。找出原因后,提出解决问题的策略,在可能的范围内改善工作条件,至于报酬,不可能无限地增加,可以把工作业绩和报酬挂钩,提高员工的工作积极性,适当控制竞争的程度,最重要的一点是要培养员工对公司的归属感。
2.在项目开始之前,分清哪些是可控的,哪些是不可控的原因,采取行动以缓解那些在管理控制之下的原因,“预防”总比“救治”更主动。
3.一旦项目启动,假设会发生人员流动并采取一些技术措施以保证当人员离开时的工作连续性。
4.对项目进行良好组织,使得每一个开发活动的信息能被广泛传播和交流,定期召开项目组工作协调会议,随时掌握项目的进展情况。
5.定义文档的标准,并建立相应的机制,以确保文档能被及时建立。
6.对所有工作进行详细复审,使得不止一个人熟悉该项工作。
7.对于每一个关键的技术人员都指定一个后备人员。
三、降低风险的监控因素
1.随着项目的进展,风险监控活动开始进行。项目管理者监控某些因素,这些因素可以提供风险是否正在变高或变低的指示。在项目组的人员管理中,应该监控下列因素:(1)项目组成员对项目压力的一般态度;(2)项目组的凝聚力;(3)项目组成员彼此之间的关系;(4)与报酬和利益相关的潜在问题;(5)在公司内及公司外工作的可能性。
2.除了监控上述因素之外,项目管理者还应该监控风险缓解步骤的效力。例如:上述风险缓解步骤要求定义“文档的标准,并建立相应的机制,以确保文档能被及时建立”。如果有关键的人物离开了项目组,项目管理者应该仔细地监控这些文档,以保证文档内容正确,当新员工加人该项目时,能为他们提供必要的信息,这是保证工作连续性的条件。
3.风险管理及意外事件计划假设缓解工作已经失败,风险变成了现实。继续前面的例子,假定项目正在进行中,有一些人宣布将要离开。如果按照缓解策略行事,则有后备人员可用,因为信息已经文档化,有关知识已经在项目组中广泛进行了交流。此外,项目管理者还可以暂时重新将资源调整到那些需要人的地方去,并调整项目进度,从而使新加人的成员能够赶上进度。同时,要求那些要离开的人员停止工作,进人“知识交接模式”。
总之.当对软件项目期望值很高时,一般都会进行风险分析。不过,即使进行这项工作,大多数软件管理者都是非正式地和表面地完成它。用在标识、分析、管理风险上的时间可以从多个方面得到回报:更加平稳的项目进展过程;较高的跟踪和控制项目的能力;因为周密计划而产生的信心。
四、总结
风险管理意味着危机还没有发生之前就对它进行处理,这就提高了项目成功的机会和减少了不可避免风险所产生的后果。实践经验证明,最成功的项目就是采取积极的步骤对要发生或即将发生的风险进行管理。对任何一个软件项目,可以有最佳的期望值,但更应该要有最坏的准备,“最坏的准备”在项目管理中就是进行项目的风险管理。
论文关键词:软件项目管理 软件可靠性 决策支持系统
论文摘要:本文在解释软件项目管理和决策支持系统的基础上,分析出软件项目管理的局限性,进而说明应用软件项目管理的决策支持系统的必要性。最后从软件项目管理的角度来分析决策支持系统的目标,以及软件项目管理的决策具有多级性。
随着现代科技的发展,计算机应用于各个领域的管理,各个领域需要用软件系统扩展和提高自己的业务。针对不同的行业和产业,研制出了不同的项目管理软件。项目管理软件主要完成的项目管理活动分为管理活动和工程活动两类。例如:项目立项评审:评估项目立项条件是否具备,如相关部门移交资料是否齐全,客户信息是否完整,团队成员是否恰当等等;项目计划评审:评估项目计划合理性,是否与公司其他项目资源和运营目标冲突(回款):SCM(项目配置管理、Software Configuration Management):系统管理和项目有关的各类文档和软件版本,确保项目的惟一性资料信息被留存,可随时追溯项目各阶段关键文档记录(例如备忘录)。工程活动包括项目要获得实质性进展必须要做的工作,例如写计划,做需求调研,写解决方案,变更项目范围,项目启动大会,项目例会,项目里程碑会议,项目紧急事件处理会议,项目备忘录,项目验证,项目培训,项目小范围试运行,项目验收报告等等都是工程活动。
软件项目管理能完成若干事情,但是,由于软件开发过程以及应用过程中,诸多因素会造成软件的不可靠性,例如:1.需求分析定义错误。如用户提出的需求不完整,用户需求的变更未及时消化,软件开发者和用户对需求的理解不同等等。2.设计错误。如处理的结构和算法错误,缺乏对特殊情况和错误处理的考虑等。3.编码错误。如语法错误,变量初始化错误等。4.测试错误。如数据准备错误,测试用例错误等。5、文档错误。如文档不齐全,文档相关内容不一致,文档版本不一致,缺乏完整性等。另外程序代码错误,也可以造成软件的不可靠性。程序代码一个最直观的特性是长度,另外还有算法和语句结构等,程序代码越长,结构越复杂,其可靠性越难保证。所以提高可靠性从原理上看就是要减少错误。而决策支持系统(Decision Support System,简称 DSS)正好可以解决这些问题,它能很好的将那些微结构或无结构、不确定和零散的关联因素有机的综合起来,进行分析、比较和定量化,给决策者以支持,减少了决策的主观性。可见,研究并开发一个软件工程项目质量决策支持系统(Decision SupportSystem For Software Engineering Project Quality,简称SEPQDSS)对于软件企业的管理者,对于企业开发出高质量的软件产品,对于企业的长期发展来说都是至关重要和必要的。
这里所说的决策支持系统(decision support system,简称dss)是指辅助决策者通过数据、模型和知识,以人机交互方式进行半结构化或非结构化决策的计算机应用系统。决策支持系统作为一种新兴的信息技术,能够为企业提供各种决策信息以及许多商业问题的解决方案,从而减轻了管理者从事低层次信息处理和分析的负担,使得他们专注于最需要决策智慧和经验的工作,因此提高了决策的质量和效率。
决策的进程一般分为4个步骤:发现问题并形成决策目标、用概率定量地描述每个方案所产生的各种结局的可能性、决策人员对各种结局进行定量评价,一般用效用值来定量表示、综合分析各方面信息。决策支持系统的基本特征:对准上层管理人员经常面临的结构化程度不高、说明不够充分的问题:把模型或分析技术与传统的数据存取技术及检索技术结合起来;易于为非计算机专业人员以交互会话的方式使用;强调对环境及用户决策方法改变的灵活性及适应性;支持但不是代替高层决策者制定决策。
决策支持系统的灵魂是先进的管理思想。一个成功的DSS应用,应该融合了优秀的管理思想,能给应用者提供分析和解决问题的有效的方法论。DSS中所包含的计算机软硬件技术,则是将这种管理思想和方法论具体表现出来,从而让DSS用户在使用过程中能够贯彻这种管理思想、实践这种方法论。组织整体的管理绩效因此而得到提高。这从另一角度说明,应用者必须首先整合自己的管理思路,提升管理意识,明确通过DSS将实现的管理目标,才能开始DSS的实施。
从软件项目管理的角度来讲,决策支持系统的目标是使软件的功能更好地满足客户的要求,并且能在规定的时间内,在预计的资金下,开发出一个高效率,质量和可靠性能够满足要求的软件。具体包括以下五方面:软件功能完备(软件的需求完备),资金控制在计划之内,时间控制在计划之内,软件的效率和可靠性符合要求,人员之间能够合理协调达到最好的效率。
软件项目管理的决策具有多级性。因此,决策制定程序是比较复杂的。一般来说可分为三个层次:第一层,决策路线层,反映了由决策任务的提出、多级决策、批准实施的全过程;第二层,决策工作层,由决策对象进入某一个部门开始,到送出这个部门截止的部门内部处理;第三层,决策分析层,指一个部门内单个决策者或决策小组分析问题所处的环境、确定目标,并提出方案(设计)、评价分析及解决方案抉择和实施反馈的具体步骤。
由此可见,决策支持系统在软件项目管理中的应用是非常必要而且有其重要价值的。
论文关健词:软件项目管理 收尾管理阶段管理
论文摘要:在实际软件项目管理中,阶段性的收尾管理工作往往不被大家重视,其实阶段管理收尾工作也是非常重要的。本文从阶段评审,文档记录等方面来阐述软件项目管理中阶段收尾管理的重要性
随着计算机和信息产业的发展软件产品的规模也是越来越庞大,随着软件规模的扩大软件人员的增加软件项目管理的复杂性增大,各个软件企业都意识到将项目管理的理念引入到软件开发活动中开始对开发过程进行有效的管理又所谓“IT项目管理”或“软件项目管理’软件项目管理就是为了使软件项目能够按照预定的成本、进度、质量的顺利完成而对成本、人员、进度、质量、风险等进行分析和管理的活动。随着软件开发规模及开发队伍的逐渐增大软件开发活动不再是像过去的几个开发人员就可解决的事情,它需要使用开发规范或开发流程控制来约束每个开发人员、测试人员和维护人员的工作.以保证每个项目组成员按开发计划及进度准时、保质完成自己的任务。软件项目管理的各个过程主要包括二需求管理范围管理任务分解规模估算成本管理进度计划质量计划配置管理计划,风险计划文档管理团队建设,跟踪控制收尾管理项目结束。项目收尾管理作为项目结束前的最后管理工作也显得及其重要一般包括合同收尾和管理收尾两部分。合同收尾就是项目管理人员与客户对照合同一项项的核对审核是否完成了合同所要求的内容是否达到合同所提出的指标或条件也就是我们通常所讲的客户验收管理收尾就是对于项目组内部把做好的项目文档、代码、与客户交流的文件等归档保存对项目中遇到的问题及解决方法、有效的创新技术进行及时地总结,对外宣称项目结束转入维护期把相关的产品说明及技术文档转到维护组。
一、阶段收尾管理
软件项目结束的状态:
1.正常结束。2提前结束3延期结束4暂停。5取消(因变更或不可完成)。软件开发是一项复杂的系统工程牵涉到各方面的因素在实际工作中经常会出现各种各样的问题甚至面临失败。而如何总结、分析失败的原因得出有益的教训.这对一个公司来说则是今后项目中取得成功的关键。
以前会听说过这样的项目:客户验收后项目活动就随之收场,项目资料没有认真归纳总结不是束之高阁就是缺失不全但是当新项目启动时.面对新的项目问题项目组成员才发现:其实这类问题以前也遇到过,但是却无法找到相应的解决方案资料只好再投入人力、时间甚至金钱来重新经历一遍为什么相同的问题会重复出现,究其根源是因为缺少项目总结也就是说没有做好项目收尾工作。那么是不是我们只能等到项目结束或收尾时才能开始进行项目总结文档保存的工作呢:当然不是在软件项目管理的各个阶段我们都可以做收尾管理工作,也就是阶段收尾管理工作。
二、阶段收尾管理的重要性
在实际软件项目管理中.阶段性的收尾管理过程和工作往往不被大家重视其实阶段性的收尾管理工作也是非常重要的。阶段收尾管理工作的重要性主要体现在如下几个方面:
1进度管理中的里程碑每个项目都是由若干个相对独立的任务链组成的软件项目也是如此。只有在任何一条任务链都已经优化的基础上才可能进行系统的全面的优化因此保证每条任务链的效率是整个项目进度完成的前提和基础.只要能保证里程碑事件的按时完成,整个项目的进度也就有了保障。那么我们在里程碑点都来做些什么呢:
在计划好的阶段管理工作中.收集项目的最新信息和数据.并将这些数据与项目计划进行比较,来判定项目的阶段效率,进度是提前了还是落后了,成本是在控制中还是超支了?质量是否符合要求。客户对阶段工作结果满意么,及时总结经验与教训.同时及时发现项目存在的或潜在的问题以便近早采取纠正措施这就是阶段管理工作中的收尾管理,所以说阶段收尾管理是进度中的里程碑是整个项目进度优化的前提和基础。
2沟通管理中的契机沟通是保持项目顺利进行的润滑剂。与传统项目相比软件项目具有较高的技术含量和较大的风险。参与软件项目建设的用户并不都是软件开发专家.他们具有丰富的业务经验但是很少能了解软件开发的技术.随着项目工作进程的深入就会有许多新的问题出现与客户的及时有效沟通更显得尤为重要。软件项目是客户和用户共同面对的项目只有双方的积极参与才能促进项目的成功,而只有进行有效的项目沟通管理才能确保用户的积极参与。一个阶段的项目工作完成后与客户一起就前一段时间的工作进行总结和检查是十分必要的。一方面可以及时了解客户对项目工作的满意程度及时统计、分析客户对项目的意见.为下一阶段工作的顺利进行提供了保障另一方面有些因工作繁忙未能及时签署的文件,也尽快找客户给予签字确认。当双方出现纠纷时,只有双方签字的文字记录才是最有用、最有说服力的证据。
3收尾管理的基础。一个项目阶段的工作刚完成时项目组成员都保留着最新的阶段记录如阶段文档或最新的代码版本这个时候收集起米是非常容易的时间随着人员的变动或者项目的需求变更有些项目成员可能离开了项目组那时再去收集他们保存的文档资料就非常困难了,甚至有些记录永远也找不到了。好多大的软件开发项目跨几年的时间项目经理可能已经换了几任客户的项目主管也换了几位最后项目收尾管理时的文档收集、总结的工作,就是在阶段收尾管理的基础上来确保每个阶段的文档、资料都能按时完整地保存、归档。只有阶段管理收尾提供的数据信息越真实、越准确.才能保证在项目最终收尾时客观评定项目的绩效总结的经验教训和文档资料才有真正借鉴的价值总而言之.作为一个好的项目经理,一定要重视进度中的里程碑事件抓住与客户沟通的契机做好项目阶段工作的总结收尾工作如何做好这些工作呢。也就是要做好项目阶段管理收尾工作。阶段收尾管理工作是保证项目成功的重要管理手段它和项目的其他工作一样应该纳入项目计划并按计划落实。
论文摘要:软件项目管理中存在复杂的不确定性和非线性性,特别在进度管理当中。文章采用系统动力学的方法模拟了两阶段软件项目的实施过程,该模型可以对项目的完成时间进行有效的预测,同时还讨论了人员的分配对项目进度的影响。
论文关键词:软件项目管理;进度管理;系统动力学;预测;人员分配
为解决“软件危机”,学术界和业界将项目管理理论借鉴到软件开发中,诞生了软件项目管理。众所周知进度管理、质量管理和成本管理为软件项目管理主要内容。在进度管理中,一般都采用传统项目管理方法,如甘特图、关键路径法和计划评审技术,它们都建立在项目可以分解为独立的工序上,而在实际软件项目管理中,各个阶段(工序)之间是相互联系的,如前一阶段未发现的错误会影响到后一阶段的实施,同时当后一阶段发现前一阶段有错误时需要前一阶段返工,等等如此现象很多,这种相互影响往往是非线性的,这在传统的网络图中难以表达,也超出了管理者头脑能达到的理解范围。
20世纪50年代麻省理工学院的Forrester教授创立的系统动力学为解决动态复杂问题提供了一种可行的理论、观点、方法与工具。
1系统动力学概述
20世纪50年代Forrester教授将计算机科学和反馈控制理论应用于社会、经济等系统的研究。
20世纪纪70年代,系统动力学逐渐发展成为一种了解和认识人类动态复杂系统的研究方法。2O多年来王其藩教授等学者参与了系统动力学在中国的应用研究工作,并做出了重要贡献。
系统动力学在软件项目管理中应用比较少见,用系统动力学的方法讨论了时间和成本估算,用系统动力学方法研究了项目目标进度的设定对项目表现的影响。讨论了系统动力学方法在项目风险管理中的运用,特别是在管理项目风险动态复杂性方向的特色和优势。
系统动力学强调以闭环的观点方法来认识和解决问题,这也决定了它采用反馈环路式的建模方法,即通过分析行为模式背后的反馈环路结构,改变结构中相关变量的值,了解不同策略下的不同行为模式,来完成策略的优化。
系统动力学强调反馈环路的结构关系、时间延迟、信息放大对系统行为的影响,其中结构关系表示系统各组成结构之间的相互关系,时间延迟表示决策行动落后于信息的获得,信息放大表示随着流程与时间的推移,某些信息会被放大,它对决策行为的影响会随之被放大。
2模型的建立
软件项目管理往往包括多个阶段,这些阶段之间是相互联系的,彼此构成网络。但是两阶段间的关系是问题的基础,故以2阶段软件项目开发为例。模型基于如下假设:①每个阶段开发都存在一定的错误,这些错误一部分在本阶段被改正,一部分需要到下一阶段才能发现。②在每个阶段发现错误的机率与从事调试的人员多少有关。③上一阶段遗留的错误影响下一阶段的开发以及调试。④每个阶段的人员是固定的,开发人数多必然导致调试人数少。⑤项目的进度为第一阶段开发,调试,第二阶段开发,第一阶段返工、第二阶段调试。其中第一阶段返工与第二阶段调试是并行的。
2.1状态变量以及之间的衔接
模型中的状态变量共有5个,“毛开发量1”,“已更改项目1”,“返工项目”,“毛开发量2”,已“更改项目2”分别表示第一阶段的开发、调试、返工,第二阶段的开发,调试,其关系如图1。
只有上述5个工序都完成,该项目才算完成,图2用辅助变量“整个项目进度”表示了研究关心的项目进度情况。
2.2速率变量的设定
模型中共有5个速率变量,其设置分别为:实际开发速率1=剩余工作量影响1×开发速率1×开发人效率×开发人数1。
调试1一调试人数1×调试效率×剩余错误影响1×时间衔接1。
实际开发速率2一开发人效率×开发2×剩余工作量影响2×时间衔接2。
调试2一调试人数2×调试效率×剩余错误影响2×上阶段错误×时间衔接3返工=调试人数1×调试效率×剩余遗留错误影响。
需要说明的是:“剩余工作量影响”、“剩余错误影响”、“剩余遗留错误影响”。这三个影响主要采用了如图3的参考模式。
其中“剩余工作量(错误)影响”说明当工作开始时工作速率比较低,当工作解决尾声时速率也比较低,中间速率最快;“剩余遗留错误影响”表示当第一阶段遗留的错误越多,第二阶段的速率越慢;这符合实际情况。
其它辅助变量的设置不再赘述,该模型的整体流图如图4所示。
3项目进度的估算
建立好模型后,通过设置常量和决策变量可以对系统进行模拟。这里令第一阶段和第二阶段的人员都为20人,第一阶段和第二阶段的预计工作量都为1000,错误率为0.2,第一阶段开发人员为10,调试人员为10,第二阶段开发人员为7,调试人员为13,模拟得到的项目进度如图5所示。
从图5可以看出在整个工程160(天)完成,并且在第35(天)第一阶段初次完成开发,在70天完成调试,在125天完成第二阶段初次开发,在160天完成第一阶段的返工和第二阶段的调试。
4人员分配对项目进度的影响
从模型流图(图4)可看出,问题的决策变量是每个阶段人员的分配以及人员的工作效率。提高工作效率自然会加快进度,这不需要讨论,这里主要研究人员分配,特别是第一阶段的人员分配对整个项目进度的影响。
模型假设第一阶段遗留给第二阶段的错误的多少取决于第一阶段从事调试人数,即:阶段1遗留错误一错误一(错误×调试人数1作用)。
其中“调试人数1作用”采用了“S型曲线”参考模式,表示调试人数很少时发现错误的概率小,随着人数增加发现错误概率迅速提升,到人数趋于饱和时概率趋于稳定。
在第一阶段遗留错误对第二阶段的影响上,以对第二阶段的调试工序的影响为例来说明,模型假设第二阶段的调试中能逐步发现第一阶段的遗留错误,故而交给第一阶段返工,同时第二阶段的调试继续进行,并且调试的速度受到第一阶段剩余遗留错误的影响,即:调试2一调试人数2×调试效率×剩余错误影响2×上阶段错误×时间衔接3。
图6分别模拟了总人员为20人的前提下第一阶段开发人员为5、10、15、18共四种情况对应的整个项目的进度。从图中可以看出开发人员为15时进度最快,开发人员过多(18人)和过少(5人)都会导致项目进度的增加,这符合现实情况。导致这样的原理在于:当开发人员过少,则延长了开发过程;当开发人员过多,必然导致调试人员过少,虽然第一阶段的开发过程时间缩短了,但是势必增加调试过程的时间,以及增加遗留错误进而影响下一阶段的进度。故而有一个适中的人员分配方案。
5结束语
软件项目管理系统是一个动态的复杂系统。采用系统动力学的方法有助于分析系统的变化行为,文中的模型主要分析了在总人员不变的情况下人员分配在两阶段项目管理当中的影响。由于实际当中人员可能是变动的,如除了正常的人员流动外,管理者可能通过观察项目的进度人为的调整人数。还有在实际中影响进度的因素很多,如人员更替、工作效率、经济资源等,同时这些因素是互相藕合的,如何更细致考虑这些影响因素从而准确的模拟进度管理需要深入研究。
论文关键词 软件高职 项目实训 人员选择 人员管理
论文摘要 项目实训是软件高职教育课程体系中的重要环节。结合软件高职项目实训中人员管理的实际情况进行分析和论证,同时给出实训人员选择与管理工作的基本原则和方法,并总结其中的一些基本经验。
随着国家大力发展职业教育的政策的出台,职业教育在全国范围逐渐兴起,软件高职教育作为职业教育的一个重要组成部分,为国家和地方培养了大量的具有较强动手能力的一线人才,创造出巨大的生产力,带动整个IT行业的发展,推动经济和社会的进步。项目实训作为软件高职教育课程体系中的一个重要环节,无论是对学生理论知识的拓展还是动手能力的培养都起到至关重要的作用。目前,福建省的软件高职项目实训还处于初级发展阶段,无论在项目设置上还是在管理方式上都存在不足。笔者结合实际教学和管理经验,对软件高职实训中的人员管理方式和方法做初步的分析和探讨。
1 人员的选择
教育的宗旨是以学生为本,平等地对待每一位学生,让他们在最大程度上发挥潜力。但是实训工作毕竟带有一种企业模拟性质,学校注重教育公平,而企业更关注开发效率和项目成本,这两者在一定程度上是此消彼长的对立面。因此,如何通过合理的人员选择和配置,找到既能平等地对待每个学生,又能够最大限度地提高项目团队开发效率的平衡点,是实训项目管理人员所急需解决的现实而又棘手的问题。以下是笔者在实践中探索并采用的2种较为合理的人员选择与配置方案。
1.1 T&R式自由组合法这里的T指的是Test,即测试,包括技术笔试和专业面试。在两项测试之后应形成一个比较合理的量化指标,该指标应着重突出候选人员的技术能力和团队意识,公布所有候选人员的各项量化指标。为保护学生的隐私,在公布时可以用编号取代学生的真实姓名。这里的R指的是rate,即比例。项目管理人员可以预先设定好小组成员结构的技术等级比例,参照学生的综合得分情况,按照1:2:1的高中低3个层次分布比例较合理。这种做法既可以避免单纯比例式自由组合给学生带来的盲目性,也能够比较真实地反映学生的能力水平,可以科学地、客观地组建起较为高效的团队,从而能够在后续阶段提高团队整体工作效率,也为管理工作带来方便。
1.2 T&R交互式人员确定法首先寻找若干名班委组成评审组,项目管理人员或教师负责领导该评审组;接着参照T&R方法得出候选人员的各项评估指标和综合指标,以及小组结构比例;然后由评审小组成员进行数据分析并结合每个成员实际情况确定各小组的组成人员。将初步形成的分组名单公布告知各候选人员,征求每位成员意见,由评审小组跟持反对意见的候选成员进行当面的会议式的沟通,进行合理的调整,经此步骤之后形成最终分组名单并公布。这样做实现候选成员与管理人员之间的交互,能够把纯粹的硬性考核成绩指标转化为“考核成绩指标+交互式分析”。这样较为客观且人性化的评判方式,既能够得到较为真实的数据,又能够吸纳学生合理的意见或看法,从而利于更科学的人员选择。
2 人员的管理
美国心理学家亚伯拉罕·马斯洛把人的需求分成生理需求、安全需求、社交需求、尊重需求和自我实现需求5类,依次由较低层次到较高层次排列,在管理中他建议通过满足人的需求来激发他们。
在学校实训的项目组中,成员的生理需求和安全需求都基本能够得以满足,因此,保证成员的社会需求、受尊重需求和自我实现需求的满足,对管理者来说有十分重要的意义。1)满足组员的社会需求就是为组员提供相互交往的时间和场所。实训项目的交流不应仅局限在小组的范畴,应鼓励小组与小组间的相互交流,条件具备的话可以组织学校跟学校间类似项目组间的交流。形式可以多样化,如电子邮件、组建QQ群、网络会议、座谈会和技术讲座等互动方式。2)为了满足组员受尊重的需求,应该让他们感到在项目小组中受到人格上的尊重,技术长处被认可。对于参加实训的学生来说,对他们做出的成绩给予充分的肯定就是一种简便高效的方式,如针对某个技术环节开展一次技能比赛,或者开展评审会定期对项目阶段成果进行评估,对优秀团队及其成员进行表彰等。3)为满足组员自我实现的需求,应该在项目取得一定成果的基础上,分配给组员具有一定挑战性和难度的任务,这些任务不能超过学生能力的范围,同时给他们提供课外的辅导以提高他们解决这些问题的技能。任务的完成情况可以作为附加评审内容纳入学生最终的实训综合成绩中去,给学生超越自我的动力。
3 团队的管理
3.1 增强小组凝聚力一个有强大凝聚力的小组是最高效的小组,小组中的成员在思想上能够形成共同的准则,在工作中能够紧密配合和协调,组员跟组员之间能够互相学习、相互关照,从而消除隔阂,用集体的力量解决许多工作中的问题。增强小组凝聚力的方式有许多,如给小组起个性化的名字、开展游戏或者室内或户外运动等方式增进组员间的沟通。另外,提高小组组员的责任感、诚信度以及保障他们的知情权、提供发展的空间等,都是增强小组凝聚力的有效方法。
3.2 增强小组沟通沟通作为软件开发过程中的重要环节,对于开发效率的提高和团队的整体发展具有决定性的意义。1)适当的小组规模。在编制小组成员时应考虑到人数对沟通的影响,成员太少,沟通容易但不利于开发效率;反之,成员过多会使得沟通变得十分困难,从而使效率严重下降,因此,合理的人员安排才是关键。根据经验,一个实训小组以4~8个为宜,其中6人组最为合适。2)合理的性别比例。如果小组中的组员性别均相同,可能会导致冲突,使得沟通无法正常进行,所以在确定小组结构时应注意男女比例的控制。对于软件开发类实训项目而言,小组中的男女比例应控制在3:1左右,其中女性组员可以作为小组的协调员。3)适当的小组负责人。小组负责人除了领导小组工作外,还负责协调小组成员之间的沟通。受尊重的小组负责人可以提高小组凝聚力和工作效率,无论对自身的进步还是对整个团队的发展来说都是大有裨益的。
论文摘要:本文介绍了一个基于工作流技术而研制的软件项目管理系统。文章首先描述了传统软件项目管理系统的不足之处,提出用工作流的方法来设计软件项目管理系统,然后介绍了一些理论基础。文中重点阐述了系统的设计结构和所采用的一些技术,并给出了部分的具体实现方法。
论文关键词:工作流,JMS,项目管理,SPP,建模,工作流网
1前言
2O世纪7O年代以来,为了解决软机危机,改进软件过程能力,计算机科学家提出了软件工程的概念,将系统化的、规范化的、可度量的方法用于软件开发、运行和维护的过程。近些年来,随着计算机技术的进一步发展,相应的使用软件工程方法的软件项目管理系统也有了显著的发展。但是,由于开发流程中存在的不确定性以及项目变化等因素,这些系统也暴露出一些不足之处。
传统的软件项目管理系统,一般是由图形用户接口(GUI),应用程序和数据库组成,用户通过GUI向应用程序发出请求,应用程序处理这些用户请求,并且访问数据库,返回用户所要求的结果。这种模型在流程稳定的时候是可以满足需要的,它的缺点在于:
1)建模过程是之前设定好的,无法改变;
2)缺乏柔性,系统开始运行之后,预先定义好的条件就无法改变了;
3)可扩展性较差,如果想要增加或者修改相应的功能,整个系统必须重新开发。
目前,对工作流技术的研究以及相关产品的开发是国内外学者研究的热点问题之一,很多管理系统都采用工作流技术来克服上述问题。工作流起源于生产组织和办公自动化领域,它是针对日常工作中具有固定程序的活动而提出的概念。目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高办事效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标。
WFMC给出的工作流定义是:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行,以实现整体的业务目标。而这正适合于软件开发过程管理,基于上述的理由,我们结合江苏省十.五攻关“工作流技术的研究和应用”项目,研究并开发了基于工作流的软件项目管理系统CMMFlow,目前已应用于软件能力成熟度模型(CMM)的管理,其效果相当良好。
2理论基础
2.1 CMMI3级精简并行过程(SPP)模型
利用工作流技术可以设计和建立一个工作流环境,在此系统中,我们使用CMMI3级精简并行过程(SPP)模型来支持软件过程实施。
SPP把产品生命周期划分为产品概念、产品定义、产品开发、产品测试、用户验收和产品维护等6个阶段,包含项目管理、项目研发和机构支撑等3类过程、19个过程域。其中项目管理过程包含立项管理、结项管理、项目规划、项目监控、风险管理和需求管理等六个过程域;项目研发过程包含需求开发、技术预研、系统设计、实现和测试、系统测试、Beta测试、客户验收和项目技术评审等8个过程域;机构支撑过程包含配置管理、质量保证、培训管理、外包与采购管理以及服务与维护等5个过程域。
我们把每一个过程域都看成是一个流程,其中过程域之间的关系是线性为主,并行、迭代为辅。每个过程域包含若干原子活动。通过建立活动与角色以及角色与具体用户的关联,即可建立一个可执行的业务过程模型。
2.2基于petri网的可视化建模工具
在这个系统中,我们的建模工具是使用工作流网和XP—DL共用的策略,采用的是扩展的Petri网,对最终用户来说,足可视化的图形建模工具。为符合WfMC规范,工作流机装入的模型用XPDL存储,可使用XPDL和Petri网两种表示形式,验证是使用Petri网形式。
在Petri网的基础上,Aalst提出了工作流网(WF-net)的概念,其定义如下:
一个Petri网PN=(P,T,F)被称为工作流网,当且仅当它满足下面两个条件:
1)PN有两个特殊的库所:i和0。库所i是一个起始库所,即·i= ;库所O是一个终止库所,即O·= 。
2)如果在PN中加入一个新的变迁t,使t连接库所。与i,即·t·={0),t·={i),这时所得到的PN是强连接的。
下面我们给出一个用工作流网定义工作流的简单例子,例子描述的是软件立项管理的工作流过程。
根据工作流网的基本定义,通过使用不同类型的基本组件和触发机制,对立项管理进行建模,得到如图1所示的工作流网模型。
基本流程如下:立项建议小组进行立项调查,然后进行项目构思和可行性分析,在完成之后进行立项申请,然后立项审查小组对此立项进行审查,决定是否同意立项。如果否决,则必须重新进行立项建议,如果同意立项,进入项目筹备阶段,流程结束。
3系统设计
3.1设计思路
整个系统构架采用B/S模式,参照J2EE框架,主要分为四层:
1)展现层:主要包含客户浏览器端和Web服务器端的applet,jsp和servlet,负责和用户交互,接收数据,显示结果等。
2)商业逻辑:用于处理展现层从用户端接受到的数据,包含了控制应用处理的所有规则,同工作流执行服务通讯,并且将展现层和数据服务层连接起来。
3)工作流执行服务:是流程运行和管理的核心组件,包括工作流机和任务表管理器。
4)数据服务:负责提供对数据的存储和读取服务。
此外,在系统设计的过程中还采用了以下的技术:
1)J2EE框架
J2EE体系包括javaserverpages(JSP),javaSERVLET,enterprisebean,WEBsevrice等技术,提供了一个企业级的计算模型和运行环境用于开发和部署多层体系结构的应用。它通过提供企业计算环境所必需的各种服务,使得部署在J2EE平台上的多层应用可以实现高可用性、安全性、可扩展性和可靠性。J2EE中多数标准定义了接口,例如JNDI,JDBC等,这使得遵循这些标准的不同开发者之间的模块可以无缝地互连。
2)JMS
JAVA消息服务(JMS)定义了Java中访问消息中间件的接口。JMS只是接口,并没有给予实现,实现JMS接口的消息中间件称为JMSProvider。
在JMS中,每个客户机连接到一个为发送和接收消息提供框架的消息传递程序。客户机需知晓消息格式和消息目的地。根据JMSAPI,消息传递分为两种模式,点对点和/订阅模式。
点到点消息传递方法使用下列工具,如消息队列、发送方(或消息制作者)和接收方(或消息消费者)。客户机将发向特定接收方的消息发送到唯一的队列。当接收客户机从特定队列抽取消息时,它发出确认消息,表明消息已处理。队列将保留所有消息,直至接收方收到消息或消息到期。/预订消息传递方法使用者、订户和主题的概念。客户机将消息发送到主题或内容层次结构。为了接收到消息,消息消费者必须预订此主题。因此,对于这种方法,可以将消息制作者作为者,而消息消费者则是订户。JMS供应商将多个者发来的消息分发到主题和此主题的多个订户。
点对点模式适用于使用集中式工作流机的系统,对于大规模的分布式应用,/订阅模式则相当有效,但是,在保证各个分布式工作流机的一致性问题上则稍有难度。
3.2系统结构与功能特点
CMM软件项目管理系统的系统结构如图2所示,它主要由过程建模工具,工作流机,任务表管理器,web服务,客户端和数据库接口等组成,该系统的各功能特点是:在这个系统中,我们使用浏览器作为客户端,通过Http请求与Webserver交互,Websevrer再将收到的请求加以处理,判断哪些是应当丢弃的,哪些应该交由工作流执行服务处理,并将处理后的结果发送给工作流执行服务器。工作流机收到Webserver传送过来的数据后,会根据消息的具体内容继续执行流程或者将流程挂起或是结束流程的运行,并且更新任务表管理器的内容,在需要的时候调用相应的应用程序来完成任务的需要。在过程建模工具中建立,修改,删除的模型将通过存储过程来修改数据库中已存储的模型。
websevrer和工作流执行服务也都要通过存储过程来访问数据库。各部分的功能特点描述如图2。
1)建模工具:使用基于Petri网的建模方法来对企业经营过程进行过程定义,将经营过程转化为工作流引擎可以执行的形式。同时还提供对过程模型进行分析,测试的工具。
2)工作流机:工作流引擎是工作流平台的核心,它是业务流程的任务调度器,从某种程度上看,工作流机也是业务资源管理器。它的主要作用是实例化及执行过程模型、为过程和活动的执行进行导航、与外部过程交互完成各项活动、维护工作流控制数据和工作流相关数据等。
3)任务表管理器:过程模型中的每个活动都被看作是一个由计算机自动执行的任务或由用户手动执行的任务,任务表管理器负责对这些任务的监视和维护。
4)Web服务:包含了用于处理用户请求和显示结果的jsp和sevrlet,其主要工作是将客户端与工作流执行服务连接起来。
5)客户端客户端是基于浏览器方式的瘦客户端,方便管理员管理整个工作流管理系统的运行过程,和一般用户管理和执行分配给自己的任务。
6)数据库接口:实现了底层的数据存储,包括过程定义,工作流控制数据,工作流相关数据,企业组织模型等工作流管理系统运行过程中必须的信息。
4系统的一些实现技术
4.1任务的自动分配和触发机制
可以根据模型定义自动地分配任务,当一个过程实例运行的时候,活动可以根据模型定义自动分配到指定接收者,并且,有关完成此活动所需要的数据也会传递给相应的接收者,从而提高业务过程执行效率。模型中使用角色机制,不指定具体人员,这样,人员变更不至于引起模型的变动。系统支持迟后绑定,即可以在活动运行的时刻才确定此活动由谁来完成。
流程从使能到运行的控制,采用触发机制,分为人工触发、自动触发、消息触发和时间触发。人工触发一般是用户从任务表中选取其中一项任务来完成,自动触发是一些通过程序自动执行的过程,一旦使能就被触发,消息触发是指系统外部的消息到达触发,如Email,时间触发是由定时器来触发。
4.2活动信息的统计
系统可以通过对活动信息统计,并将活动的运行状况和统计信息存储在数据库内。通过提供有关工作量的信息,可以在建模的时候预测所需要的时间,并且在活动结束时计算任务完成情况,与初始模型进行对比,生成相应的图表以判断工作效率,辅助决策经营。除系统提供的几个基本统计模型之外,用户也可以利用系统提供的工具,自行扩展新的模型来完成工作量信息统计和生成对比图表。
结论根据软件过程管理的需求,以工作流技术为核心,J2EE技术为支撑,结合SPP模型,文章给出了一个软件管理系统的体系结构和其中的一些技术实现。但是,为了更好地实施软件过程控制和度量,我们发现,还有一些问题需要进行深入的研究。
首先,软件过程模型的建立就要结合具体的实际情况,需要深人了解整个软件过程,并根据不同的需要修改模型来完成资源的动态配置和管理。另外,关于分布式工作流机之间的通讯和一致性问题也是相当重要的问题,需要拟定合适的策略来实现资源优化调度。
摘要:本文分析了目前软件外包采购管理的重要意义和目前的形势,提出基于“双赢”策略的软件外包采购思想。在项目管理理论、CMM和ISO9000的基础上,提出和细化了软件项目外包采购管理的总体框架和具体操作内容。旨在通过对软件外包项目采购的选择购买、跟踪与控制、评估验收和项目后处理等过程的研究,来提高软件外包采购的项目管理水平,满足承包方对分承制方产品在质量、进度和成本等方面的要求和对外包过程的有效控制,为软件项目外包采购管理人员提供具体的操作过程。
一、基本概念和背景
项目管理理论是一门综合多门学科的新兴研究领域,共有九大知识领域,包括项目集成管理、项目范围管理、项目时间管理、项目费用管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理和项目采购管理。项目采购管理是指需要从执行组织以外获得货物和服务的过程。通常把货物和服务称为产品,把买方称为业主或对应分承制方的总承包商,而卖方称为承包商、厂商或供应商。项目采购管理一般包括以下主要过程:采购计划编制,询价计划编制,询价,承包商选择,合同管理,合同收尾[ 1 ].对于软件产品,一般采购可以分为两大类,一类是对已经在市场流通的软件产品进行采购。例如,某企业想做信息化建设项目,涉及到数据库,那么它就可以在目前市面流行通用的几种厂家和种类的数据库中选择。例如Oracle公司的Oracle数据库,Microsoft公司的SQL Sever,IBM公司的DB2数据库等等。然后根据自己的需求,通过询价、签合同、安装培训等过程来购买此类产品。这种采购过程基本已经形成几套通用的解决方案,比较简单,中国企业在处理这类产品的采购时,大部分都处理的较好。个别的企业由于需求分析不清晰,培训工作不到位等原因,也会产生购买的产品不适用,或不会用的情况。另外一类软件产品采购的形式是外包采购。它是指在市场上没有出现现成的产品或者没有适合自己企业需求的产品的情况下,需要以定制的方式把项目(功能模块)承包给其他企业。例如某企业需要实施企业资源计划项目(ERP),虽然可以购买BAAN软件,但是基于本企业业务流程的管理软件必须定制,对于各个原有孤立岛的集成软件,无法购买现成的产品,必须自己开发或外包给别的公司。
二、软件项目外包采购管理的意义
许多大型复杂工程项目的实施需要业主、总承包商、分承制商、供应商和开发制造商等共同合作来完成。因此在任何甲方和乙方之间必不可少的涉及到部分子项目(功能模块)的采购活动。目前社会中,企业的信息化、网络化建设正在世界范围内展开。谁先进行信息化改造,谁就早日适应社会发展的要求,获得巨额利润。大规模的企业信息化建设形成了庞大的软件产品市场,促进了软件业的发展。许多项目庞大复杂、高风险并且涉及高科技信息领域,在客观上使企业需要采购和外包许多产品,包括软件产品。主观上,在经济全球一体化形式下,这种外包采购作为采购活动的一种特殊的、更为复杂的形式,在企业中更为普遍存在。企业为了在日益竞争的社会环境中增强自身的核心竞争力,需要根据企业的特点,专门从事某一个领域或几个领域的业务,在某个业务领域内形成自己的核心业务,把企业内部的智能和资源集中在那些有核心竞争优势的活动上;把一些非自己擅长的业务领域的子项目和功能模块外包给有实力和优势的公司,才有利于加快项目的完工进度,降低风险,优化资源配制,保证项目质量,降低成本,创造更高的价值。
以电信行业为例,爱立信公司2000年底宣布把手机生产的绝大部分业务外包给新加坡的Flextronics公司,专注于移动通信网络设备业务。原因是爱立信的移动通信网络设备的销售占爱立信公司销售额的54%,利润达90%以上,占有全球的移动通信市场分额高达30%,而手机生产的投资回报率很底,甚至出现亏损情况。对于爱立信而言,手机生产“外包”是在信息化时代的战略调整,希望通过外包生产,调整投资结构,使手机降低成本并且尽快盈利,集中精力稳定和拓展电信业的新市场。出于同样目的,美国的摩托罗拉公司也表示将外包部分地区的手机生产业务。作为手机市场份额最大的诺基亚,在专注于手机生产业务的同时,大力开发周边产业。希望以手机业务带动相关产业的发展。从三大公司的投资趋势,可以看出,“外包”作为一种先进的国际专业化的生产方式正被一些大公司越来越多的采用。我国正处在信息化建设的高速发展阶段,必然会有越来越多的企业由于自身的能力限制或业务发展的战略选择,将采取业务“外包”的生产方式。
就软件项目外包采购的市场来说,2000年是企业信息化实施的第一年,国内企业,特别是大型企业的信息化项目开始运作。行业信息化改造重点将由原来的电信、金融、海关等行业转向交通、制造、医疗等传统行业。这些行业由于自身计算机技术水平和业务发展重点的原因,将会把大量的软件项目外包给软件公司。根据CCID的统计(软件可以分成平台软件、中间软件和应用软件),2000年中国软件市场中应用软件的销售额为147亿元,占软件总市场份额的63.9%.预计到2005年,计算机信息服务和软件市场销售额增长到1750亿元。届时我国软件项目“外包”市场潜力可想而知。
三、软件外包采购管理存在的问题
虽然在传统行业,许多工程项目的采购活动,例如机械工程项目或建筑工程项目等等已经形成比较成熟的管理体制和标准。但是软件项目的外包管理工作并不象其他行业那样顺利。
软件工程项目管理引起广泛注意源于20世纪70年代中期,当时发现70%的项目是因为管理不善而引起。20世纪90年代中期,美国的软件开发仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付。商用软件通常只有9%(中小型软件公司有16%)的软件项目能够及时交付且费用并不超支。
这里有多方面的原因:软件产品作为一种特殊商品形式,具有高度不可测量性和高度柔性;软件企业开发能力还不太成熟,软件开发大多数还处于手工作坊方式,软件研发企业有其自身的运做方式,人为因素比重大,不好量化管理。由于不确定因素太多,许多软件开发企业对于自己的项目都难以精确控制进度、质量、资源和成本,那么对于业主来说,想对外部企业(例如分承制商)保持良好控制力的难度就更大了。再加上具有技术优势的软件开发商一般集中在几个科技发达的大城市,与业主的距离远,相互的交流不方便,因此许多软件采购项目的实际应用效果都差强人意:不适用,进度超期,性能达不到标准,成本太高等等情况时有发生。
软件项目外包采购的成功与失败不仅仅影响到当前软件项目的质量、成本和工作进度,而且关系到企业信息化建设整个项目的整体结构、性能以及进度,意义重大。特别是当软件项目作为整体项目计划关键路径的一个环节,软件项目采购的进度直接影响整体项目的进度,并且总成本将成指数级增加。由于软件采购的情况特别复杂,涉及的学科领域不仅是科学技术上的,还有商业上的和观念上的,软件项目外包采购管理水平的高低,将直接关系到企业整个信息化建设进程。因此软件项目采购管理作为项目管理理论中一个新的研究课题,有必要给予足够的重视。
四、目前软件外包采购管理情况
美国项目管理协会的“项目管理知识体系指南”(PMBOK)[1]、美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(CMM)[2,3]和国际标准ISO9000-3[4]中虽然对外包采购管理的流程有过论述,但是他们指出的只是外包采购管理的一般原则;虽然人们可以结合自身企业特点实施标准,具有一定灵活性,但是事物的另一对立面就是操作过程不具体。这给软件产品的外包采购管理者带来具体操作上的困惑。另外PMBOK体系原则上是应用在各个行业的,缺乏针对软件领域的特点做专门的论述。ISO 9000-3系列和CMM虽然是针对软件领域的标准,但是ISO 9000-3的最大的特点是只告诉你要按规定做,不强调效果和后续改善,不强调经验积累和后评估。从这个意义上讲ISO9000注重水平的评估,不太强调提高企业成长的过程,因此对于提高企业的管理水平意义不大;CMM虽然旨在强调企业的过程能力的持续改进,但是它重点强调软件的开发过程管理和产品管理,缺乏软件的分发、转交和服务等方面的管理标准,所以也有一定的局限性。
五、基于“双赢”策略的软件外包采购思想
本文作者在集成美国项目管理协会的“项目管理知识体系指南”(PMBOK)和美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(SW- CMM,SA-CMM)和ISO9000-3中关于外包采购的宗旨的基础上提出“双赢”策略的软件外包采购思想。
“双赢”策略的软件外包采购思想旨在利用双方业务能力互补,通过共同合作完成软件外包项目,达到“双赢”的目的,促进双方业务总体能力的提高。这种“双赢”策略要求双方在以下方面达成共识:双方共同关注过程控制,才能保证有效结果;只能成功,不能指望依靠惩罚手段来收回采购成本,软件外包采购项目的失败对整个项目带来的损失是巨大的;在合作过程中,建立对分承制商关系的管理体系,作为以后合作的基础;重视开发过程的风险评估和采购项目后评估,使得双方业务能力得到持续提高。
传统的外包采购中,采购方只关心分承制商产品的进度和质量,以为只要分承制商按期、按质交货,就可以圆满结束此次采购活动。有些项目尽管前期进度和质量满足合同要求,但是许多是以高投入、高负荷、高消耗等手段来保证的,这给后期带来极高的风险。在阶段评审中,如果采购方对分承制商开发过程中的费用投入、人员负荷、资源消耗、组织结构变化等漠不关心,因此就不能及早预见风险、控制风险。很难想象,后期在费用透支、人员疲惫或流失严重的情况下,分承制商仍能保证产品质量和进度。这种情况下,采购方只能要么加大投入,要么终止合同,并要求赔偿,要么延期验收等等。其副作用可想而知。而分承制商为了减少损失,根据博弈论中子博弈精练纳什均衡原理,必然采取降低质量要求,减少投入的策略,来加快进度。结果最终还是采购方遭受损失。
六、软件项目外包采购管理过程
为了保证软件外包采购项目的顺利进行,本文作者在上诉理论体系和“双赢”采购策略的基础上,提出和细化了软件项目外包采购的总体框架和具体操作内容,旨在为软件项目外包采购管理人员提供具体的可操作过程。
对于本采购过程,如果业主方由于行业、人员等原因,没有健全的监控部门,可以聘请具有软件监理职责的公司,或者总承包给具有一定软件工程监控能力的公司。这时的总承包公司角色相当于本文提到的采购部。
软件项目的整个外包采购过程可以分为十个工作阶段,包括总体项目需求分析和设计、子项目的需求分析、厂商选择、分承制商开发、业主阶段评估、交验测试、安装、培训、维护,后评价。
在开始外包采购之前,首先业主要完成项目的总体需求规格说明书和承包项目的需求说明书。一般承包项目的需求分用户需求和分配需求。对于分承包商来说,业主对软件项目所提出的需求通称“用户需求”。对于业主来说,系统总体分配给软件的系统需求通称“分配需求”。如何作好子项目的需求分析和管理,请参阅《软件需求》,详见参考文献5.然后业主把需求说明书交给采购组组织采购。采购部门收到需求说明书后,再补充质询调查表、报价指南、综合条款及条件等文件,组成采购质询技术文件发往厂商进行质询。采购部门在厂商质询的基础上,准备了厂商选择和投标估价等技术文件后,向业主送审,提请业主批准和确认所选厂商。在厂商选择和投标估价这两个文件中,采购部根据拟采购的软件对被质询的至少三家以上的供应厂商,就技术开发成熟能力、资源(包括以有的产品、硬件、软件、信息和已经过的培训)、资格和信誉、过去的合作关系、价格、提供的售后服务(包括培训和维护)、分承制方组织配置结构、与质询要求的差异等方面,经过经济技术和商业战略角度出发进行全面评估,经过其他各部门(例如系统工程组、软件工程组、质保组、财务组)审核后,列出供应厂商的优劣次序,择其优者为该项目的供应厂商。采购部一般以月为单位向业主通报软件采购情况。一般以招投标方式或内部评审的方式来确定分承制商。
分承制商在接到采购部的定货以后,就可以进行工作说明书、用户需求说明书、软件需求规格说明书、软件开发详细计划和成本概预算、测试计划、质量控制方法、风险控制、拟采用的软件工程标准和软件生命周期等文档的制作。然后分承制商把有关的技术资料文件通过业主的采购部送给业主进行校核和批准,然后才能开始开发。
业主在接到分承制商的上述材料后,组织系统工程部、软件工程部、质保部、财务部、采购部、法律部就上述材料中的开发项目视图和需求范围、使用或需要购买的软硬件、进度计划和成本、测试计划与案例、使用的技术和工程标准、人员配置等进行评审,并出具评审文件和风险评估、控制建议书。并由采购部制定采购项目监督评估计划书。合格后,由采购部、质保部及法律人员与分承制商签署详细的软件采购子合同。如需要对软件项目投保,以此来降低风险,需要和分承制商协商后,纳入合同文件。
分承制商在签署合同后可以进行设计和开发。业主应该委派采购部监督分承制商的工作。采购部应该有计划的组织质保部、软件工程部的项目计划管理人员和配置管理人员,定期对分承制商的开发活动进度、质量、成本等进行评估,并形成评估建议书。送审业主方的系统工程部、项目管理人员、分承制商的此项目的负责人。分承制方的项目负责人要对评估建议书的建议进行书面回复,并确保实施。
分承制方对所有需要采购的资源(软件、硬件、人力资源等)负责进行检验;采购部有权在任何时候对分承制商所采购的资源进行验证,使之符合所采用的规格说明书、规范、标准和其他技术文件所规定的要求,确保分承制商专款专用,建立开发环境。在这个阶段之前,采购部门和分承制商首先要确定由分承制商提供的验证建议书,并作好准备工作,提交检验用的技术文件,包括厂商说明书、设备性能数据表、配制清单、试验程序、检验技术要求。在检验的物质条件和技术条件均已准备妥善后,分承包商就可以向采购部并通过采购部向业主提出书面检验申请。一般分承包商可以提前三周通知采购部,由采购部提前两周以书面形式向业主提出检验申请,由业主召集系统工程部、软件工程部、质保部组成验证组,在规定的时间、地点检验。通过检验后,分承包商进入项目开发阶段;业主进入监控和评估阶段。对于重大关键项目,业主可以派遣项目监督员短期或长期进驻分承包商单位。
由于作为外部单位,业主不便时刻监督项目的开发过程。虽然理论上需要把分承制商看作是自己的一个项目部门来对待,纳入自己的进度控制和质量控制体系,但是客观上由于分承制商与业主距离较远,人员不熟悉,各自有自己的企业文化和管理体制,双方之间的信息沟通不畅,业主难以实时监督分承制商的开发进程和质量。最好的办法就是在分承制商的软件项目的各个里程碑处和分承制商一起进行检查和评估。软件项目一般可以划分成若干个里程碑(3-5个为益),分承制商需要提前一周通知采购部组织相关人员来评估。软件项目的里程碑一般指产品设计趋于稳定,中间产品定义趋于明晰,项目开发组真正了解项目实际的关键技术难度和可行的进度计划,开发活动停止,产品进入除错和稳定、随时可以的阶段,或当产品设计被删减、资源增加、进度延误的时候。在评估软件质量、进度和功能的同时,还要评估分承制商的人员工作负荷程度、风险、费用和资源消耗情况,并形成文档。由采购部送审系统工程部、软件工程部、项目管理部和分承制商的此项目负责人。
当产品进入交验测试的时候,分承制商需要提前三周通知采购部,采购部于前两周通知业主作好交验的组织评估准备工作。这时业主组织系统工程部、软件工程部、测试部、质保部和采购部,根据分承制商和业主在分承制商开发阶段预先共同定义、评审并批准的测试计划和验收方案进行验收测试,对需求规格说明书中的各项逐个详细的测试。最后以书面的形式给出对整个软件项目的测试评估报告。并对未通过验收测试的软件产品指定相应的补救措施和计划。分承制商交付给业主方的软件产品应当包括:源代码、软件开发计划、仿真环境、软件需求规格说明书、设计文档、软件测试计划、软件测试说明、验收测试计划、软件使用手册、软件安装手册、软件维护手册。必要的话,还包括相关培训计划。
软件采购的一个重要阶段是交货,也是目前经常忽略的阶段。当所采购的软件产品以及硬件运行环境在规定的时间到达采购部时候,采购部要以书面的形式通知业主交货。业主对所交的整个软件产品清单进行验收,并事先通知采购部拆箱日期,要采购部和分承包商的代表按时到场。业主要在接到采购部交货通知后一个月内,对所检查验收的整个软件产品(包括相关的软件、硬件及其附属产品、文档、技术资料等子合同中规定的产品)出具一份交货证明,如果这些提交的软件产品没有受到损坏并与装箱清单相一致,并在业主方环境运行良好;否则出具一份书面通知,说明在某个方面此产品损坏或与装箱单不符,或在业主方提供的环境运行不良。此通知或证明应由采购部和分承制商代表签署。如果在签合同的时候,就规定分承制商负责安装和调试,则相应的过程省略。
最后业主方由采购部把所有的文档归类封存,以备后续类似项目采购的参考查询。同时采购部在两个月之内以书面形式,对分承制商的技术开发成熟能力、资源(包括以有的产品、硬件、软件、人力资源和已经过的培训)、信誉、分承制方组织配置结构,管理能力和企业文化提交后评价报告,作为建立客户关系管理(CRM)的依据。对于此次采购的经验和教训,包括进度控制、质量控制、成本控制、客户关系控制、流程控制、风险控制等方面,采购部以文档的形式在组内讨论并保存。
七、结束语:
作为大型工程项目中的软件子项目或者部分功能模块的采购(外包),由于软件开发的固有特性(风险大,柔性强,人为因素突出,结果不宜测量等),使软件项目的外包采购管理变得十分复杂。如何控制分承制商的开发进度和质量等关键因素,需要在实践中不断探索,并针对具体公司和项目对采购过程有所裁剪。
摘 要:本文介绍了Project软件的主要功能及基本使用方法,分析了当前水利工程建
设中 Project 软件的应用情况,阐明了 Project 软件在水利工程项目管理中的重要性。
关键词:水利工程建设;进度计划;资源分配
1 Project 软件在工程建设中的作用
Project 是一个项目管理网络计划软件,它是基于关键路径法(CPM)和项目评审技术(PERT)两种技术,主要用于大中型项目的计划制定、评审、优化、资源合理调配和现场动态跟踪的通用的肯定型网络计划软件包。Project 提供了一套完整的项目描述和计算的方法及模型,通过这个软件生成图、表或文件。
1.1 快速地建立项目计划
建立项目计划,需要完成一份正确的网络计划图,这至少需要一个星期的时间进行设计、参数计算、核对、成图。如果需要在原方案上做些修改,就不得不重新算一遍。耗费更多的时间、人力、物力、财力,无法适应当前飞速发展的形势。Project则能把这些工作都承担起来,能轻松愉快地完成项目计划的制定工作。如果需要修改、增删、优化,只需要把修改的地方输入给 Project,它会按新的意图重新计算,在几秒内就给出结果。而且 Project 会自动计算出关键路径,计算每个任务的时差和整个项目的开工、完工日期,告诉能否如期竣工,资源分配是否合理。
1.2 按工期管好项目中的任务
Project 把一个任务划分为四个阶段进行管理,即:比较基准计划(原始计划)、当前计划、实际计划和待执行计划(剩余计划或未完成计划)。它为每个阶段的计划都设置了数据域,用户随时都可以查看。比较基准计划$原始计划’里的计划数据记录了最初制定项目计划时项目的状态情况。这个计划数据在项目调整过程中始终保持不变,无论何时需要原始计划数据时都可以从这个计划数据域中得到。
当前计划是根据实际已经发生的计划和任务间的制约关系面计算出来的,它作为整个计划的重点向用户提供了极为详细的数据。例如开始时间、完成时间、工期、总时差、自由时差、工作量、费用等。
实际计划是指已经开始实施,但未完成或已经全部完成的任务计划。Project 设置“实际计划”数据域,可使用户把已经完成的工作和未完成的工作区分开来。而且一旦一个任务的实际计划生效,Project 会按实际计划自动修正当前计划。并且据此计算和预测整个项目计划。
待执行计划是需要完成的剩余工作量,Project 会根据完
成情况自动计算剩余工作量。
总之,用户把采集到的项目任务完成和变动情况输入到Project 后,系统就按项目实际发生的数据进行整个项目计划的计算,确定新的关键路径,预测整个项目前景,使得项目动态跟踪就变得非常容易。
1.3 对人员设备和资金资源进行分配
Project 把在完成项目任务活动中投入的人员、机械台班设备和材料、资金等抽象化为“资源”,建立起资源库。Project根据每个任务的资源使用情况计算整个项目的资源需求曲线,自动指出“超负荷分配”发生在那些任务上,能够帮助用户自动进行资源平衡,并能自动排出每个资源承担的任务上的日程、工作量和成本表。
1.4 提供丰富图表
Project 提供了与国际上接轨的单代号网络图,中国科学院计算所在 Project 配套的软件 “中文伴侣”中开发了双号网络图处理系统。
Project 把横道图和表结合在一起,这样既能以图形方式形象地查看任务信息,又能看到具体的数据,便于理解项目。横道图上不仅可以显示出工序的关系线,而且工序信息也可直接显示在横道条的四周。
资源图是以反映资源使用状况为重点的信息,Project 为资源分析和跟踪提供了8种图形,即:资源需求曲线图、资源工作量图、资源累计工作量图、超分配工作量图、资源已经分配的百分数图、资源当前可用工作量、成本图、累计费用图。
总之,Project 提供项目各个方面信息,使项目的管理更高效有序。无论用于项目投标、项目计划的组织施工,还是对工程项目实行监理都是一个不可多得的软件。
2
Project 与山西水利建设
近年来,我省的水利事业发展良好,按国家规定逐步实行了项目法人责任制、招标投标制、工程监理制,使工程项目管理日趋规范化。
随着计算机技术的迅猛发展,应用计算机进行管理已成为必然。然而,在我省大多项目管理仍延用传统的方式,依赖自己的老经验,总认为不使用计算机辅助管理,工程也照样能进行下去。尽管绝大多数项目部都购买了计算机,但大多数单位使用它打字、制表,由人工画道改成“计算机画道”,计算机没能发挥出其强大优势。项目施工单位用手工编制项目计划不仅要耗费大量的时间及人力,而且经常是工程已经开工,计划还没有做好,使计划管理总处于被动局面。然而,计算机在优化进度计划方面及时、快速、准确、便捷等特点是人工无法比拟的。针对传统管理的弊端,Project中文版为项目管理人员提供了众多有实用价值的功能,以及简单且方便的解决方法,使生产计划人员能高效地处理这些变化。
在我国许多建筑单位选择了Project,在应用过程中普遍反映这个软件操作简单,更改、调整非常方便,确实体会到该系统在建筑项目计划的制定管理与信息交流等方面的强大功
能,尝到了先进管理方式的甜头,认识到工程项目施工中开展全面的计算机应用,实在是非常必要的。
在我国市场经济发展日益完善的今天,建筑施工行业也面临着优胜劣汰的竞争选择。在激烈的市场竞争中,不允许任何企业偏安于一隅,任何一个拥有关键技术的小企业,都可以在很短时间里迅速成长为区域性的大企业,技术和管理的创新日益成为企业间竞争的根本,而一些大的水利工程已率先引用了先进管理软件,如我省的引黄工程,利用P3作管理软件。水利水电监理公司利用自己研制的软件进行监理控制等。这仅仅是一个开始,我们应在掌握原有技术、经验的基础上,利用先进的管理软件进行高效管理,这应该是山西水利发展方向。当然,把计算机用于工程项目施工管理不是一个简单问题,对于选择什么样的工程项目管理软件也是非常重要的。每项目工程都有各自的特点,Project作为微软的最新项目管理产品,国外项目管理的首选软件,在应用过程中,针对工程中的不同特点也会表现出一定的不足,但计算机用于工程项目施管理已成为发展的必然趋势。计算机的强大功能必须得到充分发挥。这是我省水利项目管理的需要,也是水利事业发展的必然趋势。
6
Project在工程建设中的前景展望
目前我国采用计算机进行工程项目管理的建筑施工单位还不太多,这主要是由于有些人还没有认识到这个问题的重要性,有些人还没有找到正确的方法,没有建立和制定一套完整的适应计算机管理特点的管理体制,同时也说明把计算机用于工程施工管理不是一个简单问题,它需要多方面的基础知识和技能,需要从多方面努力。
科学技术是第一生产力,项目管理科学化是大势所趋。Project软件凭借其在项目管理方面所起的显著作用,以及其操作简单,跟踪调整方便等特点,已在中国建筑市场占了一席之地,尤其是Project2000版的推出,使操作更为简单、快捷,人机界面更趋完善,功能更为强大,这必将推进我国的工程项目管理进行一场高科技的改革,使其逐步与国际惯例接轨。现在已经有越来越多的人在关注这个软件,国家也十分重视科技的推广,尤其是水利部,专门组织培训班,对全国水利单位人员进行Project项目管理软件培训,这将极大地推动软件在水利行业的推广应用。据说水利部将把是否利用Project软件进行项目管理,是否有专职人员进行过Project软件培训,作为监理资质评审的条件之一,这充分体现了国家对该软件的重视,这也将有利Project软件在全国范围内的推广,该软件在国内推广将展现光明光景
论文摘要:针对软件项目和项目开发中的复杂性、易变性和不可预见性,研究了软件项目管理流程方法设计了软件项目运作过程的总体流程,分析了各阶段流程的进入条件、主要工作过程和工作结果
论文关键词:软件过程;软件项目管理;流程管理
1引言
长期以来,软件项目高失败率的状况一直困扰着人们,研究表明,软件项目失败的原因主要有两个:一是应用项目的复杂性;二是缺乏合格的软件项目管理人才。实践证明缺乏有效的项目管理是导致软件项目失控的直接原因。软件开发的风险之所以大,是由于软件过程能力低,其中最关键的问题在于软件开发组织不能很好地管理其软件过程,从而使一些好的开发方法和技术不能起到预期的作用。
流程管理作为现代企业管理的先进思想和有效工具,随着市场环境与组织模式的变化,在以计算机网络为基础的现代社会信息化背景下越发显示出其威力和效用。流程管理不仅是一种管理技术,更体现了现代管理的思想。流程管理的重点是:理清和管理好所有主、支流程间的关系,使他们相互协调发挥应有的作用。流程管理增加了部门的透明度,管理的对象不是“部门”和“部门员工”的概念,而是以工序流程为管理对象,注重流程中每一个过程和效率以及和上下游工序的关系,管理重点在于整体流程的完整性和顺畅性。目前,流程管理技术的研究已越来越受到人重视。
运用流程管理方法和技术进行软件项日管理,可以有效地改变软件过程管理混乱的局面首先埘软件项目开发过程进行有效的、规范化的定义;其次,在软件项目开发过程中,所有的活动过程均按照流程所规定的活动的逻辑关系、活动的实现方式来执行,这样可以使得所有的活动有序和可控;第三,通过明确运作流程,使项目组人员迅速融入项目和开发过程中;第四,关注每个过程的“结果”,使软件项目的所有工作产品均能得到有效的保存,保证了软件产品完整性。
2流程的概念及在软件项目管理中的作用
流程是由活动组成的。基本活动是由个人或团体来完成的,它不需要进行其他的基本活动的转化。流程的各个活动之间有着特定的流向,它包含着明确的起始活动与终止活动,因此是一个动态的概念。从结构上来看,流程有四个基本的构成因素:活动、活动的逻辑关系、活动的实现方式和活动的承担者。流程与“一系列的活动或事件”,“结果”等概念密切相关。流程管理不仅是一种管理技术,更体现了现代管理的思想,原有的以控制、塔式组织为基础的职能行政管理已经不能完全满足于现代企业发展和市场竞争的需要,管理的发展沿着分工理论运行了上百年后,现在又重新回归到整合与系统。
软件项目生命周期的一系列的开发过程是各种各样的流程活动:软件项目的计划编制、系统分析、慨要设计、详细设计、程序编码、测试与维护等活动过程都是一种流程活动:制定软件项目管理流程,重点考虑以下几点:
1)制定的流程能引导项目逐步走向成功;
2)制定的流程能适用软件开发过程;
3)制定的流程能指导项目开发活动.有利于对项日开发活动的管理;
4)制定的流程能以苴观的流程图表示.能使项目组成员清楚的知道软件开发与管理的过程和相互之间关系;
5)流程中的起始活动条件、终止活动条件明确、规范便于控制:
6)流程中的工作产品定义明确、可度趟,评价标准和方法具体、可操作
3软件项目管理总体流程设计
在软件项目开发管理过程中,不仪要努力实现项目的范围、时间、成本和质量等目际,还必须协调整个项目过程,以满足项目参与者及其他利益柑关者的需要和期望;随着软件规模和所涉及的领域不断地扩大,软件项目的管理越来越困难,纵观所有失败的软件项目.基本原因是不能管理其软件过程,在无纪律的、混乱的项目状态下,组织不可能从较好的方法和工具中获益。严谨的软件过程控制管理不仅可以在每个阶段回顾和纠正项目的偏差.别软件项目的风险甚至果断中止项目。且可以将人才流动所带来的不利影响减少到最小。要进行有效的过程控制,必须明确软件项目管理流程。
软件项目管理总体流程设计为项目搜寻、立项、售前合同生成和合同执行等5个主要阶段,分别以Pl、P2、P3、P4、P5表示;同时设计了立项完成、合同签定、功能定义、软件开发、项目验收等5个里程碑,分别以TM1、TM2、TM3、TM4、TM5表示,如图l所示。在这些流程中,合同执行流程是软件项目管理的核心,其主要过程有:产品定义、软件开发、测试执行、内部验收、项目实施与验收、项目维护.
4软件项目管理总体流程分析
4.1项目搜寻
项目搜寻是项目立项的基础,项目搜寻阶段的主要任务包括市场信息收集,用户需求跟踪,对潜存的项目进行分析和筛选。
4.2项目立项
立项阶段的主要任务是确认立项的理由,提出立项建议,提供合适的资金和资源,使立项建议成为正式项目。
4.3项目售前
售前阶段从项目立项开始到项目合同的签定结束,主要工作有:制定与客户的交流计划,详细了解客户的背景资料,了解客户启动项目的缘由、目的和期望,编制项目方案建议书,准备合同蓝本。
4.4合同生成
合同生成阶段的主要工作有:项目方案的评估与确定技术合同、商务合同的商定、评估与签署。
4.5合同执行
合同执行是软件项目管理流程的重点,可分为软件开发、测试执行;内部验收、项目验收、系统维护等五个基本工作过程。
4.5.1软件开发
软件开发阶段分为:需求调研、系统分析、系统设计、编码、单元测试等过程。主要从三个方面进行管理:
1)制定项目计划。软件项目计划是一个用来协调所有其他计划,以指导项目执行和控制的可操作文件。它体现了对客户需求的理解,是开展项日活动的基础,也是软件项目跟踪与监控的依据。
2)确定开发过程。根据软件项目和项目组的实际情况,建立起一个稳定、可控的软件开发过程模型,并按照该过程来进行软件开发
3)加强过程控制一过程控制主要包括过程管理、变更控制和配置管理,、
4.5.2测试与执行
项目测试的目的是俭查系统是否符合项目合同与任务书规定的要求、项目测试分集成测试和系统测试,主要进行功能测试、健壮性测试、性能一效率测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等测试过程在模拟运行环境中进行。
4.5.3内部验收
项目完成集成测试和系统测试后进行项目内部验收.主要有三个步骤:①文档准备。项目经删提交内部验收计划、项目开发总结报告、产品清单:财务主管提交项目财务预算报告。②内部验收测试。内部验收测试的测试内容与方法虽然与系统测试基本相同.但应站在用户验收的角度进行,因为它是试运行的基础。通过这一步。为用户验收作充分的准备。③内部评审。对提交的所有文档及测试结果进行内部评审,完成项目开发总结报告:
4,5,4项目试运行与验收
试运行与用户验收阶段的主要任务是,使所有的工作产品得到用户的确认。主要工作有:①验收前的准备。项目经理负责检查产品的完整性。包括文卡当、介质和中间产品等,以确保现场实施的成功;负责应用软件的现场安装调试,完成安装调试总结报告;负责制定用户验收计划,并得到客户的确认。②用户进行验收测试和系统试运行,进行文档和系统的移交。③用户确认。项目经理负责与客户协测,协助用户进行项目验收,形成用户验收报告。
4 5.5项目维护
软件系统的维护分为两大类:一类是纠错性维护,由于前期的测试不可能暴露软件系统中所有潜在的和隐含的错误,诊断和改正这些错误的过程为纠错性维护。另一类是完善性维护,在软件正常使用过程中,用户还会不断地提出新的需求,为了满足用户新的需求而增加软件功能的活动称为完善性维护。如果需求变更很大,那完善性维护将转变为软件新版本的开发。系统维护的宗旨就是提高客户对软件产品的满意度。确保系统的正常运行是系统维护的根本目的。
4.6软件项目管理的里程碑
项目的考核与评审是软件项目管理流程控制的基础,我们在整个流程中设定五个基线,即确定五个里程碑,它们分别是TM1:立项完成;TM2:合同签订;TM3:产品功能定义完成;TM4:软件开发完成;TM5:验收通过。
如图1所示。各阶段的主要的进入条件和相应的工作结果是里程碑是否达到的重要标志。
5结束语
本文设计的软件项目管理总体流程及相关技术已成功运用在软件项目的研发和管理中。通过将流程管理应用于软件项目管理中,以设定软件项目总体流程为主线,确定每个阶段的主要流程和里程碑,并采用评价指标体系和一系列的模板和表格进行软件项目开发过程的控制和管理,使软件项目的成功率显著提高。
实践证明,针对企业和项目的实际情况,确定软件项目运作流程,定义软件工作产品,明确各阶段的进入条件和退出条件,进行有效的流程控制与管理,大大的提高了软件开发的效率和项目的成功率。
论文摘要:本文介绍了一个基于工作流技术而研制的软件项目管理系统。文章首先描述了传统软件项目管理系统的不足之处,提出用工作流的方法来设计软件项目管理系统,然后介绍了一些理论基础。文中重点阐述了系统的设计结构和所采用的一些技术,并给出了部分的具体实现方法。
论文关键词:工作流,JMS,项目管理,SPP,建模,工作流网
1前言
2O世纪7O年代以来,为了解决软机危机,改进软件过程能力,计算机科学家提出了软件工程的概念,将系统化的、规范化的、可度量的方法用于软件开发、运行和维护的过程。近些年来,随着计算机技术的进一步发展,相应的使用软件工程方法的软件项目管理系统也有了显著的发展。但是,由于开发流程中存在的不确定性以及项目变化等因素,这些系统也暴露出一些不足之处。
传统的软件项目管理系统,一般是由图形用户接口(GUI),应用程序和数据库组成,用户通过GUI向应用程序发出请求,应用程序处理这些用户请求,并且访问数据库,返回用户所要求的结果。这种模型在流程稳定的时候是可以满足需要的,它的缺点在于:
1)建模过程是之前设定好的,无法改变;
2)缺乏柔性,系统开始运行之后,预先定义好的条件就无法改变了;
3)可扩展性较差,如果想要增加或者修改相应的功能,整个系统必须重新开发。
目前,对工作流技术的研究以及相关产品的开发是国内外学者研究的热点问题之一,很多管理系统都采用工作流技术来克服上述问题。工作流起源于生产组织和办公自动化领域,它是针对日常工作中具有固定程序的活动而提出的概念。目的是通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些任务并对它们进行监控,达到提高办事效率、降低生产成本、提高企业生产经营管理水平和企业竞争力的目标。
WFMC给出的工作流定义是:工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,文档、信息或任务能够在不同的执行者之间进行传递与执行,以实现整体的业务目标。而这正适合于软件开发过程管理,基于上述的理由,我们结合江苏省十.五攻关“工作流技术的研究和应用”项目,研究并开发了基于工作流的软件项目管理系统CMMFlow,目前已应用于软件能力成熟度模型(CMM)的管理,其效果相当良好。
2理论基础
2.1 CMMI3级精简并行过程(SPP)模型
利用工作流技术可以设计和建立一个工作流环境,在此系统中,我们使用CMMI3级精简并行过程(SPP)模型来支持软件过程实施。
SPP把产品生命周期划分为产品概念、产品定义、产品开发、产品测试、用户验收和产品维护等6个阶段,包含项目管理、项目研发和机构支撑等3类过程、19个过程域。其中项目管理过程包含立项管理、结项管理、项目规划、项目监控、风险管理和需求管理等六个过程域;项目研发过程包含需求开发、技术预研、系统设计、实现和测试、系统测试、Beta测试、客户验收和项目技术评审等8个过程域;机构支撑过程包含配置管理、质量保证、培训管理、外包与采购管理以及服务与维护等5个过程域。
我们把每一个过程域都看成是一个流程,其中过程域之间的关系是线性为主,并行、迭代为辅。每个过程域包含若干原子活动。通过建立活动与角色以及角色与具体用户的关联,即可建立一个可执行的业务过程模型。
2.2基于petri网的可视化建模工具
在这个系统中,我们的建模工具是使用工作流网和XP—DL共用的策略,采用的是扩展的Petri网,对最终用户来说,足可视化的图形建模工具。为符合WfMC规范,工作流机装入的模型用XPDL存储,可使用XPDL和Petri网两种表示形式,验证是使用Petri网形式。
在Petri网的基础上,Aalst提出了工作流网(WF-net)的概念,其定义如下:
一个Petri网PN=(P,T,F)被称为工作流网,当且仅当它满足下面两个条件:
1)PN有两个特殊的库所:i和0。库所i是一个起始库所,即·i= ;库所O是一个终止库所,即O·= 。
2)如果在PN中加入一个新的变迁t,使t连接库所。与i,即·t·={0),t·={i),这时所得到的PN是强连接的。
下面我们给出一个用工作流网定义工作流的简单例子,例子描述的是软件立项管理的工作流过程。
根据工作流网的基本定义,通过使用不同类型的基本组件和触发机制,对立项管理进行建模,得到如图1所示的工作流网模型。
基本流程如下:立项建议小组进行立项调查,然后进行项目构思和可行性分析,在完成之后进行立项申请,然后立项审查小组对此立项进行审查,决定是否同意立项。如果否决,则必须重新进行立项建议,如果同意立项,进入项目筹备阶段,流程结束。
3系统设计
3.1设计思路
整个系统构架采用B/S模式,参照J2EE框架,主要分为四层:
1)展现层:主要包含客户浏览器端和Web服务器端的applet,jsp和servlet,负责和用户交互,接收数据,显示结果等。
2)商业逻辑:用于处理展现层从用户端接受到的数据,包含了控制应用处理的所有规则,同工作流执行服务通讯,并且将展现层和数据服务层连接起来。
3)工作流执行服务:是流程运行和管理的核心组件,包括工作流机和任务表管理器。
4)数据服务:负责提供对数据的存储和读取服务。
此外,在系统设计的过程中还采用了以下的技术:
1)J2EE框架
J2EE体系包括javaserverpages(JSP),javaSERVLET,enterprisebean,WEBsevrice等技术,提供了一个企业级的计算模型和运行环境用于开发和部署多层体系结构的应用。它通过提供企业计算环境所必需的各种服务,使得部署在J2EE平台上的多层应用可以实现高可用性、安全性、可扩展性和可靠性。J2EE中多数标准定义了接口,例如JNDI,JDBC等,这使得遵循这些标准的不同开发者之间的模块可以无缝地互连。
2)JMS
JAVA消息服务(JMS)定义了Java中访问消息中间件的接口。JMS只是接口,并没有给予实现,实现JMS接口的消息中间件称为JMSProvider。
在JMS中,每个客户机连接到一个为发送和接收消息提供框架的消息传递程序。客户机需知晓消息格式和消息目的地。根据JMSAPI,消息传递分为两种模式,点对点和/订阅模式。
点到点消息传递方法使用下列工具,如消息队列、发送方(或消息制作者)和接收方(或消息消费者)。客户机将发向特定接收方的消息发送到唯一的队列。当接收客户机从特定队列抽取消息时,它发出确认消息,表明消息已处理。队列将保留所有消息,直至接收方收到消息或消息到期。/预订消息传递方法使用者、订户和主题的概念。客户机将消息发送到主题或内容层次结构。为了接收到消息,消息消费者必须预订此主题。因此,对于这种方法,可以将消息制作者作为者,而消息消费者则是订户。JMS供应商将多个者发来的消息分发到主题和此主题的多个订户。
点对点模式适用于使用集中式工作流机的系统,对于大规模的分布式应用,/订阅模式则相当有效,但是,在保证各个分布式工作流机的一致性问题上则稍有难度。
3.2系统结构与功能特点
CMM软件项目管理系统的系统结构如图2所示,它主要由过程建模工具,工作流机,任务表管理器,web服务,客户端和数据库接口等组成,该系统的各功能特点是:在这个系统中,我们使用浏览器作为客户端,通过Http请求与Webserver交互,Websevrer再将收到的请求加以处理,判断哪些是应当丢弃的,哪些应该交由工作流执行服务处理,并将处理后的结果发送给工作流执行服务器。工作流机收到Webserver传送过来的数据后,会根据消息的具体内容继续执行流程或者将流程挂起或是结束流程的运行,并且更新任务表管理器的内容,在需要的时候调用相应的应用程序来完成任务的需要。在过程建模工具中建立,修改,删除的模型将通过存储过程来修改数据库中已存储的模型。
websevrer和工作流执行服务也都要通过存储过程来访问数据库。各部分的功能特点描述如图2。
1)建模工具:使用基于Petri网的建模方法来对企业经营过程进行过程定义,将经营过程转化为工作流引擎可以执行的形式。同时还提供对过程模型进行分析,测试的工具。
2)工作流机:工作流引擎是工作流平台的核心,它是业务流程的任务调度器,从某种程度上看,工作流机也是业务资源管理器。它的主要作用是实例化及执行过程模型、为过程和活动的执行进行导航、与外部过程交互完成各项活动、维护工作流控制数据和工作流相关数据等。
3)任务表管理器:过程模型中的每个活动都被看作是一个由计算机自动执行的任务或由用户手动执行的任务,任务表管理器负责对这些任务的监视和维护。
4)Web服务:包含了用于处理用户请求和显示结果的jsp和sevrlet,其主要工作是将客户端与工作流执行服务连接起来。
5)客户端客户端是基于浏览器方式的瘦客户端,方便管理员管理整个工作流管理系统的运行过程,和一般用户管理和执行分配给自己的任务。
6)数据库接口:实现了底层的数据存储,包括过程定义,工作流控制数据,工作流相关数据,企业组织模型等工作流管理系统运行过程中必须的信息。
4系统的一些实现技术
4.1任务的自动分配和触发机制
可以根据模型定义自动地分配任务,当一个过程实例运行的时候,活动可以根据模型定义自动分配到指定接收者,并且,有关完成此活动所需要的数据也会传递给相应的接收者,从而提高业务过程执行效率。模型中使用角色机制,不指定具体人员,这样,人员变更不至于引起模型的变动。系统支持迟后绑定,即可以在活动运行的时刻才确定此活动由谁来完成。
流程从使能到运行的控制,采用触发机制,分为人工触发、自动触发、消息触发和时间触发。人工触发一般是用户从任务表中选取其中一项任务来完成,自动触发是一些通过程序自动执行的过程,一旦使能就被触发,消息触发是指系统外部的消息到达触发,如Email,时间触发是由定时器来触发。
4.2活动信息的统计
系统可以通过对活动信息统计,并将活动的运行状况和统计信息存储在数据库内。通过提供有关工作量的信息,可以在建模的时候预测所需要的时间,并且在活动结束时计算任务完成情况,与初始模型进行对比,生成相应的图表以判断工作效率,辅助决策经营。除系统提供的几个基本统计模型之外,用户也可以利用系统提供的工具,自行扩展新的模型来完成工作量信息统计和生成对比图表。
结论根据软件过程管理的需求,以工作流技术为核心,J2EE技术为支撑,结合SPP模型,文章给出了一个软件管理系统的体系结构和其中的一些技术实现。但是,为了更好地实施软件过程控制和度量,我们发现,还有一些问题需要进行深入的研究。
首先,软件过程模型的建立就要结合具体的实际情况,需要深人了解整个软件过程,并根据不同的需要修改模型来完成资源的动态配置和管理。另外,关于分布式工作流机之间的通讯和一致性问题也是相当重要的问题,需要拟定合适的策略来实现资源优化调度。
摘要:三峡工程是一举世嘱目的工程建设项目,项目管理的任务其中包括进度控制的任务极其艰巨。业主单位确定应用P3软件作为进度控制的辅助工具已近五年时间,取得了很大的成绩,但还存在有待改进的地方。笔者有幸从93~96年,涉及此方面的工作,对合理地应......
关键词:P3 建设项目 管理 服务
三峡工程是一举世嘱目的工程建设项目,项目管理的任务其中包括进度控制的任务极其艰巨。业主单位确定应用P3软件作为进度控制的辅助工具已近五年时间,取得了很大的成绩,但还存在有待改进的地方。笔者有幸从93~96年,涉及此方面的工作,对合理地应用P3强大的功能为项目管理,尤其是项目进度控制服务,提一点自己的看法。现分述如下,作为抛砖引玉供有关部门参考。
1 统一规定网络进度计划的表达形式
三峡工程因其规模宏大,需要采用分项直接承发包制,业主将与多个独立的承包商建立合同关系,如果承包商们在进度计划表达形式上不统一,各自采用他们习惯的表达形式,对单个合同可能是可行的,但对整个三峡工程的进度控制而言,将产生混乱的而导致无法进行。
网络计划的类型有肯定型、非肯定型,随机型、循环型等。在土建行业大多采用称作关键线路法的肯定型计划网络。而该类型计划网络以其表达形式来分有:双代号、单代号、与单代号搭接网络等表达形式。从业主与监理方使用的网络计划大多是控制性进度网络,以及考虑到工程建设项目的复杂程度与P3软件所能支持网络计划的类型而言,以采用单代号搭接网络最合适。由于它表达相同的计划对象时,可以具有网络的规模最小,表达最为简洁的好处。因为它可免除用其肯定型计划网络时,为了表达活动之间的逻辑关系而需要增加虚活动和要把完整的须加细分的敝端。关于规定统一用搭接网络的建议,必须取得建设各方的共识,并共同执行。只有这样,才能把进度管理,纳入统一的、可操作的进度控制模型之内。
2 分析管理环境,合理确定进度计划网络整体结构
进度计划网络的整体结构是指进度网络系统中整个局部网络之间联系方式不同划分结构类型。
在选择进度计划网络的整体结构形式的时候,必须根据建设项目特点与管理模式出发予以考虑。从三峡工程业已招标发包的合同看,有的一个合同包含了若干个单项工程(如右岸一期工程合同);有的则一个扩大单位工程包含了若干项合同,如永久船闸工程。因此,业主项目与监理单位均处在多个合同管理环境下工作。这大大增加了项目管理的难度与工程协调工作量。我们在确定网络计划整体结构时,都要与上述多项目管理环境相适应,并充分利用P3软件所能提供的功能为前提。
关于进度计划网络的整体结构,可分为两类,一类是多级网络,如以三级网络为例,其示意图见图1。
图1 多级网络示意图
个工作(或称活动)。因此,分解的详细程度会直接影响网络计划中活动数目。过于详细,则增大网络图的图幅,不利于阅读与管理;分解得过粗,则对进度控制缺乏必要的指导作用。WBS分解的详细程度应考虑如下因素:
(1)WBS分解的详细程度要与计划进度的功用相协调,业主方的计划进度主要用于进度控制,宜粗些。通常分解到分部工程(最多到分项工程)的层次即可;对承包商实施性的进度计划所需的CWBS,可由承包商对其合同范围工程,在业主方WBS框架基础上根据需要,再自行细分;
(2)WBS的框架结构,要兼顾工程分标的具体要求。如永久五级船闸输水工程,宜将其再分成上游输水工程与下游输水工程,以避免出现一个分解单元跨两个合同的情况;
(3)分解的详细程度,对整个工程各部份要做到基本一致,以便能正确确定网络计划中各活动之间的逻辑关系;
(4)WBS分解的详细程度应使之对应的活动,在施工现场较易识别,有利于进度检查与进度控制工作。
总之,WBS分解结构应有利于建设项目进度控制与其他项目管理的需要。
3.2 建立工程项目管理的组织分解结构(OBS)
为使项目管理机构管辖范围清晰、职责分明,常用组织分解结构描述业主方管理机构的设置。并把它与WBS终层次的分解单元对应起来,即把WBS垂直树与OBS水平树按项目管理组织的管辖范围,得出对应的交叉点,以明确其责任主体。OBS的详细程度可分至具体责任人。
3.3 建立为项目管理服务和方便P3应用的代码体系
设计出一好的代码体系与代码方案对于项目管理及相关软件高效应用至关重要,它可使诸如统计、分类、校对、查询、计划的整合、计划的拆分、数据组织、过滤等工作变得简单方便。由于限于文章篇幅仅列项说明如下:
(1)为拟订好WBS框架,建立统一的工程分解结构代码符与词典。并在最高层主网上输入,以便为各层主、子网所共亨。
(2)为拟定好OBS框架,建立统一的组织分解结构代码符与词典,并在最高层主网上输入,以便为各层主、子网所共亨。
(3)依照三峡工程分标设计,统一规定合同代号,并建立词典。
(4)约定各标合同项目活动代码,在单代号搭接网络模型下,活动代码为网络中节点代码,从活动代码易于做到唯一性的易于阅读网络图,建议活动代码的前两位为字母型(与合同代号一致),后4位为数字型混合码为宜。后4位阿拉伯数字均以0、5数字结尾,以便为以后网络中增加活动留地。
(5)约定活动分类码
活动分类码实质上是把某些特性用活动分类码的形式加以识别。P3可为活动提供20个分类码,这些活动分类码可以识别诸如:活动属何种工程;活动所在的工程部位、高程;活动的承包单位;活动的监理单位;活动的业主管理单位;施工活动还是管理性质活动;以及想要识别的其它特性。业主方统一建立活动分类码(包括代码结构、码值与词典)供参与工程建设的有关单位所共亨。
(6)制定统一资源类别代码
制定统一资源类别代码的结构、码值与词典,资源包括:资金、劳力、各种材料、各种专用施工设备等。制定统一资源类别代码,使各承包商以统一的代码把资金、劳力、各种材料、各种专用施工设备的需要量载入网络之中,不仅为承包商编制施工资源、配置计划提供依据,同时也为业主方通过主~子网络结构汇总各种资源的总量及其在时间上的分配提供方便。为业主的材料、设备的采购与供应,资金筹措,施工现场管理等提供信息支持。为了减少这方面的工作量,可仅对业主关心的资源进行,对承包商关心的资源可在其子网络上自行定义。
4 制定运行规则,避免混乱发生
业主与多个承包商建立工程施工合同关系,共同为项目进度目标的实现各自承担其相应的义务情况下,按照一定的准则,规定各方运行规则,是避免发生混乱所必须的,尤其是应用P3采用多层二阶主~子网络非直接传递结构模型时,尤为必要。其运行规则的内容概述如下:
(1)有关各方均应采用为业主方制定的代码结构、码值(符)、词典。最好在最高层主网上输入,以便为各层主、子网所共亨。
(2)为使在主~子网结构内运算协调,在运行进度计划调整、更新时,必须确定相同的更新日期。所有的子网应使用相同的数据日期,以避免冲突与混乱;如果相同的数据日期不可能,应在主网更新、调整,使其数据日期在主~子网上同步;
(3)进度计划调整、更新的数据日期,可统一规定在月支付后的某一天为宜;
(4)承包商在其子网上调整、更新进度计划(增、删活动、调整活动时间、改变活动逻辑关系等),必须在其子网络拷贝版上进行,然后交监理审批,经批准后才能作为正式的子网络,并将原子网络备份(存档)以便恢复或查询;
(5)经(4)所述步骤后,统一建立从合同到整个建设项目各层次的目标进度网络,为事后的进度评价建立基准;
(6)各承包商对各自的进度进行评价时,均以经监理、业主审核确定的实际完成的工程质量为基础进行,使进度评价建立在可靠的基础之上;
(7)当在主网上增加不属于子网络的活动或里程碑日期时,应为主网络定义一个前两个字符的可与子网络活动相区别的活动代码符;
(8)业主、监理方为维护进度计划系统的安全,还应建立如下规定:在网络环境下,建立主网络与子网络的权限,及子网对主网络存取、访问的权限;用于所有子网络工作日历;用于调度/平衡计算如何选项的规定;资源、费用计算单位和小数点位数等。
5 扩大软件使用范围,发挥更大的作用
把P3软件作为项目进度控制的辅助工具,可发挥如下作用:
(1)编制与优化项目总进度计划与标段工程进度计划,按需对进度计划作出适时调整与更新;输出各种图表;
(2)计算时间参数,找出关键线路与关键活动;
(3)对实际进度与计划进度作对比,得出偏差,评价实际进度。并在此基础上,实现实际进度对计划进度的跟踪;
(4)汇总包括资金、材料、劳力、专用施工设备需用量计划及其在时间上的分布,为项目资源供应提供信息支持;
(5)在上述基础上,为制定中、短期进度计划提供方便和依据。
笔者认为,还可以在以下方面扩大使用范围,以充分发挥其P3功能:
(1)在合同管理方面,用于分析承包商提出的工期索赔要求与确定其索赔期限;
(2)为业主、监理在处理不同标段合同之间在进度上发生冲突时,提供最优调度的分析工具。即当不同标段间平行作业的活动会损害工程施工质量或危及安全时,可依据对项目目标实现最佳的原则,确定活动作业顺序,而主~子网络结构模型是最合适的分析模型;
(3)建立费用帐目把工程概算价格、合同价格、实际支出价格等载入网络计划之中,结合本国国情运用赢得值分析技术,还可在项目投资控制中发挥一定作用。
6 结束语
笔者所要阐明的是把P3软件作为项目进度控制的辅助工具,决不是仅涉及软件操作等纯技术性的问题。从业主方角度而言,更为重要的是从组织性质工作入手,做好上面所述及的工作。在统一组织、指挥下才能充分发挥其软件功能,为项目管理提供更好的服务。这犹如交响乐团在高水平乐队指挥下才奏出美妙动听的乐章一样。笔者曾对大型建设项目使用P3软件的情况进行一些调查,凡使用情况不理想的其症结所在大多在于此。这是要引以为戒的。也是笔者写此文的用意之所在。
摘要:本文分析了目前软件外包采购管理的重要意义和目前的形势,提出基于“双赢”策略的软件外包采购思想。在项目管理理论、CMM和ISO9000的基础上,提出和细化了软件项目外包采购管理的总体框架和具体操作内容。旨在通过对软件外包项目采购的选择购买、跟踪与控制、评估验收和项目后处理等过程的研究,来提高软件外包采购的项目管理水平,满足承包方对分承制方产品在质量、进度和成本等方面的要求和对外包过程的有效控制,为软件项目外包采购管理人员提供具体的操作过程。
一、基本概念和背景
项目管理理论是一门综合多门学科的新兴研究领域,共有九大知识领域,包括项目集成管理、项目范围管理、项目时间管理、项目费用管理、项目质量管理、项目人力资源管理、项目沟通管理、项目风险管理和项目采购管理。项目采购管理是指需要从执行组织以外获得货物和服务的过程。通常把货物和服务称为产品,把买方称为业主或对应分承制方的总承包商,而卖方称为承包商、厂商或供应商。项目采购管理一般包括以下主要过程:采购计划编制,询价计划编制,询价,承包商选择,合同管理,合同收尾[ 1 ].对于软件产品,一般采购可以分为两大类,一类是对已经在市场流通的软件产品进行采购。例如,某企业想做信息化建设项目,涉及到数据库,那么它就可以在目前市面流行通用的几种厂家和种类的数据库中选择。例如Oracle公司的Oracle数据库,Microsoft公司的SQL Sever,IBM公司的DB2数据库等等。然后根据自己的需求,通过询价、签合同、安装培训等过程来购买此类产品。这种采购过程基本已经形成几套通用的解决方案,比较简单,中国企业在处理这类产品的采购时,大部分都处理的较好。个别的企业由于需求分析不清晰,培训工作不到位等原因,也会产生购买的产品不适用,或不会用的情况。另外一类软件产品采购的形式是外包采购。它是指在市场上没有出现现成的产品或者没有适合自己企业需求的产品的情况下,需要以定制的方式把项目(功能模块)承包给其他企业。例如某企业需要实施企业资源计划项目(ERP),虽然可以购买BAAN软件,但是基于本企业业务流程的管理软件必须定制,对于各个原有孤立岛的集成软件,无法购买现成的产品,必须自己开发或外包给别的公司。
二、软件项目外包采购管理的意义
许多大型复杂工程项目的实施需要业主、总承包商、分承制商、供应商和开发制造商等共同合作来完成。因此在任何甲方和乙方之间必不可少的涉及到部分子项目(功能模块)的采购活动。目前社会中,企业的信息化、网络化建设正在世界范围内展开。谁先进行信息化改造,谁就早日适应社会发展的要求,获得巨额利润。大规模的企业信息化建设形成了庞大的软件产品市场,促进了软件业的发展。许多项目庞大复杂、高风险并且涉及高科技信息领域,在客观上使企业需要采购和外包许多产品,包括软件产品。主观上,在经济全球一体化形式下,这种外包采购作为采购活动的一种特殊的、更为复杂的形式,在企业中更为普遍存在。企业为了在日益竞争的社会环境中增强自身的核心竞争力,需要根据企业的特点,专门从事某一个领域或几个领域的业务,在某个业务领域内形成自己的核心业务,把企业内部的智能和资源集中在那些有核心竞争优势的活动上;把一些非自己擅长的业务领域的子项目和功能模块外包给有实力和优势的公司,才有利于加快项目的完工进度,降低风险,优化资源配制,保证项目质量,降低成本,创造更高的价值。
以电信行业为例,爱立信公司2000年底宣布把手机生产的绝大部分业务外包给新加坡的Flextronics公司,专注于移动通信网络设备业务。原因是爱立信的移动通信网络设备的销售占爱立信公司销售额的54%,利润达90%以上,占有全球的移动通信市场分额高达30%,而手机生产的投资回报率很底,甚至出现亏损情况。对于爱立信而言,手机生产“外包”是在信息化时代的战略调整,希望通过外包生产,调整投资结构,使手机降低成本并且尽快盈利,集中精力稳定和拓展电信业的新市场。出于同样目的,美国的摩托罗拉公司也表示将外包部分地区的手机生产业务。作为手机市场份额最大的诺基亚,在专注于手机生产业务的同时,大力开发周边产业。希望以手机业务带动相关产业的发展。从三大公司的投资趋势,可以看出,“外包”作为一种先进的国际专业化的生产方式正被一些大公司越来越多的采用。我国正处在信息化建设的高速发展阶段,必然会有越来越多的企业由于自身的能力限制或业务发展的战略选择,将采取业务“外包”的生产方式。
就软件项目外包采购的市场来说,2000年是企业信息化实施的第一年,国内企业,特别是大型企业的信息化项目开始运作。行业信息化改造重点将由原来的电信、金融、海关等行业转向交通、制造、医疗等传统行业。这些行业由于自身计算机技术水平和业务发展重点的原因,将会把大量的软件项目外包给软件公司。根据CCID的统计(软件可以分成平台软件、中间软件和应用软件),2000年中国软件市场中应用软件的销售额为147亿元,占软件总市场份额的63.9%.预计到2005年,计算机信息服务和软件市场销售额增长到1750亿元。届时我国软件项目“外包”市场潜力可想而知。
三、软件外包采购管理存在的问题
虽然在传统行业,许多工程项目的采购活动,例如机械工程项目或建筑工程项目等等已经形成比较成熟的管理体制和标准。但是软件项目的外包管理工作并不象其他行业那样顺利。
软件工程项目管理引起广泛注意源于20世纪70年代中期,当时发现70%的项目是因为管理不善而引起。20世纪90年代中期,美国的软件开发仍然很难预测,大约只有10%的项目能够在预定的费用和进度下交付。商用软件通常只有9%(中小型软件公司有16%)的软件项目能够及时交付且费用并不超支。
这里有多方面的原因:软件产品作为一种特殊商品形式,具有高度不可测量性和高度柔性;软件企业开发能力还不太成熟,软件开发大多数还处于手工作坊方式,软件研发企业有其自身的运做方式,人为因素比重大,不好量化管理。由于不确定因素太多,许多软件开发企业对于自己的项目都难以精确控制进度、质量、资源和成本,那么对于业主来说,想对外部企业(例如分承制商)保持良好控制力的难度就更大了。再加上具有技术优势的软件开发商一般集中在几个科技发达的大城市,与业主的距离远,相互的交流不方便,因此许多软件采购项目的实际应用效果都差强人意:不适用,进度超期,性能达不到标准,成本太高等等情况时有发生。
软件项目外包采购的成功与失败不仅仅影响到当前软件项目的质量、成本和工作进度,而且关系到企业信息化建设整个项目的整体结构、性能以及进度,意义重大。特别是当软件项目作为整体项目计划关键路径的一个环节,软件项目采购的进度直接影响整体项目的进度,并且总成本将成指数级增加。由于软件采购的情况特别复杂,涉及的学科领域不仅是科学技术上的,还有商业上的和观念上的,软件项目外包采购管理水平的高低,将直接关系到企业整个信息化建设进程。因此软件项目采购管理作为项目管理理论中一个新的研究课题,有必要给予足够的重视。
四、目前软件外包采购管理情况
美国项目管理协会的“项目管理知识体系指南”(PMBOK)[1]、美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(CMM)[2,3]和国际标准ISO9000-3[4]中虽然对外包采购管理的流程有过论述,但是他们指出的只是外包采购管理的一般原则;虽然人们可以结合自身企业特点实施标准,具有一定灵活性,但是事物的另一对立面就是操作过程不具体。这给软件产品的外包采购管理者带来具体操作上的困惑。另外PMBOK体系原则上是应用在各个行业的,缺乏针对软件领域的特点做专门的论述。ISO 9000-3系列和CMM虽然是针对软件领域的标准,但是ISO 9000-3的最大的特点是只告诉你要按规定做,不强调效果和后续改善,不强调经验积累和后评估。从这个意义上讲ISO9000注重水平的评估,不太强调提高企业成长的过程,因此对于提高企业的管理水平意义不大;CMM虽然旨在强调企业的过程能力的持续改进,但是它重点强调软件的开发过程管理和产品管理,缺乏软件的分发、转交和服务等方面的管理标准,所以也有一定的局限性。
五、基于“双赢”策略的软件外包采购思想
本文作者在集成美国项目管理协会的“项目管理知识体系指南”(PMBOK)和美国卡内基-梅隆大学软件工程研究所的“软件能力成熟度模型”(SW- CMM,SA-CMM)和ISO9000-3中关于外包采购的宗旨的基础上提出“双赢”策略的软件外包采购思想。
“双赢”策略的软件外包采购思想旨在利用双方业务能力互补,通过共同合作完成软件外包项目,达到“双赢”的目的,促进双方业务总体能力的提高。这种“双赢”策略要求双方在以下方面达成共识:双方共同关注过程控制,才能保证有效结果;只能成功,不能指望依靠惩罚手段来收回采购成本,软件外包采购项目的失败对整个项目带来的损失是巨大的;在合作过程中,建立对分承制商关系的管理体系,作为以后合作的基础;重视开发过程的风险评估和采购项目后评估,使得双方业务能力得到持续提高。
传统的外包采购中,采购方只关心分承制商产品的进度和质量,以为只要分承制商按期、按质交货,就可以圆满结束此次采购活动。有些项目尽管前期进度和质量满足合同要求,但是许多是以高投入、高负荷、高消耗等手段来保证的,这给后期带来极高的风险。在阶段评审中,如果采购方对分承制商开发过程中的费用投入、人员负荷、资源消耗、组织结构变化等漠不关心,因此就不能及早预见风险、控制风险。很难想象,后期在费用透支、人员疲惫或流失严重的情况下,分承制商仍能保证产品质量和进度。这种情况下,采购方只能要么加大投入,要么终止合同,并要求赔偿,要么延期验收等等。其副作用可想而知。而分承制商为了减少损失,根据博弈论中子博弈精练纳什均衡原理,必然采取降低质量要求,减少投入的策略,来加快进度。结果最终还是采购方遭受损失。
六、软件项目外包采购管理过程
为了保证软件外包采购项目的顺利进行,本文作者在上诉理论体系和“双赢”采购策略的基础上,提出和细化了软件项目外包采购的总体框架和具体操作内容,旨在为软件项目外包采购管理人员提供具体的可操作过程。
对于本采购过程,如果业主方由于行业、人员等原因,没有健全的监控部门,可以聘请具有软件监理职责的公司,或者总承包给具有一定软件工程监控能力的公司。这时的总承包公司角色相当于本文提到的采购部。
软件项目的整个外包采购过程可以分为十个工作阶段,包括总体项目需求分析和设计、子项目的需求分析、厂商选择、分承制商开发、业主阶段评估、交验测试、安装、培训、维护,后评价。
在开始外包采购之前,首先业主要完成项目的总体需求规格说明书和承包项目的需求说明书。一般承包项目的需求分用户需求和分配需求。对于分承包商来说,业主对软件项目所提出的需求通称“用户需求”。对于业主来说,系统总体分配给软件的系统需求通称“分配需求”。如何作好子项目的需求分析和管理,请参阅《软件需求》,详见参考文献5.然后业主把需求说明书交给采购组组织采购。采购部门收到需求说明书后,再补充质询调查表、报价指南、综合条款及条件等文件,组成采购质询技术文件发往厂商进行质询。采购部门在厂商质询的基础上,准备了厂商选择和投标估价等技术文件后,向业主送审,提请业主批准和确认所选厂商。在厂商选择和投标估价这两个文件中,采购部根据拟采购的软件对被质询的至少三家以上的供应厂商,就技术开发成熟能力、资源(包括以有的产品、硬件、软件、信息和已经过的培训)、资格和信誉、过去的合作关系、价格、提供的售后服务(包括培训和维护)、分承制方组织配置结构、与质询要求的差异等方面,经过经济技术和商业战略角度出发进行全面评估,经过其他各部门(例如系统工程组、软件工程组、质保组、财务组)审核后,列出供应厂商的优劣次序,择其优者为该项目的供应厂商。采购部一般以月为单位向业主通报软件采购情况。一般以招投标方式或内部评审的方式来确定分承制商。
分承制商在接到采购部的定货以后,就可以进行工作说明书、用户需求说明书、软件需求规格说明书、软件开发详细计划和成本概预算、测试计划、质量控制方法、风险控制、拟采用的软件工程标准和软件生命周期等文档的制作。然后分承制商把有关的技术资料文件通过业主的采购部送给业主进行校核和批准,然后才能开始开发。
业主在接到分承制商的上述材料后,组织系统工程部、软件工程部、质保部、财务部、采购部、法律部就上述材料中的开发项目视图和需求范围、使用或需要购买的软硬件、进度计划和成本、测试计划与案例、使用的技术和工程标准、人员配置等进行评审,并出具评审文件和风险评估、控制建议书。并由采购部制定采购项目监督评估计划书。合格后,由采购部、质保部及法律人员与分承制商签署详细的软件采购子合同。如需要对软件项目投保,以此来降低风险,需要和分承制商协商后,纳入合同文件。
分承制商在签署合同后可以进行设计和开发。业主应该委派采购部监督分承制商的工作。采购部应该有计划的组织质保部、软件工程部的项目计划管理人员和配置管理人员,定期对分承制商的开发活动进度、质量、成本等进行评估,并形成评估建议书。送审业主方的系统工程部、项目管理人员、分承制商的此项目的负责人。分承制方的项目负责人要对评估建议书的建议进行书面回复,并确保实施。
分承制方对所有需要采购的资源(软件、硬件、人力资源等)负责进行检验;采购部有权在任何时候对分承制商所采购的资源进行验证,使之符合所采用的规格说明书、规范、标准和其他技术文件所规定的要求,确保分承制商专款专用,建立开发环境。在这个阶段之前,采购部门和分承制商首先要确定由分承制商提供的验证建议书,并作好准备工作,提交检验用的技术文件,包括厂商说明书、设备性能数据表、配制清单、试验程序、检验技术要求。在检验的物质条件和技术条件均已准备妥善后,分承包商就可以向采购部并通过采购部向业主提出书面检验申请。一般分承包商可以提前三周通知采购部,由采购部提前两周以书面形式向业主提出检验申请,由业主召集系统工程部、软件工程部、质保部组成验证组,在规定的时间、地点检验。通过检验后,分承包商进入项目开发阶段;业主进入监控和评估阶段。对于重大关键项目,业主可以派遣项目监督员短期或长期进驻分承包商单位。
由于作为外部单位,业主不便时刻监督项目的开发过程。虽然理论上需要把分承制商看作是自己的一个项目部门来对待,纳入自己的进度控制和质量控制体系,但是客观上由于分承制商与业主距离较远,人员不熟悉,各自有自己的企业文化和管理体制,双方之间的信息沟通不畅,业主难以实时监督分承制商的开发进程和质量。最好的办法就是在分承制商的软件项目的各个里程碑处和分承制商一起进行检查和评估。软件项目一般可以划分成若干个里程碑(3-5个为益),分承制商需要提前一周通知采购部组织相关人员来评估。软件项目的里程碑一般指产品设计趋于稳定,中间产品定义趋于明晰,项目开发组真正了解项目实际的关键技术难度和可行的进度计划,开发活动停止,产品进入除错和稳定、随时可以的阶段,或当产品设计被删减、资源增加、进度延误的时候。在评估软件质量、进度和功能的同时,还要评估分承制商的人员工作负荷程度、风险、费用和资源消耗情况,并形成文档。由采购部送审系统工程部、软件工程部、项目管理部和分承制商的此项目负责人。
当产品进入交验测试的时候,分承制商需要提前三周通知采购部,采购部于前两周通知业主作好交验的组织评估准备工作。这时业主组织系统工程部、软件工程部、测试部、质保部和采购部,根据分承制商和业主在分承制商开发阶段预先共同定义、评审并批准的测试计划和验收方案进行验收测试,对需求规格说明书中的各项逐个详细的测试。最后以书面的形式给出对整个软件项目的测试评估报告。并对未通过验收测试的软件产品指定相应的补救措施和计划。分承制商交付给业主方的软件产品应当包括:源代码、软件开发计划、仿真环境、软件需求规格说明书、设计文档、软件测试计划、软件测试说明、验收测试计划、软件使用手册、软件安装手册、软件维护手册。必要的话,还包括相关培训计划。
软件采购的一个重要阶段是交货,也是目前经常忽略的阶段。当所采购的软件产品以及硬件运行环境在规定的时间到达采购部时候,采购部要以书面的形式通知业主交货。业主对所交的整个软件产品清单进行验收,并事先通知采购部拆箱日期,要采购部和分承包商的代表按时到场。业主要在接到采购部交货通知后一个月内,对所检查验收的整个软件产品(包括相关的软件、硬件及其附属产品、文档、技术资料等子合同中规定的产品)出具一份交货证明,如果这些提交的软件产品没有受到损坏并与装箱清单相一致,并在业主方环境运行良好;否则出具一份书面通知,说明在某个方面此产品损坏或与装箱单不符,或在业主方提供的环境运行不良。此通知或证明应由采购部和分承制商代表签署。如果在签合同的时候,就规定分承制商负责安装和调试,则相应的过程省略。
最后业主方由采购部把所有的文档归类封存,以备后续类似项目采购的参考查询。同时采购部在两个月之内以书面形式,对分承制商的技术开发成熟能力、资源(包括以有的产品、硬件、软件、人力资源和已经过的培训)、信誉、分承制方组织配置结构,管理能力和企业文化提交后评价报告,作为建立客户关系管理(CRM)的依据。对于此次采购的经验和教训,包括进度控制、质量控制、成本控制、客户关系控制、流程控制、风险控制等方面,采购部以文档的形式在组内讨论并保存。
七、结束语:
作为大型工程项目中的软件子项目或者部分功能模块的采购(外包),由于软件开发的固有特性(风险大,柔性强,人为因素突出,结果不宜测量等),使软件项目的外包采购管理变得十分复杂。如何控制分承制商的开发进度和质量等关键因素,需要在实践中不断探索,并针对具体公司和项目对采购过程有所裁剪。
论文摘要:本文针对软件开发中的进度延期、费用超标、质量低下等问题,探讨了如何利用项目管理中的相关控制方法进行软件开发过程控制。、论文在阐述软件项目管理内容的基础上,针对软件项目的三要素分别进行了探讨:进度控制、费用控制和质量控制,提出了几种有效的软件项目管理控制方法。这些研究对于加强我国软件项目管理控制过程,降低开发成本,减少开发风险具有重要的意义。
论文关键词:项目管理 进度控制 费用控制 质量控制 软件开发
人类社会经历了三次经济革命从农业革命、工业革命到目前正在经历的信息革命。信息化正在日益改变人们的思维方式和生活习惯。在推动信息化过程中,计算机及其软件产品发挥着至关重要的作用。对于软件项目的管理成为项目管理领域一个令人兴奋的课题。本文将结合项目管理中的控制方法分析软件项目管理控制的相关问题.以期提高软件项目的开发效率。
1、关于软件项目管理
1.1项目与项目管理
项目是一个旨在完成一个或一些独特产品或服务的过程.它有着一系列被详细描述的属性。由于项目的独特性和一次性特征,引伸出它的其他特点.如目标的确定性.成果的不可挽回性组织的临时性和开发性等。基于项flI的这些特点.项目运作更加注重项目决策前的计划以及对实施过程的控制,以减少项目运作的风险。项目管理是2O世纪50年代后期发展起来的一种计划管理方法,它运用先进科学的管理方式.有效解决大型组织的效率低下和小型企业面临的风险增加问题以组织的机动灵活.面向客户和资源利用率高而被广泛应用。在工程设计.施工软件项目的开发、实麓中经常会遇到进度拖延.费用超支、质量不达要求等问题除去极少数是因为技术原因造成,绝大部分是源于僵化的管理和不当的管理方式。
1.2软件项目管理
各软件企业都在积极将软件项目管理引入开发活动中.对开发实行有效的管理。从概念上讲.软件项目管理是为了使软件项目能够按照预定的成本.进度、质量顺利完成.而对成本、人员、进度、质量、风险等进行分析和管理的活动。同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作每个项目组成员按约定的规则准时完成自己的工作。同时采用规范化管理.专业分工也可以降低对开发人员的要求,从而降低产品研发成本。
2、软件项目控制
2.1软件项目控制
软件项目跟踪和监控包括对照已文档化的估计、约定和计划评审和跟踪软件完成情况和结果。基于实际的完成情况和结果调整这些计划。软件项目的已文档化的计划(即软件开发计划,正如在软件项目计划关键过程区域中所描述的)用作跟踪软件活动传送状态和修订计划的基础管理者监控软件活动.主要通过在所选出的软件工作产品完成时和在所选择的里程碑处,将实际的软件规模工作量成本和时间表与计划相比较,来确定进展情况。当确定未实现软件项目计划时,采取纠正措施。这些措施可以包括修订软件开发计划以反映实际的完成情况和重新计划遗留的工作或者采取改进性能的措施。
2.2软件项目控制的内容
软件项目控制的目的是为软件项目的过程提供足够的能见度,从而可以在执行过程中发生对计划的严重偏离时能够采取适当的更正行为。软件项目控制包括:a。追踪软件项目的进展于表现从而与所作的估计、承诺和计划做出对比:b。追踪软件项目的风险;C。在发生对计划的严重偏离时采取适当的更正行为。
2.3软件项目控制步骤
由于软件开发是处在一个开放的动态系统中,开发环境的不断变化要求不断修改项目计划,以适应新的变化。此外项目经理及其组织在完成任务的过程中不可避免的要碰到这样或那样的问题.解决这些新的矛盾和问题均属项目控制的范畴项目的预算和进度计划只能为项目经理提供决策的依据.如果在项目实施过程中控制不住.很难在限定的时间和预算要求下实现项目管理工作的目标。因此软件项目控制的过程包括以下四个步骤:a、预测什么会发生——要做出开发计划并建立工作标准b、查明什么正在发生——用建立的工作标准检查当前的工作;c、正在(或已经)发生的实事同预测的结果进行比较——分析误差产生的原因:d及时采取补救措施.以满足项目目标,预算和进度的要求。
3、软件项目控制具体操作
3.1软件项目进度控制
为了确保软件开发中的各项工作能按照计划预定的日程顺利完成.对项目的进度要进行控制。进度控制的过程是.在项目实施过程中,不断地进行实际进度值与计划值的比较、发现偏差、检查分析其产生的原因,并采取相应的措施加以解决。
3.1.1进度控制流程
(1)进度控制的输入
进度计划。项目进度基准是项目测量和报告的基础和标准。
实施报告。实施报告提供了有关项目进度发展实情。报告未来可能发生的进度问题。
变更要求。项目变更要有严格的申请和审批手续。
进度管理的技术和工具。
(2)进度管理的技术和工具
进度控制变更系统。为有效实现进度管理与控制.进度控制系统应设立实现重新计划的全部功能。包括:文件设立.跟踪即实施报告.变更评估等。
实施情况测量。项目进度控制系统中的一个重要组成部分是决定对迟发生的进度偏差是否采取纠偏措施。而实施情况报告提供了决策的主要信息。如变更分析.趋势分析.已实现价值分析等。
纠偏计划。很少有项目能完全按计划进度进行为实现项目进度或总进度要求,在项目实施过程中.需要不断对原计划进行调整或增加新的工作内容。为此.需要不断对实施的项目进行活动时间预测。修改活动过程.替代进度方案分析。
项目管理软件。它的作用是跟踪项目按计划日期展开实际工作的情况.对照进度计划分析进度现状,找出进度的偏差.分析进度偏差对项目的影响.预测未来走势
(3)项目进度控制的输出
进度更新。包括对项目管理中任何进度信息的修改。进度调整是其中的一种.师队员进度计划中活动开始和结束时间的改变。纠偏行动。通过改变资源投入将实际进度拉回到计划的行动过程。
从中获得的教训。有关进度偏差产生的原因。纠偏方案的评估与选择以及其他方面的感受和教训都应纪录在案成为日后有用的历史资料。
3.1.2进度控制方法
一般项目进度控制采用因果分析.分析用四步完成:
(1)明确问题。实际完成情况与项目里程碑相对照.确定是否超期.超期的部分是在哪里。
(2)查找产生该问题的原因。位从系统角度充分认识各方原因.应组织具有代表性任务人员并采用头脑风暴法进行。项目主管要通过他领导的办公室或小组,以及在各职能部门的人共同分析问题产生原因。
(3)确定个原因对问题产生的影响程度。对影响程度的评估可以采用专家小组打分的方法,事先确定权数.而后打分得出分析结果。
(4)画出带箭头的鱼刺图。分析出原因后各部门各就其职针对问题提出解决方案.并实施。
3.1.3软件项目进度控制具体措施
在实施进度计划过程中,会有种种故障:客户的需求进行了补充或修改;工作量估算不准,造成进度不平衡或是有人不遵从开发规范.导致产品出现缺陷;或是技术环节出现故障,这些问题往往是在进度计划外出现的.一旦出现这些问题,项目进度不得不进行调整。开发过程中为了有效控制类似问题,可以采用以下辅助措施,控制进度按计划执行:
(1)政策性措施。对于不遵从开发规范,人员不按时履行职责的.给予经济或是职务上的处罚.这种措施应是建立在分配任务之前;
(2)人员安排。在各子项目接口处适当安排机动人员与机动时间。这一措施有赖于项目组织的机构设置能动性好。此处比较难解决的是人员业绩评估.奖励问题。
(3)技术措施,要想很好地执行进度计划,需要事先有统一的规范例如开发语言的统一,文档的归类。这样便于下一阶段人员理解上一阶段人员意图,交流更加容易。
(4)信息流措施。该措施要求建立一个信息流系统.准时汇报项目进度.便于主控人员调整进度,并且保证信息流通顺畅。避免开发期压到最后造成严重拖工。
(5)资金措施。财务部门可以定期检查各部门财务情况.控制资金流出时间.进而控制项目进度。这与后面要讲到的三者权衡有密切关系。
3.2软件项目费用控制
费用控制就是要保证各项工作要在他们各自的预算范围内进行。其基础是实现就对项目进行费用预算。整个项目费用应包括项目范围规划阶段。软件需求分析阶段.原型设计阶段开发阶段.测试阶段和项目投入使用后的使用阶段所消耗费用的总和。软件开发项目承担公司为了完成项目目标和获得更多的利润.在实施项目过程中就要控制成本.在控制过程中,首先要拟定一个标准.即计划值.然后进行实际至于计划值的比较,确定实际值与计划标准的偏差大小.以便在此基础上采取各种措施纠正偏差.常用的分析工具是偏差分析。
偏差是指实际成本对相应计划的偏离,成本偏差的数学公式为:
CV=BCWP-ACWP(负数CV表明出现超支;反之,则节资)(3—1)
其中:CV为成本偏差,BCWP为计划工作预算,ACWP为完成工作实际成本。
在进行成本偏离计划程度分析时,常用计划偏差率反应时给予计划的偏离程度。
CVP=CV/BCWP(3-2)
其中CVP为成本偏差率。
偏差值是控制分析中的一个关键参数,因而应向各级组织汇报。对于不同的项目或同一项目不同阶段或不同管理层次,对偏差的控制程度不一样,制定偏差允许值的方法也不同。由于随着时间的推移风险减少了,因而偏差允许也可降低。
3.3软件项目质量控制
对于软件产品的项目质量控制应是事前有预控,过程有监控的主动控制闭环系统。(1)事前预控:根据影响质量因素多等特点.软件项目质量必须事前预控,及根据软件的类型和特点,以及以往类似项目的常发病和预防措施,对软件项目质量提出事前预控措施,包括制定控制的计划和程序,这是项目质量控制的前提。(2)过程监控:根据易产生质量波动和易产生系统因素变异等特点,软件项目质量必须过程监控.即按照预控的计划和程序,对工序、分项、单元的全过程进行过程监控.包括监测、检查、控制和评定.这是项目质量控制的基础。
4、结语
软件开发项目在进度、费用和质量三方面均需要进行控制,因此还存在三因素的权衡问题。实践中.需要在三方面均进行行之有效的控制措施才能确保项目完成情况与计划最大限度的接近。本文提供了一些方法借鉴.对软件开发项目控制有一定的实际意义。
论文关键词 软件高职 项目实训 人员选择 人员管理
论文摘要 项目实训是软件高职教育课程体系中的重要环节。结合软件高职项目实训中人员管理的实际情况进行分析和论证,同时给出实训人员选择与管理工作的基本原则和方法,并总结其中的一些基本经验。
随着国家大力发展职业教育的政策的出台,职业教育在全国范围逐渐兴起,软件高职教育作为职业教育的一个重要组成部分,为国家和地方培养了大量的具有较强动手能力的一线人才,创造出巨大的生产力,带动整个IT行业的发展,推动经济和社会的进步。项目实训作为软件高职教育课程体系中的一个重要环节,无论是对学生理论知识的拓展还是动手能力的培养都起到至关重要的作用。目前,福建省的软件高职项目实训还处于初级发展阶段,无论在项目设置上还是在管理方式上都存在不足。笔者结合实际教学和管理经验,对软件高职实训中的人员管理方式和方法做初步的分析和探讨。
1 人员的选择
教育的宗旨是以学生为本,平等地对待每一位学生,让他们在最大程度上发挥潜力。但是实训工作毕竟带有一种企业模拟性质,学校注重教育公平,而企业更关注开发效率和项目成本,这两者在一定程度上是此消彼长的对立面。因此,如何通过合理的人员选择和配置,找到既能平等地对待每个学生,又能够最大限度地提高项目团队开发效率的平衡点,是实训项目管理人员所急需解决的现实而又棘手的问题。以下是笔者在实践中探索并采用的2种较为合理的人员选择与配置方案。
1.1 T&R式自由组合法这里的T指的是Test,即测试,包括技术笔试和专业面试。在两项测试之后应形成一个比较合理的量化指标,该指标应着重突出候选人员的技术能力和团队意识,公布所有候选人员的各项量化指标。为保护学生的隐私,在公布时可以用编号取代学生的真实姓名。这里的R指的是rate,即比例。项目管理人员可以预先设定好小组成员结构的技术等级比例,参照学生的综合得分情况,按照1:2:1的高中低3个层次分布比例较合理。这种做法既可以避免单纯比例式自由组合给学生带来的盲目性,也能够比较真实地反映学生的能力水平,可以科学地、客观地组建起较为高效的团队,从而能够在后续阶段提高团队整体工作效率,也为管理工作带来方便。
1.2 T&R交互式人员确定法首先寻找若干名班委组成评审组,项目管理人员或教师负责领导该评审组;接着参照T&R方法得出候选人员的各项评估指标和综合指标,以及小组结构比例;然后由评审小组成员进行数据分析并结合每个成员实际情况确定各小组的组成人员。将初步形成的分组名单公布告知各候选人员,征求每位成员意见,由评审小组跟持反对意见的候选成员进行当面的会议式的沟通,进行合理的调整,经此步骤之后形成最终分组名单并公布。这样做实现候选成员与管理人员之间的交互,能够把纯粹的硬性考核成绩指标转化为“考核成绩指标+交互式分析”。这样较为客观且人性化的评判方式,既能够得到较为真实的数据,又能够吸纳学生合理的意见或看法,从而利于更科学的人员选择。
2 人员的管理
美国心理学家亚伯拉罕·马斯洛把人的需求分成生理需求、安全需求、社交需求、尊重需求和自我实现需求5类,依次由较低层次到较高层次排列,在管理中他建议通过满足人的需求来激发他们。
在学校实训的项目组中,成员的生理需求和安全需求都基本能够得以满足,因此,保证成员的社会需求、受尊重需求和自我实现需求的满足,对管理者来说有十分重要的意义。1)满足组员的社会需求就是为组员提供相互交往的时间和场所。实训项目的交流不应仅局限在小组的范畴,应鼓励小组与小组间的相互交流,条件具备的话可以组织学校跟学校间类似项目组间的交流。形式可以多样化,如电子邮件、组建QQ群、网络会议、座谈会和技术讲座等互动方式。2)为了满足组员受尊重的需求,应该让他们感到在项目小组中受到人格上的尊重,技术长处被认可。对于参加实训的学生来说,对他们做出的成绩给予充分的肯定就是一种简便高效的方式,如针对某个技术环节开展一次技能比赛,或者开展评审会定期对项目阶段成果进行评估,对优秀团队及其成员进行表彰等。3)为满足组员自我实现的需求,应该在项目取得一定成果的基础上,分配给组员具有一定挑战性和难度的任务,这些任务不能超过学生能力的范围,同时给他们提供课外的辅导以提高他们解决这些问题的技能。任务的完成情况可以作为附加评审内容纳入学生最终的实训综合成绩中去,给学生超越自我的动力。
3 团队的管理
3.1 增强小组凝聚力一个有强大凝聚力的小组是最高效的小组,小组中的成员在思想上能够形成共同的准则,在工作中能够紧密配合和协调,组员跟组员之间能够互相学习、相互关照,从而消除隔阂,用集体的力量解决许多工作中的问题。增强小组凝聚力的方式有许多,如给小组起个性化的名字、开展游戏或者室内或户外运动等方式增进组员间的沟通。另外,提高小组组员的责任感、诚信度以及保障他们的知情权、提供发展的空间等,都是增强小组凝聚力的有效方法。
3.2 增强小组沟通沟通作为软件开发过程中的重要环节,对于开发效率的提高和团队的整体发展具有决定性的意义。1)适当的小组规模。在编制小组成员时应考虑到人数对沟通的影响,成员太少,沟通容易但不利于开发效率;反之,成员过多会使得沟通变得十分困难,从而使效率严重下降,因此,合理的人员安排才是关键。根据经验,一个实训小组以4~8个为宜,其中6人组最为合适。2)合理的性别比例。如果小组中的组员性别均相同,可能会导致冲突,使得沟通无法正常进行,所以在确定小组结构时应注意男女比例的控制。对于软件开发类实训项目而言,小组中的男女比例应控制在3:1左右,其中女性组员可以作为小组的协调员。3)适当的小组负责人。小组负责人除了领导小组工作外,还负责协调小组成员之间的沟通。受尊重的小组负责人可以提高小组凝聚力和工作效率,无论对自身的进步还是对整个团队的发展来说都是大有裨益的。