老板要求你估计新项目需要多少时间, 你一般是怎么估算的

2014-05-28 05:35:21 +08:00
 guoqiao
举个例子:
我主要是写Python. 最近公司想做一款iOS app, 让我来写.
第一版功能很简单, 拍照,上传服务器,获取返回信息.
老板要求我给出估计时间.
我没有iOS经验, 我预计学习Obj-C以及SDK一周, 开发一周, 再留一周作为bug以及意外情况的buffer. 于是我说三周.
但老板说他觉得一周就可以.
老实说, 面对这种估计新项目进度的问题, 我心里挺矛盾:
1. 我也觉得这个应该挺简单, 如果是我自己做, 我心里觉得3天就可以.但作为公司项目,我必须谨慎.
2. 开发中总是有一些意外情况, 所以不宜说得过短.但放大的度要如何衡量呢?
3. 以前经历过一些项目,初期定进度时随便项目经理说,心想先试试,软件延期了很正常. 但实际发现:到期前是他哄着你干活, 但到期后, 对方态度就变了, 错就在我, 我必须加班加点当牛作马弥补延期的过错. 所以对这种情况心有余悸.
基于以上的原因, 每次别人要求我估计进度, 我都支支吾吾觉得特别艰难, 自己都觉得弱爆了.
关于此事, 有没有人有比较好的经验分享?
9600 次点击
所在节点    程序员
62 条回复
guoqiao
2014-05-28 12:51:01 +08:00
@PrideChung 哈哈,这个有意思.
guoqiao
2014-05-28 13:10:19 +08:00
@wuyazi 嗯, 这就是我前面说的, 老板对项目的理解和程序员的理解经常不同.
他觉得就这么几个功能, 很简单啊. 而如果你严格按照他说的去做, 最后他会问你, 为什么XXX功能都没有? 这还用说吗?
实际上, 当你真正动手去做一个软件项目, 没有真正简单的.
各种细节, 各种坑, 各种改进,各种变更, 还会被别的事情打扰.
当你预估时间时, 尽管你的老板没有意识到这些问题, 但是作为程序员, 你要有一些考量.
预估进度确实扯淡, 但如果你非要给项目定一个期限, 我希望是一万年----越久越好, 否则你就很被动, 累死累活还充满负罪感.
那些没有多少经验, 而自以为自己很聪明的人, 那些看完"21天精通C++"就觉得自己很厉害的人, 那些把3天做完一个项目视为骄傲的人, 是无法理解这些的.
siw
2014-05-28 13:33:32 +08:00
没有人纠结代码质量问题啊
好吧, 我是处女座...
muziyue
2014-05-28 13:49:29 +08:00
估计时间x2 还有时间能慢慢研究一下项目用到的新东西,急急忙忙的赶工没啥太大收获
Admstor
2014-05-28 14:12:12 +08:00
我觉得你们老板这个叫拍脑袋
首先一个项目,要做成什么样子的计划有没有?项目架构有没有?这些都没有让程序员直接干活,后面发现架构需要重构,且不是更浪费时间?
coding的确并不需要时间,你甚至可以直接套个web页面来做,不过后期定然是重构再重构了
wezzard
2014-05-28 15:23:36 +08:00
拍照是个可简单可复杂的功能需求,简单的可以用系统内置的解决,复杂的需要深入底层框架自己做,一不小心使用到OpenGL ES也是可能的。
openroc
2014-05-28 15:37:25 +08:00
开发都是怎么死的?老板拍脑袋,拍死的。哈哈
amon
2014-05-28 15:50:43 +08:00
一周真的搞不了,学习iOS就得一点时间。
预估时间再乘个2,3倍比较好。
ipiz
2014-05-28 16:24:58 +08:00
估也没用,老板说多久就多久,做了再说。
lyazure
2014-05-28 16:33:20 +08:00
说实话,我不太明白那些说只要一天、两三天、一个星期的人是怎么想的。
项目我规划得不少,有时候领导不懂技术,甚至不明白自己想要什么,只是有个模糊的概念,有时候可能一个非常简单的方法就能满足需求,有时候可能根本是个不可能完成的任务。
所以估算时间的关键在于跟老板充分地沟通,事先在做成什么样子方面达成一致,如果能有参考范本图文并茂地直观地说明更好,否则你很难“按时”完成并让老板认可。
楼主的实际是没有做过IOS开发,所以肯定要把学习、填坑的时间都算进去。
从楼主描述来看,有一个麻烦是,老板想要的是个IOS的App,所以他很可能用常见的app的标准来要求你。所以你一定要摸清楚老板的心理预期才好定时间。
时间方面在老板心里这跟买菜一样的嘛,讨价还价,你开口就是三周,人家不砍对不住自己,何况你还谈判力还不如老板。但只要你能充分说明理由,我想老板肯定也会理解,策略前面@honk 也提到了,给个乐观点时间(这个时间点你起码要拿出一个能看到的雏形),然后给个悲观时间(相当于deadline)。
另外换位思考一下,老板不深入了解技术,所以才让你来估算,他为什么要缩短你的时间呢,因为他想压榨一下水分,试探一下底线,这我想大家都能理解。所以大家不要技术做多了脑子僵化,要多少天就说多少天,不留一点解决问题的机动时间,卖东西也不可能报个成本价呀,累死累活还不讨好,那是自己作死。
总之,充分沟通,订好目标,再定时间,努力完成,皆大欢喜。
说实话我觉得对于新手楼主来说,3周都可以说是乐观的估计,一不小心掉个坑里不知花多少时间才能出来。
davidjqq19
2014-05-28 16:52:48 +08:00
跟老板说,you can you up.
ivvei
2014-05-28 17:30:03 +08:00
就这个需求的话,先开口说两个月。后面再慢慢谈。他要快,也可以,严格限制条件,把需要做多少功能,做到什么程度,在谈的时候都列清楚,以及开发这个项目的期间其他工作的处理办法,然后压缩回到2-3周,最后尽量1周内做出来,然后慢慢测试优化一周。
fkbd
2014-05-28 17:45:53 +08:00
@guoqiao 可惜,我还没老板
wity_lv
2014-05-28 17:46:55 +08:00
曾经经历过过楼主这种情况。
先做任务的划分,对每个点做评估。 心里预估的时间 * 3.
参考这篇博客的附件:(有进度计划的excel)
http://witcheryne.iteye.com/blog/1835254

汇报时间,实际上实在做承诺,承诺一定要靠谱,不要刻意缩短时间。
如果时间超出老板预期,他会跟你沟通的。例如沟通优先级的问题,版本迭代的问题......


BTW, 不要把加班也算进去。
konakona
2014-05-28 18:40:29 +08:00
不管老板要求多少,按照自己的经验评估,并X2.
dorentus
2014-05-29 00:46:30 +08:00
“学习Obj-C以及SDK”一个月
开发半天
其它两天

然后乘以三
geekHarvey
2014-05-29 11:07:21 +08:00
这个确实是个很大的问题,现在看来你只能通过经验来做,可是每个版本还都不一样,难易程度还都不同,所以感觉挺难的。
guoqiao
2014-05-30 05:21:59 +08:00
@lyazure
@ivvei
@wity_lv
@geekHarvey
@hbc
@honk
@maddot
@dcoder

谢谢各位.
看了你们的答案, 我突然意识到, 这就是v2ex有意思的地方.
每次我提出一些问题, 尽管有很多不靠谱的答案, 但也总是能得到很有价值和共鸣的回答, 比如你们的.
经过这个帖子, 我心中的困惑算是基本解除了, 至少有了一个基本思路去处理预估的问题.
我注意到我发帖后很多同学收藏了这个帖子, 所以你们的答案默默的影响了很多人.
感谢!
ajianrelease
2015-04-25 20:31:09 +08:00
@honk 和 @lyazure 的方法不错,给一个乐观时间和悲观时间。另外,我个人感觉楼主把问题划分一下是一个不错的办法,这样有利于更准确的时间估算。之前我估算时就只估算了编码时间了,没有考虑方案选择,单元测试,文档修改,bug修改,以及每天其实工作时间其实也就5小时左右,而不是8小时,所以也经常是把时间估算的太短,也因此受到傻逼管理者的批评
yurong333333
2022-01-20 11:01:38 +08:00
八年过去了,楼主能提供一下您现在的解决方案吗?帮助下后来者,感谢感谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/114619

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX