小余

灵感源于交流,创新出自思考
posts - 50, comments - 864, trackbacks - 13, articles - 3

需求的陷阱--恶梦

Posted on 2008-06-03 13:57 小余(Yice) 阅读(3368) 评论(48)  编辑 收藏 所属分类: 小余草论
     最近做的一个项目,上个公司做了一年半,放弃了.原来定三个月完成,我们又做了一年半多,还离结束遥遥无期.老板都急了,有什么办法.公司给客户的权限是想提什么要求都可以,需求/设计,甚至人员调配都是客户说了算,惹不起啊.只有总结为什么完不成的时候,是开发人员的责任,扣奖金.有时候一个需求可以反复做几遍,只要客户乐意,前面提的要求,用不到一天就又变了,返工是家常便饭.
    而且,只要改动不论大小,即使是改一个按钮文字,都要在改好之后给客户演示一遍,并且讲一下改了什么(人家提完要求就忘记了啊).最大的特点是客户是个领导,但是按照他的要求做的程序,下面的人不买账,人家不用啊.开发人员还要求爷爷告奶奶的去让人家用.有的钉子户坚决不用,项目一拖再拖.
这项目做到这份上,博主帮忙分析一下,谁之过?项目如何才能结?
    昨日的需求的陷阱--简单不简单的评论中,有一位朋友写下的评论。看我之后我感觉这个话题有点沉重,项目该如何处理,或许不是一两句话可以说清楚的。不过对于任何人来说,遇到这种项目就像遇到鬼一样可怕,完全就是一个恶梦的开始。
对于如何处理这个问题,可能需要从多个角度来说这个这个问题,老板,项目经理,开发人员。每个角色不一样,出发点也就不一样,所以问题不能一概而论。
 1.老板
    如果你是老板,你接到这样的单子,而且做到这种程度,那么首先要反省的人应该是你。为什么要接着个单子,有什么直接的利益关系。如果说整个公司就等着这个开锅的话,或者说这个项目的后续还有源源不断的新项目过来,那么尚且情有可原。因为从老板的观点出发,今后需要生存和发展,不得以而为止。但是如果情况不是这样的话,这个项目只是一个可有可无的项目,而且也看不到有什么将来,项目从预计做三个月到一年半,这样的项目应该说明显处于亏损严重的状态。先不考虑其它的因素,从经济的观点来看就要把这个项目想办法放弃。
不过不管项目的出发点如何,单就“公司给客户的权限是想提什么要求都可以,需求/设计,甚至人员调配都是客户说了算”这一点就直接表明老板的做事有问题,做为软件开发公司,搞得像外卖人员一样。公司的管理上就有严重的问题,而且更可怕的是且也缺乏魄力和自信心。如果公司不改善这种现状,老板还不如回家卖烤红薯,不必开一家半死不活的公司,自己劳心劳力,还害的一群员工没日没夜瞎忙活。
2. 项目经理
    对于出现这样的项目,项目经理只有被骂的份。本身项目经理就是处在老板和员工之间的一个中间成,不但起到项目管理的作用,同时也控制整个项目,还兼当老板和员工之间的缓冲层的作用。
项目经理本身就要想办法控制这种变更频频的事情,即使由于国情特色等因素做成项目如此,是你无力控制的。但是你还需要做很多的事情来改善这种现象,
    1)让客户所有的变更有记录,签字。不管对方愿不愿签这个字,作为项目经理就要做这件事情。让客户的无理得到纪录,同时由于签字会对客户多少有点警示的作用,可能因为执拗不过客户,这就需要项目尽力的魄力和技巧。这些东西都可以作为秋后算账使用。
    2)需要明确问题的责任,如果是客户的问题造成的,就要据理力争,维护开发人员的利益。必要把开发人员作为黑锅来用。
    3)对于需求的控制,有时候一个需求可以反复做几遍,只要客户乐意。但是必须合理化这些需求,如果意境做过的话,就要避免再次开发。可能我们拗不过客户,但是项目的本身还是要想办法控制。
    4)对于团队的士气和人员的安抚工作不到位,要为每一个团队成员考虑他们的出路,同时给他们一个希望。无论是薪金还是技术上都要为他们想想,如果项目是被迫要做,争过了,吵过了,还是无力回天。项目经理只要需要安抚人员的心情。
项目做成这样如此,可以看出项目经理也是失职不少,没有为开发人员考虑,可能也没有和上面争吵过,这样的项目经理可能就是挂牌经理,对于项目来说也是败笔之一。
3. 开发人员
其实作为整个过程中,开发人员最为无辜,本身就处在最底层,遇到问题就是叫唤吵闹也没人理。可能所能做的就是在看不到希望后另谋高就。开发人员我没有办法评价太多,因为其工作比较单调,只要能够按照规定和要求把开发工作处理好了,也算是符合公司的要求。在整个过程中,开发人员是最直接的一个受害者。不论任何开发人员参与了这样的项目,我想所遭受的结果都会是一样,心灰意冷。如果项目和公司都看不到希望,那除了选择新的出路还能后什么?毕竟是努力了一年半之后还是这样,错不在于你们。

其实我们现在谈很多的需求的都介乎一种理想的模式来讨论,但是有时候项目遇到项目以外的因素的时候,项目就显得很无奈。比如Vincent朋友提出的
记得我在一个企业做mis的时候遇到过类似的问题:
1,部门主管A要求上一个系统方便对下属子部门工作效率的考核,所以提出需求来开发系统,此时我们面对的客户是A.需求也只是A.
2,当实现了A的需求后,要求部署下去,让各个子部门去应用,并完善系统.
3,子部门领导B,认为这个系统对他们来说并不会提高什么,反而自己的工作还被上级更有利的监督起来.所以他从思想上是不希望这套系统能够部署起来的.
4,B在看完系统的演示后,提出需求,我们开始修改.
5,由于B是反对上系统又迫于压力不能直接反对上级决定的情况下,每次新需求修改结束后,他都会提出新的问题要求继续修改.
6,mis部门主管询问,为什么这个系统经历这么长时间还不能上线,B回答"你们一直都没有开发完".
7,1年半后,部门主管A发现B的工作有问题,辞退了B.由此我们才被真正的解放出来.(辞退B由于别的原因,而在辞退B后A才明白原来B一直在为这个系统的开发人为的制造障碍.)
8,我们经历了1年半的痛苦煎熬,我们的主管从开始怀疑我们的能力,到干脆对我们不报任何希望,到最后的真相大白.我们要承受多大的压力.
谈需求,是建立在对方需要你来帮助解决问题的先决条件上的,如果没有这个先决条件,也就没什么可谈的了

    在这种破坏为前提的开发中,我们除了无奈之外还是无奈。就像很多人在做项目中,遇到很多带有国情特色的问题,对于这些问题的处理,我相信是所有的软件工程书籍中所没有的。因为本身已经超出了技术的范畴,所以对于这些事情除了用小道消息共享经验之外,就是看个人的做事魄力,所有的技术以及规约再其中已经显得可有可无,这个可能是需求的最大的陷阱,不过我还是相信,随着国家的发展以及相关人员素质的提高,这些问题会慢慢减少。我们希望在将来讨论的主要是项目因素上的需求陷阱,而不再是这种抱怨与无奈。

Feedback

#1楼 [楼主]   回复  引用  查看    

2008-06-03 13:58 by 小余(Yice)      
自己先鄙一下

#2楼    回复  引用  查看    

2008-06-03 14:15 by MyFavorite      
项目经理负大部分责任

#3楼    回复  引用  查看    

2008-06-03 14:25 by 小猪凯      
项目做到这个份了,还不如放弃算了.
呵呵, 不过博主说得对,最无辜的就是开发人员了.

#4楼    回复  引用    

2008-06-03 14:37 by ywyw [未注册用户]
节哀~

不过这样的工作也是很锻炼人的

放弃是最好的结束

#5楼    回复  引用  查看    

2008-06-03 15:01 by xiao_p      
恩 这个项目进行完了之后 可以参加个 忍耐力大赛了
呵呵

#6楼    回复  引用  查看    

2008-06-03 15:06 by 81      
这个项目需要PAUSE!

#7楼    回复  引用  查看    

2008-06-03 15:17 by 上午的绝缘杯      
写的不错。
不过开头再加个寓意深刻的笑话就好了,保持风格:)

#8楼    回复  引用  查看    

2008-06-03 15:19 by Flymouse      
我这里就在做一个这样的项目,郁闷致死

#9楼    回复  引用  查看    

2008-06-03 15:29 by 丁学      
唉,很不幸,类似的项目我做过两个了,其中一个无疾而终,另一个还好,最终上线,虽然自己都不忍再看……

#10楼    回复  引用  查看    

2008-06-03 15:34 by James-yu      
那个项目都会遇到这个问题,项目经理的沟通、实施技巧很重要

信息系统就是加强管理的,必然伤害到相关人员的利益(包括不合法的利益),一定要让客户老板知道问题在哪里

#11楼    回复  引用  查看    

2008-06-03 15:46 by shenjk      
呵呵,也碰到过,无疾而终

#12楼    回复  引用    

2008-06-03 15:50 by MLY@ [未注册用户]
属于需求变更的,要让客户+钱,给额外的时间,就是延长项目时间

#13楼    回复  引用  查看    

2008-06-03 15:54 by JackieLi      
这种情形,忍耐是没有用的,考虑一下看看能不能三十六计,走为上策,因为按你说的,留下来也是无尽的痛苦。so 你要选择一个好的公司,好的老板,好的项目。如果我要是在这样的公司,我会考虑是否还有待下去的必要,以前也在一个小公司做,很辛苦,后来离开,海阔天空,只要你有提升了,不愁没有伯乐发现你。

#14楼    回复  引用  查看    

2008-06-03 15:54 by John Rambo      
是我们的是我们的描述能力不够还是ui重构功能不够灵活?
还是因为小白在指引我们前进的方向?

#15楼    回复  引用  查看    

2008-06-03 15:57 by 小猪凯      
其实我比较怕公司内部不懂技术的领导要求做系统的情况.

如果是外部客户要求变更需求,如果小的话也就认了;如果大的话可以以让其加钱为威胁,使需求变量最小化

但公司内部的就惨了,给自己人做,认为是不花钱的,于是整天改来改去.

#16楼    回复  引用  查看    

2008-06-03 15:59 by good man      
同感啊,我们现在的项目也是一样,比你说的更糟,我们的项目经理什么都不懂,
他一天想到什么就叫我做什么,没人什么文档可言哟
小余你在西安吗?我们是不是见过面的

#17楼    回复  引用    

2008-06-03 16:00 by MLY@ [未注册用户]
项目变更,这点是要跟客户提前说好
需求一确定下来,要双方确认,之后客户再改可以,+钱,+时间

#18楼    回复  引用  查看    

2008-06-03 16:12 by hambywu      
好象就是在说我们公司....

#19楼    回复  引用  查看    

2008-06-03 16:19 by 金色海洋(jyk)      
我现在做一个拖了很长的项目,不过很幸运,客户非常配合,只是变动非常的大,项目本身的难度也是很大。加之到最后几乎所有的工作都转到我这里了,项目经理、技术经理、程序员、测试员、实施员。所以拖延的时间也是很长了。

我抓住了一点:一定要让客户用着方便,即使再多加一些时间也是值得的。
因为已经到这个份上了,就得拼了,让客户用着方便才能对得起客户,因为客户非常配合,非常友好。

好在接近尾声了,在坚持一个月也就差不多了。

坚持住,挺住。

当然还有同事的帮忙,并不是全部的时间都是我一个人孤军奋战,没有同事的帮忙,我也早就趴下了。

#20楼    回复  引用  查看    

2008-06-03 16:21 by 神龙腾翔      
说的很不错。。。

#21楼    回复  引用  查看    

2008-06-03 16:48 by ASP.NET 2.0      
--引用--------------------------------------------------
MLY@: 项目变更,这点是要跟客户提前说好
需求一确定下来,要双方确认,之后客户再改可以,+钱,+时间

--------------------------------------------------------
这种方式可以说是所有项目经理的梦想了,可惜国情不允许。

#22楼    回复  引用    

2008-06-03 17:28 by MLY@ [未注册用户]
--引用--------------------------------------------------
ASP.NET 2.0: --引用--------------------------------------------------
MLY@: 项目变更,这点是要跟客户提前说好
需求一确定下来,要双方确认,之后客户再改可以,+钱,+时间

--------------------------------------------------------
这种方式可以说是所有项目经理的梦想了,可惜国情不允许。
--------------------------------------------------------
我一哥们在日企,他们就这样,小日本这方面挺规矩。。。

国内差点,不过如果是有实力的公司,应该向着方面发展

#23楼    回复  引用    

2008-06-03 17:35 by hl [未注册用户]
貌似在我们现在的情况

#24楼    回复  引用    

2008-06-03 17:41 by Felixrrrr [未注册用户]
很有同感,我们的项目开头也是这种情况,不过后来我们学会了给客户说NO,因为我们团队吃不消了

#25楼    回复  引用  查看    

2008-06-03 17:42 by 风雨工作室      
--引用--------------------------------------------------
MLY@: --引用--------------------------------------------------
ASP.NET 2.0: --引用--------------------------------------------------
MLY@: 项目变更,这点是要跟客户提前说好
需求一确定下来,要双方确认,之后客户再改可以,+钱,+时间

--------------------------------------------------------
这种方式可以说是所有项目经理的梦想了,可惜国情不允许。
--------------------------------------------------------
我一哥们在日企,他们就这样,小日本这方面挺规矩。。。

国内差点,不过如果是有实力的公司,应该向着方面发展
--------------------------------------------------------

笑话,HP的SAP项目大不大,HP公司大不大,还不是做不到这一点,
我曾经和hp的sap项目组合作了一段时间,哪有这么容易的事。

除非你是彻底把关系弄绝了。

#26楼    回复  引用  查看    

2008-06-03 17:51 by Cure      
有需求变更的时候把都有什么变更,变更了那些内容,开发用去了多少时间,多少人力都记录下来,到时给客户看,看看我们给客户白干了多少事情,这样比较好让自己处在有利的位置上。

#27楼    回复  引用  查看    

2008-06-03 19:18 by 吴辉军      
“必要把开发人员作为黑锅来用。”

应该是 “不要把开发人员作为黑锅来用”。

#28楼    回复  引用    

2008-06-03 19:41 by owenzhu(qq:52541351) [未注册用户]
我一直认为一个项目出问题不是某一个人的问题,整个项目组都有问题,主要是解决问题,而不是去追究某个人责任,根据你所说的,有几点很致命的。
第一,用户没有成立一个由关键用户组成的项目小组以及一个项目经理,需求不是某一个人说了算的,整个小组都点头了,才去做,扯皮的事情他们自己去干,搞不定的找领导拍板。
第二点:没有项目目标,项目怎么才算是做完,没人知道,当然被人牵着鼻子走了。
第三点:让用户直接与开发人员接触,开发人员是最没原则的了(这是实话),只会从程序角度想问题,没有从业务角度想问题,不是所有的东西都要用程序去实现的,从业务层面也可以规范的。
第三点:需求变更是无法避免的,但必须有记录,做了那些更改,花多少人天,有时候谈钱是一个很好的杠杆,有些不是很紧要但花人天很多需求,客户自己就放弃了。
第四点:所有的新加需求,要客户自己形成文档,很多东西是用户自己没有想清楚的,通过文字表达,他自己搞清楚了,就不再提了,而且这些需求要通过关键用户收集并提出来,底下这么多用户,随便跑个过来都应付一下,你几个人有屁时间去开发。
第五点:要跟关键用户搞好关系,防线是从内部攻破的,别人说一句,顶你外人说上十句,有些业务的推动就让他们去干就行了。

#29楼    回复  引用    

2008-06-03 20:32 by Train-8 [未注册用户]
最烦这个了,所以我不给客户做项目

#30楼    回复  引用  查看    

2008-06-03 20:33 by 皇帝的新装      
--引用--------------------------------------------------
小余(Yice): <img src="http://www.cnblogs.com/Emoticons/tusiji/203707340.gif" alt="" />自己先鄙一下

--------------------------------------------------------

为什么总?

#31楼    回复  引用  查看    

2008-06-03 20:34 by 皇帝的新装      
项目做到这份上就不是需求的问题了。

#32楼 [楼主]   回复  引用  查看    

2008-06-03 20:37 by 小余(Yice)      
--引用--------------------------------------------------
上午的绝缘杯: 写的不错。
不过开头再加个寓意深刻的笑话就好了,保持风格:)
--------------------------------------------------------
后续只要是草论文章,都尽量用笑话寓意的方式,希望轻松诙谐中给大家带来思考

#33楼 [楼主]   回复  引用  查看    

2008-06-03 20:39 by 小余(Yice)      
--引用--------------------------------------------------
小猪凯: 其实我比较怕公司内部不懂技术的领导要求做系统的情况.

如果是外部客户要求变更需求,如果小的话也就认了;如果大的话可以以让其加钱为威胁,使需求变量最小化

但公司内部的就惨了,给自己人做,认为是不花钱的,于是整天改来改去.
--------------------------------------------------------
外行看热闹,内行看门道,这种情况却是比较糟糕

#34楼 [楼主]   回复  引用  查看    

2008-06-03 20:40 by 小余(Yice)      
--引用--------------------------------------------------
good man: 同感啊,我们现在的项目也是一样,比你说的更糟,我们的项目经理什么都不懂,
他一天想到什么就叫我做什么,没人什么文档可言哟
小余你在西安吗?我们是不是见过面的
--------------------------------------------------------
我在西安,上次.NET会议的时候我们见过,还一起吃饭。

#35楼 [楼主]   回复  引用  查看    

2008-06-03 20:44 by 小余(Yice)      
--引用--------------------------------------------------
皇帝的新装: --引用--------------------------------------------------
小余(Yice): &lt;img src=&quot;<a href="http://www.cnblogs.com/Emoticons/tusiji/203707340.gif&quot;" target="_new">http://www.cnblogs.com/Emoticons/tusiji/203707340.gif&quot;</a> alt=&quot;&quot; /&gt;自己先鄙一下
--------------------------------------------------------
为什么总?
--------------------------------------------------------
哈哈,由于草论的文章不存技术性的文章,所以写起来比较轻快,也不会像技术文章一样对正确与否扣的很死,这样的文章只是希望把自己的经验给大家共享,同时也希望和大家讨论讨论,所以就自己先给自己鄙一下,算是自己顶一下。

#36楼 [楼主]   回复  引用  查看    

2008-06-03 20:51 by 小余(Yice)      
--引用--------------------------------------------------
owenzhu(qq:52541351): 我一直认为一个项目出问题不是某一个人的问题,整个项目组都有问题,主要是解决问题,而不是去追究某个人责任,根据你所说的,有几点很致命的。
第一,用户没有成立一个由关键用户组成的项目小组以及一个项目经理,需求不是某一个人说了算的,整个小组都点头了,才去做,扯皮的事情他们自己去干,搞不定的找领导拍板。
第二点:没有项目目标,项目怎么才算是做完,没人知道,当然被人牵着鼻子走了。
第三点:让用户直接与开发人员接触,开发人员是最没原则的了(这是实话),只会从程序角度想问题,没有从业务角度想问题,不是所有的东西都要用程序去实现的,从业务层面也可以规范的。
第三点:需求变更是无法避免的,但必须有记录,做了那些更改,花多少人天,有时候谈钱是一个很好的杠杆,有些不是很紧要但花人天很多需求,客户自己就放弃了。
第四点:所有的新加需求,要客户自己形成文档,很多东西是用户自己没有想清楚的,通过文字表达,他自己搞清楚了,就不再提了,而且这些需求要通过关键用户收集并提出来,底下这么多用户,随便跑个过来都应付一下,你几个人有屁时间去开发。
第五点:要跟关键用户搞好关系,防线是从内部攻破的,别人说一句,顶你外人说上十句,有些业务的推动就让他们去干就行了。
--------------------------------------------------------
观点很不错,在项目中如果在过程中可以有比较好的操作也不会出现文章中所提的结果。

#37楼    回复  引用  查看    

2008-06-03 21:33 by 辉郎      
完全同意,项目做到这个地步绝对是项目经理的责任,不能有效的控制需求,就根本无从谈到项目控制。
开发人员也有问题,这样的项目还做个啥劲啊,1.5年,不短的岁月啊!!

#38楼    回复  引用  查看    

2008-06-03 21:38 by ilovedotnet      
唉,原来这么多人和我一样痛苦啊!

#39楼    回复  引用  查看    

2008-06-03 22:26 by _Sin      
我也很不幸呀,多好的一个项目,做到自己都烦了,不过我心一横,把老板给炒了, 所以到现在都没有找工作,都想换行,却又些许不舍./thinking ...

#40楼    回复  引用  查看    

2008-06-03 23:21 by Garfield.      

--引用--------------------------------------------------
小猪凯: 其实我比较怕公司内部不懂技术的领导要求做系统的情况.

但公司内部的就惨了,给自己人做,认为是不花钱的,于是整天改来改去.
--------------------------------------------------------
是啊,是啊,严重同意......我都恨死公司那波产品部的人了,自己都不知道自己需要什么呢,就把标题和正文字数几乎一样多的需求文档发给技术部了,80%的bug都是“跟需求不符”,妈呀,鬼才知道他那个需求后来哪儿来的。开发和测试都得去问他们,而且通常会得到不同的答案,那些人基本是当时想到什么说什么...然后再变卦,反正他们只用嘴说说而已...可害死这帮开发的了

#41楼    回复  引用  查看    

2008-06-03 23:22 by 丝游      
看来还是我们直接买产品的好

#42楼    回复  引用  查看    

2008-06-03 23:23 by Garfield.      
....唧唧歪歪发牢骚的感觉很好哈,省得憋坏了;-(

#43楼    回复  引用  查看    

2008-06-04 08:23 by 小猪凯      
@Garfield.
所以如果可以,还是要求每次变更都走一个流程.比方签字确认什么的.至少这样能让对方在变更需求时想一下是不是真的需要变更.

让变化尽量最小化.

#44楼    回复  引用  查看    

2008-06-04 08:38 by 学者      
说明这个领导 是个摆设 !
谁不听话 直接罢免 就不可以了!

这么简单的事 ,搞成这个样!

#45楼    回复  引用  查看    

2008-06-04 09:55 by 求知无傲      
呵呵

#46楼    回复  引用  查看    

2008-06-04 10:12 by Cure      
@辉郎
--引用--------------------------------------------------
辉郎: 完全同意,项目做到这个地步绝对是项目经理的责任,不能有效的控制需求,就根本无从谈到项目控制。
开发人员也有问题,这样的项目还做个啥劲啊,1.5年,不短的岁月啊!!
--------------------------------------------------------
是项目经理的责任不错,但是开发人员呢?想你所说的话那只是给自己的不认真工作找借口。绝不能把别人的错误当作自己犯错的借口。

#47楼    回复  引用  查看    

2008-06-04 10:51 by J.T.R.      
MRF+MSF+MOF

#48楼    回复  引用  查看    

2008-06-04 11:12 by Magicworks      
我以前也做过这样的项目,反复的添加新的内容,致使好多开发人员离开,我当时不是项目经理,只是开发人员中的一员,而且还是常驻甲方那里的那种,后来我绕过了项目经理,直接跟甲方对话,先确定甲方说话的权威,他是给钱的人,他说加什么就加什么,别人的话一概不听,协调?让他们自己去处理。然后请甲方在每一次的新加功能上签字,每次都有记录,而且确认是不是还有其他的任务,最后,一年半没有搞定的项目,3个月就收尾了。