开始做项目是一件令人激动的事情,项目组的每个成员都面临着新的机会和挑战。但同时也多少有些令人不安,大家都会考虑这样一个问题:"我们如何按时完成一个高质量的项目?"因为在项目开始之前往往存在许多不确定的因素,它们也许会一直持续到整个项目结束。所以在项目准备阶段,也有许多工作要做。
前提条件与主要任务
开始做项目是需要前提条件的(输入条件),不同的项目类型有不同的前提条件。如果是为客户定制的项目,需要与客户达成某种形式的合作意向,对于比较大型的项目,则中标往往被作为一个最基本的前提条件;如果是产品项目,则需要市场调研报告等作为输入条件;即使是那些内部研发项目,也需要类似可行性报告的分析来表明执行项目的必要性。通常,我们把此阶段称为调研阶段或论证阶段,一旦此阶段的结论认为可以正式启动项目,就进入项目的准备阶段或启动阶段。
项目准备阶段的主要任务是签订合同(外部项目)或立项(内部项目),此阶段所生成的工作说明书(Statement Of Work,SOW)与后续软件开发活动直接相关。SOW通常作为合同或立项材料一个最主要的组成部分。在SOW中定义项目的工作范围,并依据工作范围确定所需的时间、质量、费用和资源。这些内容要得到相关利益人的认可,作为合同的组成部分对双方具有约束力。
典型困境与分析
客户:你们最多需要多长时间能够完成项目?
开发方:我们现在还不清楚需要完成的工作,如果你们把需求提得更明确一些,我们会给出一个可信度较高的计划。
客户:你们最好先做出一个东西来,我们就可以提出更明确的需求。现在不可能提出所有的需求。
开发方:那我们如何确定交付时间?我们甚至不知道需要完成哪些功能。
客户:交付时间已经确定了,系统必须在三个月的期限内上线。你们可以安排更多的人员来参加这个项目。
这是软件开发的一个典型的例子,也许就是我们总有那么多的项目滞后于交付时间的主要原因。这种情形对于开发商和客户都充满了风险,其结果往往是风险变成了事实。如何在这个阶段降低这种由于工作范围不明确所造成的风险,具有重要的意义。软件开发的同行们经常会彼此询问:"你们是不是又要封闭开发了?"所谓的封闭开发即是每周工作六天(也有七天的情形),每天工作接近12小时。封闭开发或项目延期的最主要原因来自两个方面:一是工作范围不明确;另一点是不知道自己的生产率有多高。这两个因素使项目计划与实际的情况偏离甚远。
对于软件项目而言,一个最为直观的衡量标准就是时间,每个人都可以对时间做出直观的判断。影响项目的交付时间主要有三方面的因素:项目的工作范围、成本和质量。有这样一个比喻可以说明它们之间的关系:将项目看作是一部复杂的机械装置,把项目的交付时间、工作范围、成本和质量看作是四个控制杆,调节每一个控制杆都要至少调节其它的控制杆。所以我们经常会在项目的执行过程中调节项目的人员投入。而对于质量的调节,则通过压缩测试时间保证项目的交付时间不至于延迟过多。进度拖延的压力使开发组织往往不计成本地投入人力,而使项目的收益状况恶化;进度的压力同时导致测试时间的压缩,使项目在交付给用户以后仍然存在许多遗留缺陷,降低了客户的满意度;而项目范围的变更则更直接地影响到其它三个方面,会使本来就充满风险的项目雪上加霜。基于上述原因,我们实际执行的项目往往需要同时满足四个方面的要求。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7942439/viewspace-21356/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7942439/viewspace-21356/