V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
guoqiao
V2EX  ›  程序员

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

  •  
  •   guoqiao · 2014-05-28 05:35:21 +08:00 · 9300 次点击
    这是一个创建于 3592 天前的主题,其中的信息可能已经有所发展或是发生改变。
    举个例子:
    我主要是写Python. 最近公司想做一款iOS app, 让我来写.
    第一版功能很简单, 拍照,上传服务器,获取返回信息.
    老板要求我给出估计时间.
    我没有iOS经验, 我预计学习Obj-C以及SDK一周, 开发一周, 再留一周作为bug以及意外情况的buffer. 于是我说三周.
    但老板说他觉得一周就可以.
    老实说, 面对这种估计新项目进度的问题, 我心里挺矛盾:
    1. 我也觉得这个应该挺简单, 如果是我自己做, 我心里觉得3天就可以.但作为公司项目,我必须谨慎.
    2. 开发中总是有一些意外情况, 所以不宜说得过短.但放大的度要如何衡量呢?
    3. 以前经历过一些项目,初期定进度时随便项目经理说,心想先试试,软件延期了很正常. 但实际发现:到期前是他哄着你干活, 但到期后, 对方态度就变了, 错就在我, 我必须加班加点当牛作马弥补延期的过错. 所以对这种情况心有余悸.
    基于以上的原因, 每次别人要求我估计进度, 我都支支吾吾觉得特别艰难, 自己都觉得弱爆了.
    关于此事, 有没有人有比较好的经验分享?
    62 条回复    2022-01-21 09:12:03 +08:00
    fkbd
        1
    fkbd  
       2014-05-28 06:00:04 +08:00 via Android
    老板说多久就多久
    dawn009
        2
    dawn009  
       2014-05-28 06:24:29 +08:00
    我一般是在估算时间的基础上 ×5
    loading
        3
    loading  
       2014-05-28 06:43:15 +08:00 via Android
    自己没经验,怎么估算!

    如果是熟悉的内容,看领导着急情况!
    virushuo
        4
    virushuo  
       2014-05-28 06:48:53 +08:00
    尽可能估计你能用的最长时间,然后*2再*1.1。经验公式,没啥理由。不过一般都比较准。
    guoqiao
        5
    guoqiao  
    OP
       2014-05-28 07:18:06 +08:00
    @fkbd 码受你好
    guoqiao
        6
    guoqiao  
    OP
       2014-05-28 07:19:39 +08:00
    @virushuo 我基本也是按照这个公式算的.
    但是当我说出我的估计, 和老板心里的估计差几倍的时候, 我估计他心里有一万匹草泥马跑过.
    alexrezit
        7
    alexrezit  
       2014-05-28 07:35:33 +08:00   ❤️ 1
    拍照上傳服務器獲取返回信息? 這個調用系統相機直接拍照, 丟到服務器拿回來個 JSON 然後處理一下顯示出來, 也就不到一天的工作量. 除非老闆要求此相機帶一個包含幾十種動態濾鏡的拍攝引擎什麼的...
    cxl008
        8
    cxl008  
       2014-05-28 07:43:57 +08:00
    @alexrezit 关键是他没经验!
    monkeylyf
        9
    monkeylyf  
       2014-05-28 07:48:04 +08:00
    对老板说 你觉得一周那你来做
    alexrezit
        10
    alexrezit  
       2014-05-28 07:54:40 +08:00
    @cxl008
    老闆也沒經驗啊, 老闆覺得沒經驗一週的話那讓他自己來做啊. 沒經驗要他來做幹嘛? 難道學習的時間就不用發工資了? 自己成本都算不清楚, 老闆是腦殘?
    hbc
        12
    hbc  
       2014-05-28 08:23:01 +08:00   ❤️ 1
    @alexrezit 其实这个场景和让你现在去一个实验室洗实验器材一样的……看起来容易,做起来就有坑了。要是生物/化学的学生看到你要洗,也会说不就一会儿的事。但是你敢担保你能对保证每种材质、不同用途的的器皿都了解么。
    janxin
        13
    janxin  
       2014-05-28 08:26:21 +08:00 via iPhone
    你没经验很难估计准确吧…
    thinkif
        14
    thinkif  
       2014-05-28 08:28:15 +08:00
    如果使用对于你来说新的技术, 那么任何一个坑都可能耽误你一周的时间...
    akfish
        15
    akfish  
       2014-05-28 08:30:50 +08:00 via iPad
    零经验一周没问题啊,还多了,第一版这需求也就hello world级别。

    lz的估算方式的最大问题在于,你把三件本来是同时进行一周完成的事情,拆开算了三次。

    你不应该学一周SDK再动手,而是看一眼SDK目录和几篇综述性的文档就立即开始,边学边做。
    你不会是全部写好了,才开始debug,而是一边开发一边调试,而且这个需求实在没什么出bug的空间。
    Lax
        16
    Lax  
       2014-05-28 08:32:06 +08:00
    先要求产品需求文档和设计。确定这些后,开发一天。
    ichou
        17
    ichou  
       2014-05-28 08:39:21 +08:00
    让 2B 队友先估算 然后 x2 甚至 x3
    smallghost
        18
    smallghost  
       2014-05-28 08:45:05 +08:00
    老板当然想你一天就搞出来呢!
    alexrezit
        19
    alexrezit  
       2014-05-28 08:46:40 +08:00
    @hbc
    其實真心不難... 換做我的話直接從以前的代碼庫裏面 copy 出來幾段, 一個小時搞定了.
    所以說同一個公司裏 iOS 和 Android 開發者的比例通常是 1:5... 233
    mahone3297
        20
    mahone3297  
       2014-05-28 09:25:12 +08:00
    @monkeylyf 真要这么说,lz估计要走人了。。。
    FanError
        21
    FanError  
       2014-05-28 09:26:45 +08:00
    老夫觉得首先先把mac和iphone买到再来估算时间。
    ioth
        22
    ioth  
       2014-05-28 09:33:14 +08:00
    小公司老板,说话别当真,你了解他,顺着他说,你不了解他?早点走人吧。
    honk
        23
    honk  
       2014-05-28 09:49:54 +08:00 via Android   ❤️ 1
    对没接触过的东西,不要马上去估时间,先要求 1-2 天做些 research, 再根据自己情况去预估,估时间不要太死,可以是一个范围,比如你这情况,向老板说明哪些坑自己把握不是很大,可能会要两个星期,同时也告诉老板如果顺利的话,最快 2-3 天(给老板一点安心) 也可以
    ykennyy
        24
    ykennyy  
       2014-05-28 09:56:08 +08:00
    这个很简单呀,一天行不行?不行就两天,两天行不行?不行就三天 ,一直循环...
    dingtianran
        25
    dingtianran  
       2014-05-28 10:06:37 +08:00
    三周的确太长了 直接报出来老板是比较不好接受,
    从0开始(以前写过其他GUI的代码就可以),看几个demo project,搬一点代码拼在一起,自定义修改一下,一周时间基本是能完成的

    所以应该跟老板说我尽量一周内完成,最多再加三两天
    markmx
        26
    markmx  
       2014-05-28 10:20:21 +08:00
    我这边的产品 才有意思呢。
    今天刚发来一个文档。N多东西。
    然后说 6.1放假前 客户希望看到。

    我直接拒绝了。手上还有N多事情呢。搞什么呀
    guoqiao
        27
    guoqiao  
    OP
       2014-05-28 10:23:52 +08:00
    @dingtianran 我知道的,80%的情况下, 三天甚至一二天就够了.
    不过以前吃过很多乐观估计的亏, 另外有时候自己对需求的理解和老板的理解可能不同.

    忽略我这个案例, 预估项目时间始终是一件很难的事.
    maddot
        28
    maddot  
       2014-05-28 10:37:39 +08:00   ❤️ 1
    上班最厌恶的就是让预估时间这件事了,因为这反映出老板对你的不信任,以为你要多搞点时间出来自己玩呢,作为在职业道德上对自己要求比较严格的人,还有什么比这更令人难受的吗
    missdeer
        29
    missdeer  
       2014-05-28 10:46:32 +08:00
    我一般是自己估算时间*1.5,但很多时间领导说多久就多久,没反抗的余地。
    Yegrit
        30
    Yegrit  
       2014-05-28 10:49:49 +08:00
    有个朋友老板让做个商城的网站,我说最快三个月上线,结果那个老板立即嘴一歪说拉机吧倒.....

    后来找了几个人开发,半年多过去了还没上线
    guoqiao
        31
    guoqiao  
    OP
       2014-05-28 10:53:48 +08:00
    @maddot 是的, 你说出了我的心里话, 我也是这样的感受. 但是换位思考下, 作为老板, 他需要预估成本, 也可以理解.
    dingtianran
        32
    dingtianran  
       2014-05-28 10:55:08 +08:00
    @guoqiao 这个分寸是很难把握的,这个项目完不完成是小事。不好的情况是老板觉得你忽悠他,以后给的时间越来越短。。。。
    imn1
        33
    imn1  
       2014-05-28 11:32:30 +08:00   ❤️ 1
    你怎么算你自己想
    我告诉你老板怎么算:必须满足你的工资*时间<<<项目价值
    花一周的工资让你“学习”,这个怎么说也不划算
    就两个功能,测试也要一周的花费,也是不划算
    that's it
    anchoretic
        34
    anchoretic  
       2014-05-28 11:59:04 +08:00
    估算了又有毛用,领导又不那么想,遇到这种事情要么就做好心理准备
    和@Yegrit说的一样,现实情况就是那样
    老板,你拉鸡巴倒吧
    anchoretic
        35
    anchoretic  
       2014-05-28 12:00:37 +08:00
    领导说多久就多久,做的时候延误了那不管你的事,原因都记好,像雷锋一样要写日记,要不然到头来都是你的问题
    chmlai
        36
    chmlai  
       2014-05-28 12:09:51 +08:00
    @honk 这才是靠谱的答案
    dcoder
        37
    dcoder  
       2014-05-28 12:13:36 +08:00   ❤️ 1
    我觉得项目估计的时间,基本都是扯谈。除非是做非常 routine 的项目。没事出个错,学个新东西啥的,哪有那么好估算时间。当然,项目质量不用保证,还是容易估算时间的...

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

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


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

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

    谢谢各位.
    看了你们的答案, 我突然意识到, 这就是v2ex有意思的地方.
    每次我提出一些问题, 尽管有很多不靠谱的答案, 但也总是能得到很有价值和共鸣的回答, 比如你们的.
    经过这个帖子, 我心中的困惑算是基本解除了, 至少有了一个基本思路去处理预估的问题.
    我注意到我发帖后很多同学收藏了这个帖子, 所以你们的答案默默的影响了很多人.
    感谢!
    ajianrelease
        59
    ajianrelease  
       2015-04-25 20:31:09 +08:00
    @honk 和 @lyazure 的方法不错,给一个乐观时间和悲观时间。另外,我个人感觉楼主把问题划分一下是一个不错的办法,这样有利于更准确的时间估算。之前我估算时就只估算了编码时间了,没有考虑方案选择,单元测试,文档修改,bug修改,以及每天其实工作时间其实也就5小时左右,而不是8小时,所以也经常是把时间估算的太短,也因此受到傻逼管理者的批评
    yurong333333
        60
    yurong333333  
       2022-01-20 11:01:38 +08:00
    八年过去了,楼主能提供一下您现在的解决方案吗?帮助下后来者,感谢感谢。
    guoqiao
        61
    guoqiao  
    OP
       2022-01-20 12:27:41 +08:00
    @yurong333333 楼上也有人说了,先分析需求。然后按你心中一切进展顺利的情况预计一个时间,然后乘以 3 (or PI).
    yurong333333
        62
    yurong333333  
       2022-01-21 09:12:03 +08:00
    @guoqiao 哈哈,这是一个老手才能正确预估的方法。感谢楼主。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   966 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 20:39 · PVG 04:39 · LAX 13:39 · JFK 16:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.