首页 > 学院 > 开发设计 > 正文

软件开发项目控制浅谈

2019-11-17 04:51:10
字体:
来源:转载
供稿:网友

  一、项目控制的作用

项目控制的作用就是为了保证项目按照预期的项目目标进行,必须对项目的运行情况和输出进行持续的跟踪监控,收集各种项目进展信息,对收集的信息进行分析,与预期的项目目标进行比较。在出现偏差时及时分析偏差原因,制定有效的纠正预防措施,落实纠正预防措施。

项目的特点是渐进明晰的,非凡地软件开发项目更因为其结果的无形性、需求难以明确性、劳动密集性和智力密集性,“渐进明晰”这一特点更加显著。在项目的初期,项目经理或项目成员基本上不可能像建设一栋有形的建筑一样,预想出项目实施过程中的所有情况(对于建筑行业来说,不可预见的主要是一些不可抗力,如天气、人员的流失、供货的及时性)。所以,尽管已经尽可能明确制定了项目目标,并以此为目标制定了尽可能周密的计划,假如没有对照项目计划进行严密的监控,并及时调整计划,不断使计划明晰化并符合实际,以尽可能地保证项目按照基准计划实施,并使计划的变更尽可能地减少,那么项目就很难达到原先计划中制定的目标。这些目标要同时兼顾进度、质量、成本。

所以不仅要制定出好的项目计划,更要进行严密的项目控制。项目控制是项目经理的一项重要职责,也是项目治理部门、项目成员、项目干系人的重要职责。

项目控制的基础是项目计划,项目计划的基础是项目目标。因此,项目治理的第一步是要明确项目目标。软件开发项目目标应该包括软件系统的范围、质量、进度、成本、市场或政治目标。范围目标是指软件系统的功能范围;质量目标包括软件系统的性能要求、技术指标、质量要求等等;进度目标包括软件系统的交付时间,与客户达成共识的其他时间要求,如验收时间、培训时间等等;成本目标对企业内部来说就是项目的预算,对于客户来说就是能够给出合理的价格;市场或政治目标就是诸如完成市场占有率、提高企业形象、打开知名度、击败某个竞争对手等等。

第二步是根据目标分析自身的资源状况,资源包括人力资源(治理水平、技术水平、数量、行业知识与经验积累、技术知识与经验积累)、设备、资金、信息、与相关人员的关系或渠道。

第三步是根据项目目标和资源约束来制定项目计划,项目计划应包括项目目标、项目任务的分解、项目组的组织机构和各角色责任、项目任务的责任分配、项目进度计划、成本计划、质量计划、沟通计划、风险防范计划、项目控制计划。

第四步就是实施项目计划,在项目计划实施过程中要持续跟踪监控项目进展情况,并与项目计划比较,发现偏差,分析原因,及时采取纠正、预防措施,随时解决项目中需要解决的问题,包括项目团队的沟通和冲突问题。

项目内外各种因素具有不确定性,同时项目相关环境中存在一定的干扰,因此项目的实施难以完全按照项目计划进行,出现偏差是不可避免的。良好的项目控制可以保证项目按照计划稳定地完成项目目标,就是说可以及时地发现偏差、有效地缩小偏差、迅速地纠正或预防偏差,使项目始终按照合理的计划推进。

下面引用闻名的“破窗理论”来说明项目控制的重要性。

美国心理学家詹巴斗进行过一项有趣的试验:他把两辆一模一样的汽车分别停放在帕罗阿尔托的中产阶级社区和相对杂乱的布朗克斯街区。停在中产阶级社区的那一辆,停了一个星期也完好无损;而另一辆,他摘掉车牌,打开顶棚,结果不到一天就被人偷走了。后来,他把那辆完好无损的汽车敲碎了一块玻璃,结果,仅仅过了几个小时车就不见了。以这项试验为基础,美国政治学家威尔逊和犯罪学家凯林提出了一个“破窗理论”。他们认为:假如有人打坏了一栋建筑上的一块玻璃,又没有及时修复,别人就可能受到某些暗示性的纵容,去打坏更多的玻璃。久而久之,这些窗户就给人造成一种无序的感觉。结果,在这种麻木不仁的氛围中,犯罪就会滋生、蔓延。

“破窗理论”在社会治安综合治理中的作用是显而易见的,在项目治理、项目控制中也有着重要的借鉴意义。许多人认为,这样做太简单,芝麻小事,没有什么意义,而且兴师动众,没有必要。但是一个软件开发项目是否能够保证按照计划的进度质量成本完成的一个重要标志就是项目能否进行“防微杜渐”的控制。这是“破窗理论”在项目治理领域中的一个直观的体现。有时,小题大做的处理是非常有必要的,以防止“千里之堤,溃于蚁穴”。

当然,话说回来,项目控制并不是对付项目中的“小偷小摸”或者“犯罪嫌疑人”。而是为了保证项目目标的达成。目前是讲究“以人为本”的时代,项目控制也要讲究“人性化”治理。除了对项目进展的检查监督外,更有效、更长久的办法应该是提高人的素质,提倡责任控制、自发控制。
  二、项目控制类型

  1、按控制内容

既然项目控制的作用和目的是为了保证项目实施最终能够满足项目目标的要求,而项目目标又包括项目可交付成果及软件产品的范围、质量、交付日期,因此项目控制至少要包括范围控制、质量控制、进度控制。另外由于交付的成果大多具有确定的价格,而企业为了保证软件产品能够赢得一定的利润,就会设定预算目标,因此还要进行成本控制。再者,软件需求的不明确性、项目的外在条件和多项目资源共享的情况,都有可能需要对项目计划进行调整,因此需要进行项目的变更控制。

范围控制:建筑行业可能不太需要范围控制,因为建造几栋房子其范围是非常。但也很难说,也许由于资金的问题,原来预备建7栋的,现在可能改成先建4栋,再建3栋。或者原来预备建88层的,现在改成建68层。但是软件系统的范围控制就很重要,有的需求功能分解得很粗很模糊,项目范围是一个大致的范围,这样就比较难以控制其范围。范围控制的第一步就是把项目的范围确定清楚。确定清楚后项目范围是比较好控制。

质量控制:质量控制的目的是保证项目成果的质量满足项目质量计划中说明的项目成果的质量要求。项目质量计划的说明可能会引用其他文件来说明项目成果的质量要求,如招标书、投标书、合同、需求规格说明书、国家标准、行业标准、企业内部制定的各种规范等等。

进度控制:项目进行过程中,必须不断检查、监控项目的进展情况,以保证每项分解的任务都能按计划完成。持续收集项目进展数据,把握项目计划的实施情况,将实际情况与进度计划进行对比,分析其差距和造成这些差距的原因,必要时采取有效地纠正或预防措施,使项目按照项目进度计划中预定的工期目标进行,防止延误工期。项目进度控制不仅要注重主要任务或要害路径上的任务的工期,也要注重一些本来次要的任务的进展,以防止次要任务拖延,影响主要任务和要害路径上的任务。

成本控制:成本控制的基础是在项目计划中对项目制定出合理的成本预算,也叫费用预算。
成本控制就是尽可能地保证各项工作在项目计划中预定的预算内进行。成本控制也可以叫费用控制。软件开发项目的成本最主要的是人力资源的成本,而人力资源的成本体现为各个项目成员薪资水平乘以他所花费工作日的总合,因此人力资源的成本其重点在于合理地安排使用合适的人力资源。软件开发项目的成本还包括购买必需的软硬件设备的成本;需求调研所花费的交通、协作、通信成本;购买必要的办公用品、参考资料的费用;给用户培训所需要花费的培训资料编写费、资料印刷费、产地费、设备费;假如需要第三方的鉴定或检测,还需要一定的鉴定检测费用,包括预备的费用;假如部分组件需要外包,则应当控制软件外包的成本,包括交付给外包承担方的费用,和进行质量、进度控制的治理成本。

变更控制:对于软件开发项目而言,变更一般是不可避免的。为了将项目变更的影响降低到最小,就需要采用变更控制的方法。变更控制就是要找出影响项目变更的因素、判定项目变更范围是否有必要、判定项目变更的结果是否已经发生及效果如何等。进行变更控制的主要依据有:项目计划、变更请求和提供了项目执行状况信息的绩效报告。

在项目范围相对明确固定的情况下,质量、进度、成本三个目标一般是相互矛盾、互相制约的。赶工、缩短工期、加快进度往往导致成本上升或质量下降,降低成本会使进度拖延或质量下降;提高质量需要更长的工期、更高的成本。因此应当注重平衡质量、进度、成本三个目标,更好地进行项目控制。

  2、按控制执行人员

项目控制按照控制执行人员来划分可以分为:项目组内控制、企业控制、用户方控制、第三方控制。

项目组内控制:项目组内以项目经理为主,组织项目成员进行持续自我检查,对照项目计划,及时发现偏差、及时进行调整。

企业控制:项目组以外,企业领导层以及生产部门、项目治理部门、质量治理部门、财务治理部门对项目进行控制。项目组一般应该定期提交项目状态报告给上述项目干系人,使他们了解项目的真实进展情况。

用户方控制:用户方对于项目的进度、质量是最关心的,所以有责任感用户方会定期或不定期地需要获得项目进展的信息,作为他们项目控制的依据。用户控制的措施主要是在发现问题后提出警告。当然,合同签订后软件系统的价格是固定的,所以他们对项目成本的关心程度不会像企业那样高。

第三方控制:目前有些项目委托项目监理机构进行项目控制。作为第三方的监理机构,对于软件开发项目的成功是有利的,因为理论上监理单位利益独立于双方之外,可以客观公正地提出相关意见和措施,保证项目的质量、进度及投资。同时,第三方监理拥有很强的咨询能力,可以帮助双方解决一些技术和治理难题,促进项目进展。对信息工程建设项目实施成功与否做公正客观评价,又可以使软件系统用户和系统开发商双方的市场行为规范起来,客观上促进软件开发商提供高质量的符合客户业务需求的软件系统,从而提高客户对建设软件系统的信心。

  3、按控制方式

控制一词的本意是指抑制或限制、指导或命令、核对或验证。项目控制是保证项目计划实施不偏离目标的有效手段,控制方式的选择伴随着控制者与控制对象渐进而长期的适应过程,它是一种综合而复杂的治理行为。

远程控制:随着网络和通信技术的发展,企业经营市场的全球化,企业员工的工作可能远离企业治理部门,也可能在家里上班,传统的检查监控的控制方式无法适用。因此,制度控制将成为控制企业生产经营活动的一种重要方式。

检查控制:企业通过检查监督等方式对项目组进行持续的监控,及时发现问题,解决问题,纠正偏差。“人们不会做你期望他做的事情,只会做你预备检查的事情。”这句话不完全对,但有一定的道理,主要看针对什么样的人。

责任控制:项目任务分解合理,每个项目成员分工责任明确,每个成员按照自己的责任目标,按时保质地完成自己的任务。软件开发是智力型的手工劳动,传统机械的控制、治理方法很难起到真正的效果。

自发控制:自发控制方式是把责任控制代之以更严格的、要求更高的、更有效的内部控制。它激励项目团队自觉行动,并不是别人要他做什么或怎么做,而是客观的计划任务和变化的环境要求他采取相应的行动,不仅完成责任分配的份内工作,还在完成本职工作的基础上主动完成自己认为需要完成的工作。

  4、按控制时机

项目控制的时机可以可以在活动开始之前、之中和之后进行,分为预防控制、过程控制和纠正控制

预防控制:防范于未燃是最好的一种项目控制方式,它可以预先做好预备避免和防止预期问题的发生。预防控制就是从项目的策划阶段开始,每个阶段对后面项目实施的过程,根据经验猜测和估计可能产生的偏差,并采取相应的防范措施,尽可能地消除偏差。例如,对于软件开发需要的技术,要及早安排培训学习,做好技术预研,对于可能会流失的要害项目骨干,应当及早预备好替代人员。预防控制需要项目经理丰富的经验、敏锐的嗅觉和判定力、及时准确的信息。对于确定的问题,进行项目假设和约束分析,假设是通过努力可以直接解决的问题,而这些问题是一定要解决才能保证项目按计划完成;约束一般是难以解决的问题,但可以通过其他途径回避或弥补、取舍,如牺牲进度、质量等等;假如问题的出现具有不确定性,则应该在风险分析中列出,分析其出现的可能性(概率)、造成的影响、采取的措施。

过程控制:在项目的实施过程中进行持续的随时的监督和指导的控制。通过观察和定期汇报的形式都可以有效地进行过程控制,可以通过每周进度图表清楚地显示计划的任务、已经完成的任务、与计划目标的偏差程度(准时、提早、延迟),一旦发现偏差,就应当考虑及时采取纠正或者预防措施。

纠正控制:纠正控制是在项目的某个阶段或某个任务或整个项目基本结束或项目出现偏差后进行纠正的控制,这时候损失已经发生了,因此具有亡羊补牢的性质,纠正控制可能是迫不得已的唯一选择。
  三、项目控制的步骤

从以上项目控制的作用和类型分析来看,项目控制的基础和依据是项目目标和项目计划,所以项目控制的步骤就是:根据项目目标制定项目控制计划(包括进度控制计划、质量控制计划、成本控制计划)、设定阶段成果验收准则、汇报和收集项目实施进展信息、判定偏差、分析偏差产生的原因和趋势、采取适当的纠正预防措施,对纠正预防措施的有效性进行评估。

  1、根据项目目标制定控制计划

项目控制的对象不仅要针对总体任务,更要针对尽可能具体的分解后的任务,这样的控制才会取得应有的效果。
因此项目控制的目标包括总体目标、分任务目标、阶段目标。项目控制的基础是否扎实依靠于项目任务的分解是否清楚合理、是否尽可能的具体、阶段目标设置是否合理等等。有的任务的分解往往可以有多种方案,应当找到既利于工作任务分配,有利于划分阶段目标的分解方案。

  2、设定阶段成果验收准则

阶段成果验收准则应当包括在进度控制计划、质量控制计划、成本控制计划中。阶段成果验收准则就是判定阶段成果是否符合要求的标准,其最原始依据是合同。由合同带出的依据包括需要遵守的相关技术标准规范、需求规格说明书、设计说明书、测试计划等等。

  3、汇报和收集项目进展信息

项目实施进展信息包括制度规定的定期汇报信息和项目治理人员不定期地收集的相关信息。定期汇报信息包括定期的会议和定期的项目阶段状态报告。定期的汇报信息应但包括:项目当前状态、报告区间内完成的工作、计划区间内预备完成的工作、已经解决的问题、需要解决的问题(包括遗留未解决的问题、新出现的问题、需要客户、企业领导层、兄弟部门等协调解决的问题)。项目治理部门根据项目组的汇报进行汇总统计。

  4、判定偏差

根据项目组汇报的项目当前状态(不能仅仅写一个延期或准时或提前、应当说明哪项任务延期、哪项任务准时、哪项任务提前)判定项目是否出现偏差,这些偏差是在合理的范围、可接受的范围、还是应当尽快纠正的范围。通过把项目阶段状态汇报信息、汇总统计信息与项目计划、相关标准规范进行对比,及早发现项目实施结果和计划预期结果之间的差距。为了更好地判定项目计划实施过程中的偏差,应该项目计划中按阶段设置必要的“里程碑”。不过,“里程碑”应当设置的合理有效,而一旦里程碑设置好后,就要认真地进行对里程碑的结果进行检验,同时也不能仅仅依靠检查某些里程碑的结果,而不去跟踪监控产生这个结果的过程。

  5、分析偏差产生的原因和趋势

所谓偏差主要是在进度和成本上的的,质量上的偏差对软件来说比较难以判定。项目实施过程中产生的偏差就是实际进展和项目计划之间的差距,可以分为正偏差、负偏差和零偏差。零偏差意味着没有偏差;正偏差说明项目进度比进度计划有所超前,或当前花费成本少于计划中当前预算约定的成本;负偏差说明项目进度比进度计划有所延迟,或当前花费成本多于计划中当前预算约定的成本。

正偏差不完全是好事,负偏差也不完全是坏事。这些偏差的原因是什么,应当进一步向项目组了解情况,具体分析产生偏差的原因。

可能的原因有:原来制定的项目计划不合理,过于保守的计划造成了正偏差,过于乐观的计划造成了负偏差;技术革新、治理革新提高了效率造成了正偏差,资源不足、低效率、故障、人员离职造成了负偏差;成本的增加(负偏差),如增加奖金、提高工资、提高加班补贴造成了进度正偏差或零偏差;抽走技术人员(正偏差)造成进度的负偏差;需求分析不够清楚、设计方案有问题造成进度和成本的负偏差;外部因素有:客户配合不力、外包供给商未能按期、按质的要求交付、战争或自然灾难等不可抗力等等。

除了要分析出偏差的原因,还要根据原因分析除可能的趋势。原来的正偏差或零偏差是否会发展成负偏差,原来的负偏差是否有希望扭转成正偏差,还是会在不采取措施的情况下越来越严重,对后面的项目活动有多大程度的影响。

  6、采取适当的纠正预防措施

偏差的判定和分析让我们了解了偏差的根源,可以有的放矢地制定适当的纠正或预防措施。假如是计划不合理,就进行计划变更;假如是设计不合理,就进行设计变更;假如是人力资源不足,就适当增加人力资源;假如需要加班,就采取适当的措施安排加班。只有分析出造成偏差的根源和责任人,才能制定出对症下药的和可以落实到具体人员的纠正预防措施。

  7、跟踪评估措施的有效性

项目出现偏差后,制定的纠正预防措施和项目计划一样应该是具有可跟踪性的,就是说必须落实到具体的人负责,同时纠正的结果和效果是可以检验的。纠正预防措施制定出来后,应当保证落到实处,因此必须进行跟踪检查,对纠正预防措施的有效性进行评估。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表