包阅导读总结
1. 软件开发、估算、决策、业务需求、技术解决方案
2. 本文围绕软件开发中的估算展开,阐述估算的意义是帮助做重要决策,如资源规划等。还介绍了有效的估算流程及应关注的重点,指出不同人估算结果可能不同,因前提条件有别,但估算结果应满足决策要求。
3.
– 软件开发中常被要求做估算。
– 如分配资源、评估成本时等。
– 但有时估算理由牵强,存在“为了估算而估算”的情况。
– 估算是否必要取决于其意义。
– 估算帮助做重要决策,如资源规划、成本估计等。
– 有些开发活动无需估算也能开展。
– 有效估算包括流程和重点。
– 流程:理清业务需求、确定技术方案、拆分任务、评估任务。
– 重点:关注前提条件差异,保证结果满足决策要求。
思维导图:
文章地址:https://mp.weixin.qq.com/s/R0hKsKedKq8xvXuUQTKOgg
文章来源:mp.weixin.qq.com
作者:麻广广
发布时间:2024/8/20 9:25
语言:中文
总字数:3578字
预计阅读时间:15分钟
评分:88分
标签:软件开发,估算方法,项目管理,敏捷开发,技术管理
以下为原文内容
本内容来源于用户推荐转载,旨在分享知识与观点,如有侵权请联系删除 联系邮箱 media@ilingban.com
作为架构设计人员或技术开发人员,相信你一定被问到过下面的问题:
-
有个新需求,请帮忙粗略估算下完成这个需求大概需要多少工作量
-
现在有100W预算,请帮忙估算下够不够完成这个需求的开发
-
Story卡已经写完了,请帮忙做下详细的估算,看看我们需要多少开发资源
-
线上这个问题原因已经找到了,请帮忙估算下最快多久能修复
-
…
在软件开发的不同阶段,我们都会因不同的目的需要做估算,比如需要分配资源时、需要排开发计划时、需要评估成本时等等。然而,有些场景下我们也会发觉一些估算的理由很牵强,甚至是需求本身就不是很合理,感觉单纯是“为了估算而估算”。那么估算都有必要吗?如果有必要这个估算该怎么做呢?
首先我们来回答第一个问题,要想知道估算是否有必要,就要先弄清楚估算的意义,估算到底帮我们解决了什么问题,这样才能明确目标,才能设计合理的方案,才可以判断是不是一定要通过估算来解决这个问题。Martin Fowler在他的文章《The Purpose of Estimation》中详细阐述了为什么要做估算:
Estimation is valuable when it helps you make a significant decision.(估算是为了帮助我们更好的做重要决策)
没错,回想起需要做估算的场景,我们都是需要估算的结果作为输入来帮助做决策,文章开头的一些问题也对应着一些典型的需要做估算的场景,比如:做资源规划,成本估计,安排开发计划,或者评估一个需求的投入产出比等等,在这些场景中,估算可以帮我们理清做一件事情所需要的人力成本和时间成本,进而帮助我们来做出合理的决策。搞清楚估算在决策当中所起到的作用,我们就可以判段当前这个决策是不是一定需要估算作为输入,当然也有一些软件开发活动并不需要估算也能顺利开展,感兴趣的可以阅读《The Purpose of Estimation》找到一些示例。
明确了估算的意义,那如何做估算才能算是有效的估算,才能帮助我们做出合理的决策呢?从估算在软件开发过程中所处的阶段,可以简单的分为两类:
-
开发团队介入前的需求成本估算
-
开发团队在进入开发阶段前的Story估算
然而不管是哪种估算,正常的流程应该至少包括如下的步骤:
-
理清业务需求
-
确定技术解决方案
-
将要做的事情拆分成任务
-
针对每个任务做出评估
上面的流程很简单,但不同的人遵照这个流程得到的估算结果可能会是不同的,一方面不同的人给出的解决方案可能是不一样的,另一方面不同的个人经验不同也会导致任务拆分结果的差异,进而导致估算结果的差异。估算结果的差异并不代表估算是有问题的,因为做估算基于的前提条件是有差别的,那么怎样才能保证估算的结果可以满足帮助我们做决策的要求呢?在整个估算过程中,我们要重点关注以下几点: