介绍
最近忙着赶项目,无暇去写博客。今天我想知道大家是怎么估算项目时间进度的?
我把我这次项目经历,唠叨唠叨。
情况
要做新的项目,产品经理A来找我,问我,这个项目你需要多长时间完成?
前提条件:我没看过需求,我只是泛泛的看了下demo,只是知道,页面上有哪些内容,有多少种情况?我没有办法回答她,因为我自己也不知道到底用多长时间。因为我实在没有办法估算时间。然后产品经理A告诉我,你差不多2周就能完成。那我说,你给我3周吧?我还得做代码调试呢!(其实我挺心虚的,我知道这个页面的功能相当的复杂,但是产品经理A告诉我,数据,接口都是准备好的)。
然后又过了两天,产品经理B找了我,问我,这个项目你估计多长时间能做完?我说3周。B跟我说,我们这个项目比较紧,老大那里着急要呢?时间拖的太长了(这不是因为你们一直拿不下方案,拖了快半年了,怎么到我这里就剩这么点时间了)。我跟他解释:差不多代码2周就能形成,还要一周进行相关调试呢?然后B就回去了。
又过了两天,项目下来了,时间是维期2周,我的开发时间就2周,怎么会这样?A跟我说,不是你跟B说,2周吗?——我冤死了,算了,反正就是做事吗?自己赶紧点应该能完成。
意外不断
我周一需要开始开发,A还没有给我需求。A说,周日他过来加班,然后再给我需求。周一回来了,需求只是一部分,A说,这个估计你也要开发一段时间了。等你开发完了,我后面的需求也就上来了。
就这样开发了一周。设计人员那里的demo也在同步进行中。
后来,开发一周左右,发现原来使用的模块,要用新的接口A,但是接口A还不能满足我现有的需求,必须需要程序员A重新包装给我,这样再等了一下午,第二天,问题不断,不停的跟程序员A进行调试,终于完成此模块的功能。
临近项目结束,模块B又出现问题,产品人员许诺的接口,找了相关技术人员,并没有准备好。原有的接口B也要抛弃掉,跟产品A商量后,决定先放弃此模块,项目结束后再继续开发。
临近项目上线的前两天,测试人员才开始真真正正的测试,给我提了一堆的bug。然后第二天,我疯狂的修改bug。
在项目开发阶段,小问题不断,这里不要这个模块了,这个模块需要列表了,这个模块要移动按钮要修正了......。
终于项目于昨日匆匆结束。
今天一天,问题不断,不停修改bug。
感受
这两周,我快累得吐血了,不停的编码,几乎就没有休息过。
1、产品人员追的太紧了,他们自己不紧不慢的定方案快小半年了,给我的开发时间就2周。——我快疯了。
2、测试人员,给了他一周的测试时间,结果临近上线才真正的测试,然后快要上线了,给我提了一堆的bug。——我快神经质了。
3、接口提供的开发人员。不停的把事情推到我这里,我自己这边的事情越来越多。估计是我嘴笨,老是说不过他们,我也不知道,他们哪里来的那么多道理。——我快气死了。
痛定思痛
1、在项目开始阶段,我并不十分清楚每个模块详细情况(如,接口数据的存储情况,复杂度,以及怎么展现)。因为本身这时根本就没有需求文档。
2、项目开始阶段,本身就不应该受产品人员的影响,他们说多长时间,你就受他们的影响,而拟定自己的时间计划,应该让更熟悉这块的人来给你拟定时间度(如找我们头,项目经理)。
3、在开发阶段,不应该让产品不停的修改方案,我本身知道这个道理,但是没有办法,因为本身就没有详细的需求文档,想到哪里就做哪里。
4、应该在临近上线的时候不能让测试人员提bug,或者此bug(不是紧急的bug)只能上线之后,后期再进行跟踪修复。——这个我明天找项目经理,反应一下这个情况。否则,明天上线,你还在不停的修改代码。
5、接口提供的开发人员,必须要求他们给我们详细的文档,以邮件的形式发给我们,否则,你根本就无从入手。——此次开发,我不停的去他们那里询问接口调用细节。
6、同事建议我,把需求打成碎片,一块一块的评估。——天,哪有什么需求,他们自己拟定方案的时候,我就参与过一次会议,其他会议我都没有参与过,无暇知道他们是怎么想的。——估计是有预谋不让我参加,怕我知道,时间拖得比较长吧?(我猜的)。
总结
以上是我这次项目的经历,在这过程中,我知道自己有很多的问题,但是我最大的疑虑,也是我5年开发中一直遇到的问题,就是开发周期问题。
我同事跟我说,开发周期,你要预估下时间,然后你再这个时间基础上再加一周时间。但是我这预估的时间,我自己都没办法预估出来。很多时候我都是被自己的项目搞的晕头晕脑的。——很多道理我懂,但是真正到实际中,实在摸不开面子,既然拿了人家的工资,就要努力给人家做事情。自己吃点亏,累点没什么。
也许大家会责怪我,这一切都是你自己的错误,自己酿下的苦果,自己就要承受。——呵呵,是啊,我写此文,也是发发牢骚而已,一吐心中的烦闷。
如果大家在时间估算上有什么技巧的话,不妨相授彼人,不慎感激。
推荐