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

大家都知道“估不准原理”吗?

  •  1
     
  •   daokedao · 2021-03-09 18:58:02 +08:00 · 6776 次点击
    这是一个创建于 1353 天前的主题,其中的信息可能已经有所发展或是发生改变。
    就是每次估计项目开发需要的时间,都不准,有时能相差千里。
    讲真,大家怎么估计项目所需时间?
    47 条回复    2021-03-11 12:20:59 +08:00
    kaiki
        1
    kaiki  
       2021-03-09 19:05:03 +08:00   ❤️ 1
    预计多久,往两倍计划,往三倍上报,最后批下来的时间折中一下 1.5 倍
    minami
        2
    minami  
       2021-03-09 19:06:20 +08:00   ❤️ 6
    你知道“天气预报方法”吗?只要你改变估计结果的频率够快,估计错误就追不上你,doge
    kiracyan
        3
    kiracyan  
       2021-03-09 19:08:32 +08:00
    往大了说
    xmumiffy
        4
    xmumiffy  
       2021-03-09 19:13:52 +08:00 via Android   ❤️ 12
    有种方法叫乘三升级 ,比如你觉得一天能完成,先乘三 在升一级,那就是三周
    nuistzhou
        5
    nuistzhou  
       2021-03-09 19:15:50 +08:00 via iPhone
    不是叫测不准原理吗
    lithiumii
        6
    lithiumii  
       2021-03-09 19:16:49 +08:00 via Android
    心理学上叫 planning fallacy,计划谬误
    smart9527
        7
    smart9527  
       2021-03-09 19:17:17 +08:00
    量子力学
    amet
        8
    amet  
       2021-03-09 19:19:18 +08:00   ❤️ 3
    Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law. 今天在 InfoQ 读到的(滑稽
    Jooooooooo
        9
    Jooooooooo  
       2021-03-09 19:23:05 +08:00
    多读人月神话
    littlewing
        10
    littlewing  
       2021-03-09 19:34:14 +08:00
    @nuistzhou 买买提测不准原理
    licheeve
        11
    licheeve  
       2021-03-09 19:35:30 +08:00   ❤️ 1
    多看量子力学,在项目还未完成时,如果能知道准确的完成时间,则具备了预测未来的能力,那为何要做项目,炒股票它不香吗?
    yingqi7
        12
    yingqi7  
       2021-03-09 19:49:55 +08:00
    @xmumiffy 领导摸透了要先 double🐶
    qzhsjz
        13
    qzhsjz  
       2021-03-09 19:55:36 +08:00   ❤️ 2
    不太清楚估不准原理是怎么表述的,不过好在高中时候学过一点物理竞赛,我知道海森堡测不准原理。
    海森堡测不准原理指的是,你永远无法同时测准一个微观粒子的位置和动量。你可以在一次测量中尽量保证位置的精度,也可以在一次测量中尽量保证动量的精度,但位置的精度和动量的精度乘起来是一个定值。这个定值就是普朗克常数除以 4π。
    如果想仿照这个来表述一个架空的工程量估不准原理的话,我觉得可以这样表述:你目前手头上的工程,永远无法同时精确地知道你目前工程的进度和你目前正在做工程的速度。如果你能够更加精确地测定完成这项工程需要多少代码,你就会不知道你一天能写多少代码,如果你更精准地知道了你每天写多少代码,你就搞不明白你究竟还需要写多少代码才能完成这项工程。
    这个理论符合实际吗?好像还有那么一点点味道?
    xiaoming1992
        14
    xiaoming1992  
       2021-03-09 20:17:20 +08:00
    @xmumiffy 估计一个月,乘三,三个月,升级,三年[狗头
    XuanFei990
        15
    XuanFei990  
       2021-03-09 20:17:50 +08:00
    往多了估计,这不常规操作么,不管啥项目都适用
    同类项目做多了多少有个大概时间,据以往经验。。

    项目分配了一个任务,去年做的时候,我第一次做估计要 21 天,实际大概用 30 多天才差不多做完
    有了以前的经验,弯路可以少走不少,如果高效去弄,大概 14 天差不多吧,但是我还是上班按照 24 天

    然后即便是老板着急了,只给 15 天,我觉得也还是可以的,前期可以快速准确的做完,避免后期返工,压缩出来的时间在可控范围内,划划水,慢慢弄,在时间节点前后,完成就行了,省的干的太快,又安排其他任务。。。狗头
    knightdf
        16
    knightdf  
       2021-03-09 20:21:20 +08:00   ❤️ 1
    一般至少预估时间乘以三
    daokedao
        17
    daokedao  
    OP
       2021-03-09 20:24:09 +08:00
    @qzhsjz 👍 最新研究发现,计算机代码会呈现出某种量子力学特征......
    daokedao
        18
    daokedao  
    OP
       2021-03-09 20:33:01 +08:00
    粒子在测量之前没有一个确定的状态,只有在程序写完后,状态才确定
    xuanbg
        19
    xuanbg  
       2021-03-09 20:46:06 +08:00
    我能说凭直觉吗?反正我直觉都很准,但往外说基本 x5 。因为我 3 天能写完的,别人真的要 3 周……
    murmur
        20
    murmur  
       2021-03-09 21:17:29 +08:00
    直接*pi 特别不靠谱的*10pi 就是算上调试 维护 还有公司零散开销的成本
    SpiderXiantang
        21
    SpiderXiantang  
       2021-03-09 21:18:30 +08:00
    遇事不决 量子力学
    kaneg
        22
    kaneg  
       2021-03-09 22:52:19 +08:00   ❤️ 1
    经验很重要。每个项目完成后都要回顾对比估算时间和实际花费时间,这样次数多了,误差就会越来越小。排除一些奇葩项目有不可预知的变更,按照 2/8 原则,起码大多数项目的估算还是可以掌控的。
    hugo54
        23
    hugo54  
       2021-03-10 00:12:16 +08:00
    @SpiderXiantang 那没事了
    icenya
        24
    icenya  
       2021-03-10 03:30:59 +08:00
    @licheeve
    完成项目是小事情欸...
    如果是炒股票肯定就会有蝴蝶效应啦 x
    (就好像知道彩票一等奖号码一样 x
    wnpllrzodiac
        25
    wnpllrzodiac  
       2021-03-10 08:16:21 +08:00 via Android
    不放余量的?
    yuruizhe
        26
    yuruizhe  
       2021-03-10 08:33:40 +08:00 via iPhone
    因为开发工程中总有千奇百怪的新坑,谁也说不准多久能解决
    daysv
        27
    daysv  
       2021-03-10 08:40:12 +08:00
    还好吧, 我估时间一般都比较准, 但是产品喜欢在开发了一半的时候搞事情。
    falconeye
        28
    falconeye  
       2021-03-10 08:40:38 +08:00
    按时间倒排,只保留本期的核心功能,确定搞不完的就放到下一期。
    量小了,评估就能相对准确;有 deadline 就能确保核心功能和优先级;目标是能持续交付和快速迭代。
    liuzhaowei55
        29
    liuzhaowei55  
       2021-03-10 08:48:57 +08:00
    @xmumiffy 我觉得乘 PI 就可以了,开发人员估时间的时候太太谦虚了。
    cnrting
        30
    cnrting  
       2021-03-10 08:53:23 +08:00 via iPhone
    @xmumiffy 所以到底是听领导的还是听你的
    tiedan
        31
    tiedan  
       2021-03-10 09:20:03 +08:00
    个人而言,比较新的任务类型前几次估不准很正常,但是做了十次八次的几乎不存在估不准的情况。
    joshuacavell
        32
    joshuacavell  
       2021-03-10 09:26:11 +08:00
    遇事不决,量子力学.
    zlhsvc
        33
    zlhsvc  
       2021-03-10 09:57:54 +08:00
    一般往大了说 2 倍时间是保底,因为你不知道中间会出什么幺儿子
    wangkun025
        34
    wangkun025  
       2021-03-10 09:58:26 +08:00
    人的问题。
    ayase252
        35
    ayase252  
       2021-03-10 10:00:52 +08:00 via iPhone   ❤️ 1
    需求明确 * 2
    需求一看就不靠谱 * 4
    no1xsyzy
        36
    no1xsyzy  
       2021-03-10 10:24:02 +08:00
    @falconeye 这个涉及到管理学领域的三难问题:时间限制( Time )、预算限制( Budget )、成果要求( Specification )三者很大程度上相关,但只要降低一个要求通常能够符合
    (当然,人月神话否定了软件工程领域放开预算限制的作用,但影响不大,反正传统上就比较少地采用加预算)
    似乎一个实例就是 Linux 分两条发布,稳定内核放弃成果要求,不一定要把所有这段时间内新添加的功能加进去,而最新内核没有固定发布时间。
    qianc1990
        37
    qianc1990  
       2021-03-10 11:31:19 +08:00
    我知道 海森堡测不准原理: 无法同时测得粒子的位置和速度.
    MaverickLee
        38
    MaverickLee  
       2021-03-10 11:38:45 +08:00
    我知道买买提测不准原理:你无法同时得知一个 msl 携带的炸药量和他要引爆的地点。
    CodingNaux
        39
    CodingNaux  
       2021-03-10 14:28:43 +08:00
    领导恨不得把迭代周期排的满满,不给人留一点 buffer
    所以得多估 = =
    CodingNaux
        40
    CodingNaux  
       2021-03-10 14:31:54 +08:00
    或者是这个需求匆忙进入迭代,之前没好好评审,没让开发做技术调研之类。赶鸭子上架
    CodingNaux
        41
    CodingNaux  
       2021-03-10 14:34:20 +08:00
    开发估时太大,大概是产品流程出了问题,可能产品自己就没调研清楚需求,需求都没经过大家评审
    开发这锅不背
    zhuweiyou
        42
    zhuweiyou  
       2021-03-10 14:37:48 +08:00
    一般来说 我是乘 2~3 的时间 (因为最终会被压缩一些 加上其它项目可能并行)
    千万不要"高估自己的速度"

    如果是长期项目, 一般是分阶段进行, 比如第一期先完成哪些模块功能, 第二期再完成哪些
    Hoshinokozo
        43
    Hoshinokozo  
       2021-03-10 15:51:32 +08:00
    有句话怎么说来着:

    凡是你觉得可能会出错的地方,最后肯定会出错

    再加上你觉得不会出错的,和你根本没想到的,最后完成的时间会大大超出预期

    以我的经验:

    心理非常有底的项目,按照完全不出错的时间*2

    心理有底,但是具体细节不是很清楚的项目,按照完全不出错的时间*3

    心理没啥底,只是知道大致的实现思路的,*4

    心理完全没底的,那就随便报了,反正最后肯定要么多次调整,要么跑路。。[手动 Doge
    egen
        44
    egen  
       2021-03-10 15:54:32 +08:00
    @amet #8 可控核聚变还需要 50 年
    titan2006
        45
    titan2006  
       2021-03-10 21:32:54 +08:00 via iPhone
    量子力学不符合直觉与逻辑 是骗人的东西
    meepo3927
        46
    meepo3927  
       2021-03-11 10:10:01 +08:00
    估,经验比较重要
    zeromake
        47
    zeromake  
       2021-03-11 12:20:59 +08:00 via Android
    我之前领导有个任务他设计的方案,然后让我做说啥二到三天,然后和他确认了好几次设计方案(一大把问题没考虑),最后花了 7-8 天才差不多做完,就这他还要时常说那个设计没考虑到。还有一次让新人去处理一份代码改动,新人花了 2-3 天,还要说别人慢,我个人觉得还挺快的了,感觉他是在拿我和他自己在做对照。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2777 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:08 · PVG 23:08 · LAX 07:08 · JFK 10:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.