UML软件工程组织

项目遇险的3个问题,4个因素和8个信号
BUILDER.COM (转载自ZDNet)  2002年05月08日

 

三个问题篇

  在你的职业生涯里,总有些时候需要你当机立断地终结一个失败的开发项目。当然,那是我们最希望避免出现的结果。从好的方面看失败会令人沮丧,从坏的方面看项目的完蛋或许会威胁到你的职业安全性了。如果你能采取行动拯救一个项目,那么你就可能有机会影响项目的成败。然而,除非你是项目经理,否则你只能束手无策。不过,你倒可以想法了解迫近的问题以便寻找机会逃跑。

  这篇文章阐述了3个同业务有关的预警信号,希望它们能有助于你看清项目是否在走向崩溃。虽然这些总结并不太具备科学意义上的准确性,但是,这些迹象能为你提供一些早期警告。而且,尽管你无法拯救项目但你或许能通过这些警示拯救你自己。在文章的末尾还提出了一些建议性的应对措施,这样一来,万一你发现自己正身陷项目失败的泥沼,那么你好歹可以采取相应的合理行动自救。 概述

  针对成功的IT项目的统计报告不具备太大的意义。根据Standish商业研究公司的一份报告,将近三分之一的信息系统项目在最终完成之前都被取消了。另外,在所有的项目中几乎有一半左右会超出其预算。

  令人惊讶的是,项目失败的原因很少同技术有关。在软件管理手册Peopleware: Productive Projects and Team一书中,作者之一Tom Demarco提醒读者注意,大多数项目都是因为技术以外的其他原因而招致失败的。可是,既然不是技术原因造成的项目失败,那么又该是什么原因令这些项目失败的呢?答案是项目所牵扯的人和工作过程。具有讽刺意味的是,普通开发人员在处理技术问题的时候应对有道但他们在同其他人以及工作流程打交道的时候却不是这样。

问题 # 1 :缺乏有意义的商务案例

  真的叫人很吃惊,有些项目从一开始就找不出有意义的商务案例来支持它们。商务案例很重要,因为它为项目提供了基础。商务案例应该能提出效益分析,同时还能考虑到商业风险和项目之外事件的影响。机构会采用商务案例把它们有限的资源划分出优先级别从而为其提供最大回报。 这样说来,在没有商务案例的情况之下,一个项目该如何起步呢?这也是可能的,因为项目的商业属主也许仅仅是需要实现什么特定的目标,而且有能力达到自己需要实现的目标。另外还有一种可能性,那就是IT机构认为商业单位需要它因此它们自己先创建出来再说。

  最近两年,因为许多人相信他们必须开发某些项目来维持竞争力,所以好多同Web关联的项目在不存在商务案例的情况下就纷纷上马了。那争先恐后的样子就好象不奋力一搏就赶不上趟似的,“.com”的崩溃意味着商务实践回归原来的基础,这其中自然也包括商务案例。

  对策:探询你目前着手的项目是否受到了商务案例的支持。找一份商务案例来仔细阅读它。你所在项目的商业动力是什么?这一商务案例符合逻辑而且可理解吗?该商务案例存在怎样的前天条件?其风险是什么?什么外部因素会影响商务案例?如果你无法为自己的项目找到可理解、有意义的商务案例,那么你得知道为什么没有开发出有关的商务案例。

问题 #2 :没有获得同意的需求或系统规范

  缺乏需求确实是一件非常危险的事情。在Standish的报告里,挑战项目正常运行的三个最常见因素都和系统需求有关。系统需求能给出将要创建的系统的大小和结构。它们定义了系统应该和不应该实现的任务。

  需求管理就是在整个项目周期之内定义、记录、追踪以及管理需求的过程。需求管理保证了最终的解决方案能够满足用户的需要。

  对策:密切注意你的需求管理过程。如果看起来没人负责管理系统的需求,或系统的需求老是在变,那么你可能会遇到麻烦了。

问题 #3 :缺乏项目计划

  有些项目竟然会在没有项目计划的情况下运做。这简直就是不用图纸造房子。每个项目都是一个事业,都应当具备相应的项目计划。项目计划对那些项目决策人来说是非常必要的交流手段,项目计划为项目的进展以及确定需要进一步完成的其他工作提供了指导。 有一种说法称不需要告诉有关开发人员具体的计划内容;他们只需要知道做什么就可以。这种看法对只有一个人的项目队伍来说管用,但要做大事就站不住脚了。开发人员确实需要接受计划的指导。他们想要知道什么任务排在前面。他们不想猜测哪些东西是最重要的。

  仅仅有了一个计划还是不够的:计划必须跟随项目的发展保持最新状态。举个例子吧,有些项目刚开始的时候房间里贴满了五花八门的甘特图和波特图,结果几个月乃至数年过去了这些图表还是老样子放在那里,没有任何变化。这可不是一个当前计划。为了让计划与时俱进,项目计划就必须反映实际完成的工作,同时还要预计将要完成的工作。计划更新的频率倒不至于达到每周一次的程度,但也不能低于每两周一次。计划应该准确地反映完成项目的时间和开销。只有在这样的情况下才可以说计划保持在最新的状态。 过于频繁变更的计划同过期的计划一样令人恐惧。我曾经见过这样的项目计划,该项目计划每周都要修改,结果把项目的阶段终止日期超出了一周的范围。计划每周都在更新,但项目工程仍然失去了控制。

  对策:如果没有公开的项目计划你无论如何得赶快弄出一个来。如果你被告知,因为信息的机密性你不能查阅项目计划,那么,你不妨把这一事件看做一个严重的警示迹象。除非你在开发新一代的原子弹,否则秘密项目计划根本没有存在的道理。保持信息的隐秘通常意味着管理层知道项目出了问题,他们正试着把问题掩盖起来。 一定要保证计划常新而且还得具有合理的更新间隔。它不该是个不断变动的目标,但它一定得是最新的。如果你不能保证项目计划的最新状态,那么项目会出问题的。

项目快完蛋了,我该怎么办?

  你发现自己的项目已经出现了以上一个或者多个预警信号吗?对这个问题的回答取决于你的个人状况。如果你感到你能采取行动改变现状,那么你一定要立即行动。同项目经理、顾客或你队伍中的其他成员对话。用一种就事论事、不具威胁性的方式讨论你所关心的问题。试着尽可能提出正面意见。看看你能否给项目带来转机。 如果项目濒于失败而且你发现自己没有办法控制事态的发展,那么你最好想办法离开现在的项目。你也许能在同一家机构内找到一个好一些的项目,要不你干脆离开现在的单位算了。反正走为上策。到这份儿上已经不是告诉某人该如何运做项目的时候了。

  如果你粘在项目上了,或者正等着走人,那你也不妨换个看问题的角度。就当你在长经验吧。比方说,你能从现状中获得什么?如果得到授权你将采取什么行动改变现状?将来你该如何避免撞上这样的项目?从当前项目进展中学到的知识和掌握的经验必定能在你着手的将来项目上给你带来莫大的帮助。 仅仅是个开始

  以上的3个问题主要牵扯到业务和计划方面,但是,项目遇险的迹象还并不止于这些。接下来,我们将继续讨论在失败的项目中涉及到用户和项目主管人员的4个因素,讨论下这些因素是如何给你提出项目遇险警告的。

四个因素篇

  总有一些项目会最终获得成功,可是,相当大数量的项目却没这么好的命。如果你不幸遭遇到这样的处境,在事情恶化到不可收拾之前你如何知道项目遇到危险了呢?在《项目遇险的三个信号》一文里,谈到前景不妙的某些项目时,我们已经针对和业务有关的迹象做了阐述。接下来,我们继续探讨一些牵扯到项目人员的危险迹象,它们大致上可以表现为4种预警信号。

  导致项目失败的大部分原因不在于技术而在于同项目有关的人和过程,认为到这些更具“软性”的问题是相当重要的。具体地说,其原因同用户和项目发起人以及缺乏开发人员之间的交流有关(改变管理和工作报告)。如果你发现自己涉及的项目已经出现这样的迹象,那就表明项目正在滑向失败的边缘了。

问题#1:你的客户或用户组不跟你说话

  客户或用户不和你交流只能说明情况不妙。这意味着他们几乎毫无积极性。不过也可能说明业务组太关注于具体的工作或者太忙了,难以同你合作,这就是说。如果正是那样的情况,那么项目正在向灾难迈进了。你必须同客户和用户合作,这样才能成功地实现项目。

  缺乏用户的参与只能意味着用户抗拒变动。我们知道,所谓的“变动管理”,就其全部领域而言就是建立在赢得最终用户的支持以及接受新系统和过程的基础之上。这一方面不应该与被用来管理项目范围的变动控制过程相混淆。变动管理不在这篇文章所涉及的范围之内。但我们必须清楚地认识到,系统要想得到有效的实现就必须把用户包含进来。

  其他原因也可能造成客户或用户缺乏参与精神。比如,具体的业务决定了项目不得不取消或者实现一个不同的解决方案。项目赞助者可能让用户远离项目,原因是系统实现之日就是他们失业之时。

  任何项目都需要获得客户或用户的输入信息,没有它,系统需求和设计就等于在真空中呼吸。最终的解决方案根本不可能满足业务需要。

  如果你的客户或用户没有在项目上与你一道工作,显然。你的麻烦来了。

问题#2:项目发起人效率低或者角色不明确

  有一位良好的项目发起人是项目成功交付的一个关键因素。他或她有助于项目目标的集中,为团队搬走主要的绊脚石,从企业政治上讲尤其如此。

  项目发起人必须有清除障碍的能力,他们一定得有权力在利益发生冲突的情况下解决问题。他们还需要做出坚定的决策支持开发队伍。

  如果项目没有明确的发起人,在开发过程中那些形形色色的障碍就必然会影响项目的进展。企业政治也会开始给团队和工作说事。在项目发起人离开公司的情况下更会产生很多的问题。发起人为什么要离开公司?他或她是被迫出走的吗?发起人的政敌会试图停止项目或者改变其范围吗?你的职业将会受到这些政敌的影响吗?也许你压根就不打算继续逗留在这里非要弄出个子丑寅卯。

问题 #3 :没有管理变动的机制

  我们都知道,项目发生变动是不可避免,管理项目的变动非常重要。优秀的变动控制过程并难于管理,但是它们确实需要对细节保持关注。高效的变动控制要求同客户或软件解决方案的商务属主密切合作。

  不幸的是,某些项目仍然在没有管理变动的过程的情况下运转。要不就是项目的范围含糊不清,或者不讨论变动控制,或者客户或业务主人不断地根据自己的意愿改变解决方案。没有变动控制过程的项目是不可能得到准确估计的,这是因为解决方案的规模总在不断地变动之中。另外,变动通常会导致某些重复性的工作,从而进一步推迟了开发过程令项目团队失去动力。

  记住,客户不是变动的唯一来源。有时团队自身也能引起范围的变动。毕竟,团队成员也是人,而人总会犯错误的。团队的成员可能听说或“假设”解决方案因客户的实际要求而发生了变动。另外还有一种可能,那就是项目需求比较含糊,因此团队成员从不同方面对其进行解释。或者,团队成员可能无意中创造出一个相比客户需求更漂亮或更复杂的解决方案。这就是所谓的“镀金”操作。

  如果你所在的团队没有执行变动策略,你应该问一下原因何在。如果你找不出答案,那可要警惕了,项目很可能正在失去控制而且失败的风险显著增大了。

问题 #4 :没有准确的工作报告

  准确的工作报告是项目的活命源。这些报告把有关的信息报告给负责人,同时提供一种有效的机制来确定是否采取正确的行动。准确的工作报告还能起到记分卡的作用,可以显示出项目的计划完成情况。所有的项目都需要工作报告。

  为什么项目绝对离不开工作报告呢?主要有两个原因:项目经理需要认识到项目的需求,或者工作不妙以至于项目经理决定干脆啥也不说了。在这两个原因之中,后者可能更坏。如果某个项目落在了既定目标之后或者超出了预算而有没有上报,显然这样的项目不如取消。

  如果你的项目缺乏工作报告,我看也没什么必要找出原因了。你赶快跑吧。

项目陷入麻烦该怎么办?

  如果你不是项目经理,那么你对濒临失败的项目只能无可奈何。然而,如果你确定项目已经遇到麻烦了那么你应该采取一些行动。

  如果你的用户拒绝参与项目,或者没有给你足够的项目运做时间,那么你应该同项目的用户方做一番开诚布公的对话。虽说不一定就能拯救项目但也不至于给项目造成伤害。

  寻找可以转移的其他项目(反正比你现在的好一些)。顺便说一句,别到处说你为什么离开当前的项目。事成之后,每个人都会认为你采取了正确的行动。

  如果事情糟透了,请打其他公司项目的主意吧。 如果你一直坚守在某个一两年之后就濒于完蛋的项目之内,它对你的身体、精神或职业都不会带来半点好处。现在就采取行动。如果你不能拯救项目至少得拯救你自己。

八个信号篇

  作为项目经理,当你面对成堆的Microsoft Project工作任务报告时,想到已经花了好几个小时陷入在扯不清、说不明的项目工作会议的泥沼之内,也许这是你感觉最令人恼火和沮丧的时刻。

  可是,像这样的痛苦会议还不仅仅意味着一种失败感。它们的本质问题可能掩盖得更深,这些问题会最终毁灭你经手的项目。这里我想与你一道分析和了解项目即将陷入困境的一些迹象:

  没有引人注目的业务案例。那种“超酷”的Flash网站在增加业务收入方面的作用值得怀疑。

  自作主张地编写代码。如果你不同意业务需求或系统规范,你怎么知道所交付的工作或规范是最新的?实际上你不可能知道。

  没有项目规划。这是针对项目经理的。比如说,通过电子邮件交流的内容俨然成为系统的功能规范。这简直是没有蓝图就造房子。

  你和你的顾客各说各话。发生这种情况时,你必须打消咒骂项目发起人家庭成员的欲望(比如谁谁母亲的)。

  项目发起人生活在“洞穴”里。当你需要额外资源时就知道这将造成多大的损害了!当你的老板要求给项目提供更多资助时,老板的老板却只是眨巴眼睛——想想看,这有多糟糕。

  不能应对变化的管理系统:调试程序是小儿科。此外,我的代码运行绝对正确!——这可能吗

  没有进度报告系统。你蹒跚前行,根本没有什么准确的项目进度报告系统,也许唯一的解释就是到目前为止,压根就没人想提到这个项目。

  在项目工作会议上,与会人员只会扯皮说“都是接口问题”、“必须采取行动”以及“该找某某人”。

  当然,单独地看,出现这些症状并不意味着你的项目必死无疑。但它们确实都是需要你立即采取行动的红色警报。如果你的项目出现了以上8个症状,那么只能说你已经在泰坦尼克号上了。准备自救吧。

 



版权所有:UML软件工程组织