谁动了项目的时间?

项目进行到今天,我突然发现项目已经花费了快70%的时间,而离编码结束似乎还很遥远,面对着领导质问般的眼神和组员迷茫般的目光,我深深地吸了一口气,大脑开始了高速地运转,到底谁动了项目的时间?

 项目情况

首先介绍一下项目的大概情况:

其实项目倒不是很复杂,一个处理业务流程的系统。接到项目的消息是七月底的时候,由于当时领导与客户谈妥之后,客户想在八月中旬就看到,所以当时就非常紧张。考虑到时间如此之紧,项目便匆匆开始。本来计划三个人的,但是考虑到时间太急,又加了三个人进来。在写SRS的过程中,客户那边传来消息,DEADLINE不会这么紧,这样我们紧绷的神经轻了下来,这一松就松出了问题,对于一些不确定的需求我们一直也没有得到客户的确定,这段时间里我一方面对SRS进行尽可能多的理解,另一方面安排设计阶段的任务。随后的工作也基本上是重叠地进行的,在对需求没有清楚认识的情况下开始了设计工作,设计没有完全结束的情况下,编码又开始进行了。在编码开始后,SRS其实还没有RELEASE,MILESTONE也一直没有到。但是我们也不能一直等下去,编码在一步步地进行,突然之间,我发现,时间不够用了……

 下面,我就从几个方面来分析一下为什么我的时间不够了,它们都去哪儿了呢?

进度安排

在先前的安排下,我的计划做的非常粗,因为时间实在是太短了,做的计划基本上是Mission Impossible的。在得知时间宽松一点以后,我把计划做了适当的调整,个人觉得还算比较合理,但是计划的实施并不都像计划那样的完美。

需求的不清楚使得文档的完成一托再托,耽误了不少时间,我看这样下去肯定不行,就开始了设计工作,而在设计的过程中,我们一边设计,一边等客户的消息,可是过了很长时间,最终等到的客户回馈是没有回馈。这才坚定了我们的想法,开始大干实干。而这时,项目的进展情况已经与我的计划差别很大的,设计期本来是一个星期,结果花了两个半星期,虽然在设计文档初稿完成并讨论后,我安排了一部分的编码工作,因为我不想让时间浪费,人员闲置,但是这部分的工作也花了不少的时间,使得设计的质量并没有达到预想的效果。

 

当然,还是那句老话,计划永远赶不上变化。即使计划的再好,在实施过程中总会发生一些事情让你的计划变得毫无意义,况且谁又能把计划做的如此天衣无缝呢。我的理解,对于计划,只需要一个大概的规划即可,即分哪几个大的阶段,每个阶段大概多久,需要多少人即可,在项目开始就制定一人精确到每天每时每人的计划完全是扯淡。

对于计划,我的一点感受就是制定计划是件困难的事情,因为软件开发不像别的计划,所有的步骤都是事先确定的,不需要你去做一些创造性的开发。而软件开发则是一项目创造性的工作,做为项目经理,每周,甚至每天都需要对于开发组成员制定计划,这种任务都是根据项目的具体情况来划分的,而且,我们的项目由于规模小,并没有专职的设计人员,每位成员都参与到设计中来,但是有一个问题就是成员都是新手,而且所用的技术都不熟悉,这势必会影响到任务执行的效率。

客户关系

客户关系是一个非常重要的问题,这个项目的情况有点像传统的项目开发。在确定项目的时候,客户发来了一个需求,然后我们根据其需要写出需求文档,然后就给客户发过去,希望能返回一些反馈。但是实际情况是文档发过去后就再也没有回馈信息。在开始的时候,我们只与客户有过一次电话会议,寻问了一些不清楚的需求。

但是随着项目的进展,更多的不清晰的需求展示在我们面前,而这以后我们再也没有与客户进行过沟通,不光是界面,还有需求,都不知是否让客户满意,现在只能等做完测试后交付给客户看看客户的认可度如何。

与客户的沟通实在是太少,结果如何,只有等项目结束后才知道了。

资源管理

在这个项目中,资源对于我来说主要就是时间的计算。每位成员在项目中的投入比例都是事先决定的。比如说只在这一个项目中工作,就是100%,如果还有别的项目在同时做,可能就是50%的时间在这个项目上。在项目开始后,我犯了一个错误,就是算时间的时候基本上按实际工作来说,比如一位100%在项目中的成员今天只花了4个小时在这个项目上,那么我统计时也只算了它4个小时。而其实应该是统计100%的时间。在得知这个错误后,我才发现刚开始编码时,我们已经花了将近一半的预计时间了。

要解决这个问题,完美的方案就是把成员每天的时间都安排满,这样的话,项目经理既不会担心无谓的时间消耗,又为项目的不增进展而感到满意。但是,这种毕竟只能是一种幻想,不可能会实现。但怎么去更高效的安排每位组员的工作,这又与上面说到的任务计划安排联系到一起。这个问题还需要学习了。

交流沟通

这里的沟通问题指的是组员之间的沟通。这个问题在项目的前期特别明显,所有的组员对于需求分析及设计的工作更多的是与我项目经理来联系,等于是我去做一个传递信息的中枢,对于需求的不清晰着实让我非常为难,甚至有时我前后说的结果都不一致。为了解决问题,我特意的将一些工作分派给两个人来做,但是效果仍然没有太大的改变,两个人之间的交流还是不够。到了设计的中后期,以及编码,这种情况才有所改变,因为此时必须要与别人去联系,交流才能将自己的工作进行下去。


 

后期的交流中经常发生对需求认识不清楚的情况,这又要谈到文档的问题。项目中的文档我觉得主要有两个方面的作用,一个是写文档的过程是一个思考的过程,可以帮助我们去尽可能多得思考;另一方面是交流,让大家都能通过文档了解所需的内容。但是不是每个人都会仔细的阅读几十页的文档,如何让组员清晰的了解需求以及后续文档是一个难办的问题。

 风险控制

在项目进展中,风险管理还是按照来做的,每周去检查一下当前的风险状况,有无增减的必要。但是真正实施的时候,有些流于形式。首先,项目的风险项定义不难,总会定义出一些风险,但是如何去规避,发生了之后如何处理,就非常难于实现了。在当下的组织结构中,有的时候风险即使发现甚至发生了,也没有办法去处理。

posted on 2006-08-30 08:46 布鲁斯南 阅读(12703) 评论(27) 编辑 收藏

评论

#1楼  回复 引用   

同情!!!!!!!俺也是这样的,深有同感
2006-08-30 08:50 | only_you[未注册用户]

#2楼  回复 引用 查看   

真正要做好一个项目,必须要求客户参与到这个项目中来!
管理系统的失败,基本上都是由需求不清或者需求控制不严引起的!
2006-08-30 09:10 | 飞不动了      

#3楼  回复 引用 查看   

现在做项目总想最快的时候做好,实际上可能吗 ,时间短就做不好
2006-08-30 09:11 | 高海东      

#4楼  回复 引用 查看   

个人觉得:
出了问题,这样的长篇大论也是问题。
按照LZ的分析,似乎每一个环节都有问题,但是又没有重点。
项目有重点,简明的目标是团队正常工作的保证。
总结也要有重点,简明的结论能让人快速的掌握问题的根本。
2006-08-30 09:12 | 追求卓越      

#5楼  回复 引用   

我们现在的项目也有延期,各种各样的因素,但是慢慢的变得好了,最主要的我们不是给别的公司做项目,而是自己做产品,所以问题还没有那么严重。

建议看《代码大全》第二版,你文章里面提的问题上面都提到过,也许会对你有帮助,适当的指导你怎么做,我最近也在看
2006-08-30 09:18 | yzx110

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

项目的延迟就是由这一点那一点积累起来的,人月神话里也是提到了这一点,所以我觉得并不是指出哪一个是重点就可以了,还是要看到底有多少因素影响了项目的进度...
2006-08-30 09:20 | 布鲁斯南      

#7楼  回复 引用   

如楼主下次再做项目,很可能还会这样。其实应找一些快速原型开发的工具,比如象eform这样的可视化自定义web表单工具(详见: http://mycnblog.meibu.com

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

工具是解决不了问题的.我觉得.
2006-08-30 09:48 | 布鲁斯南      

#9楼  回复 引用   

一看就知道,最重要的就是与客户的关系,与客户的沟通了 。

项目成功与否无论从哪个方面看都与客户的认可度有关,当然还有最后的项目收益,所以一要搞定客户,二要搞定自己的老板。其他的相对都不怎么重要了。

所以要不怕难,不怕繁,不停的与客户沟通, 同时如果能把老板拉下水最好,因为需求肯定在不停的变,时间是很难够用的,所以 要求加人,加时间是正常的。但这个关系到老板的收益和客户的预算,也是钱的问题,你是做不了主的,这个时候你就要这些老大推倒第一线,你只要提供项目的进度,功能等资料就行,至于价钱和可能砍掉的某些功能就交给他们去谈吧。
2006-08-30 10:18 | tototo[未注册用户]

#10楼  回复 引用   

Below is my peanut for this case.
First of all, PM did not fulfill his responsibility. As a key person of this project, one of his responsibilities is to communicate with different stakeholder. As you described, you did not get any response from ur client and you should call them to make sure ther are aware of the issue.

Secondly the initial plan is not well defined. As we know, the initial plan cannot be accurate, but you can put some slack or float for some major tasks which exist in the critical path. It may not help you solve the problem completely, but at least you have some buffer.

Thirdly, In Resouce time estimating, you make a mistake that you only calculate the actual working time instead of actucal working time plus elapse time.

Finally, the scope of the project is not very clear because you are doing the adhoc project. Even PM dun understand the customer's requirements fully. How could the team member know their modules?



#11楼  回复 引用 查看   

沟通最重要,深有其感,但工作中往往無法很好的溝通。
特別是項目先由主管跟用戶溝通,再轉手給組員,更增加了溝通的難度
2006-08-30 10:30 | sh37      

#12楼  回复 引用 查看   

我个人项目管理的原则主要是两个方面,一个是承诺的管理,一个是风险的控制。
在项目最初的情况下,一定要进行规划。
至于项目过程中的事件,都是按照规划的方向,依据承诺和风险的原则,进行应变。
2006-08-30 11:06 | 半梦半醒之间      

#13楼  回复 引用 查看   

像这样的客户不愿参与的项目,除非是公司里已经有了这行业的大量的行业经验,能有效地预测客户需求。不然最好还是不要接。。 不过本身自己项目组的流程要建好。比如培养团队文化,分多次版本增量开发等等。。这些都是有有效的规避项目风险的方式。
2006-08-30 13:03 | Zhongkeruanjian      

#14楼  回复 引用 查看   

同感!!!

非常想改善。
2006-08-30 13:56 | 方子      

#15楼  回复 引用 查看   

如无意外,现在还只是头痛的开始,到了实施阶段才有得头痛呢,客户的意见搞不好能砸死一大票人……和客户的沟通太少了……太少了……太少了
2006-08-30 14:18 | lazylu      

#16楼  回复 引用 查看   

我觉得LZ的重点就在于和客户的沟通上。
沟通的不够,导致需求不明确。需求不明确,很多问题就来了。
需求不明确,架构就做不好,只能做个大概,
接下来设计也无法做好,因为还有很多未知的要求。
再下来开发也就不好做,不知道做的东西是不是客户需要的东西,今天做了,明天是不是就要改了。
2006-08-30 15:03 | 追求卓越      

#17楼  回复 引用   

很多人说和客户的沟通不畅,导致了项目的失败。而我觉得团队内部的沟通问题更是致命的。而且深感和具体开发人员就某一问题的沟通,说清楚意图,很不容易。往往这种情况在项目的进行中埋下了引线,到关键的一天就会爆炸。
2006-08-30 15:42 | neilzhang[未注册用户]

#18楼  回复 引用   

为了做一个碗,开一座窑,还要限定期限当然不可能.
这种项目应该使用Excel来做

#19楼  回复 引用 查看   

用快速原型来做
哪一个准软件来谈,就不相信套不出客户的需求
2006-08-30 16:43 | 笨小苏      

#20楼  回复 引用 查看   

http://www.cnblogs.com/jillzhang/archive/2006/08/28/488744.html
2006-08-30 16:48 | jillzhang      

#21楼  回复 引用 查看   

很不错的文章,经验学习了
2006-08-30 17:46 | 尧尧      

#22楼  回复 引用   

晚发现不如早发现

1.根据客户的基本需求和开发类似项目的经验快速开发出一个原型
2.最好能到客户现场去个趟
2006-08-31 13:24 | suzhiping[未注册用户]

#23楼  回复 引用 查看   

需求真是太重要了!加油哦.
2006-09-01 16:05 | 黄花菜      

#24楼  回复 引用 查看   

呵呵,头没有开好,发现越来越吃力了。项目到编码的时候应该是比较简单的了,

我认为客户在经常变化,是因为客户并不清楚的知道他自己需要哪些东西!经常在自己想到什么的时候提出要求。

我想应该在返回需求的时候跟客户当面沟通好,使他发现到这次项目要完成模块,在这个沟通的时候沟通好,在以后客户应该提出的要求要少很多,客户没有回复,我想应该当面沟通的好!

这一步没做好,以后的工作问题越积越多。当然项目的时候也越拖越长了....
2006-09-19 10:51 | 天地弦      

#25楼  回复 引用 查看   

不论在什么领域,组织和管理能力都是最重要的,也是最缺乏的!

#26楼  回复 引用 查看   

原来老外也这样唉....
2006-10-10 17:37 | 曲滨      

#27楼  回复 引用   

一旦确定需求就不要随便改动
立案后 就全力以赴做项目
中间交流必不可少
把握全员进度
……
2008-10-20 09:46 | lynna342342[未注册用户]

导航

<2006年8月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

公告

本博客所有文章版权归本人所有,不得转为商业用途. 如需转载,请注明来源. 作者保留所有权利.
致力于企业的信息化建设,办公自动化及数据仓库,商业智能,数据库以及各式报表开发.有意者请给我留言.
昵称:布鲁斯南
园龄:6年
粉丝:3
关注:0

搜索

 
 

常用链接

最新随笔

我的标签

随笔分类(8)

随笔档案(9)

相册

积分与排名

  • 积分 - 39553
  • 排名 - 2714

最新评论

阅读排行榜

评论排行榜

推荐排行榜

本博客所有文章版权归本人所有,不得转为商业用途. 如需转载,请注明来源. 作者保留所有权利.

Google PR? - Post your Page Rank with MyGooglePageRank.com