我刚刚参加了关于谁最适合对给定工作进行估算的讨论。
在详细的层面上,我总是说最好的估计来自实际必须做这项工作的人,因为他们有充分的理解,这让他们完全接受,但是在更高的抽象层次上(即在整个项目级别)我不太确定。
我想起了 Peopleware 中的第 5 章,它给出了 1985 年澳大利亚研究的结果——我能找到的最佳链接在这里。
我对您在这里的关注点特别感兴趣——您是作为开发人员、架构师、项目经理还是其他人回答问题?
我刚刚参加了关于谁最适合对给定工作进行估算的讨论。
在详细的层面上,我总是说最好的估计来自实际必须做这项工作的人,因为他们有充分的理解,这让他们完全接受,但是在更高的抽象层次上(即在整个项目级别)我不太确定。
我想起了 Peopleware 中的第 5 章,它给出了 1985 年澳大利亚研究的结果——我能找到的最佳链接在这里。
我对您在这里的关注点特别感兴趣——您是作为开发人员、架构师、项目经理还是其他人回答问题?
我以经理(现在)和开发人员(过去)的身份回答这个问题。
高层估计应该来自团队/项目负责人,但需要开发人员的投入。它们也应该以范围的形式给出 - 最有可能出现最坏的情况,并指示每个的置信水平。
团队领导不可能足够深入地了解项目的所有内容,因此他们需要开发人员的一些意见,但这样做的危险是您在过程中过早陷入细节的困境。同样,单个开发人员对项目的了解不够广泛(除非它真的很小),无法对所有内容进行估算。
然后,经理整合这些估计并寻找冲突和协同作用以获得“大局”——毕竟这就是我们的报酬。
作为一名开发人员,我不会信任一个在没有与开发人员核实的情况下给出估算的经理,但同样我也不会信任一个只是询问开发人员并在没有以某种方式“编辑”它的情况下传递该信息的经理。
负责签署估算的人应该是项目经理。那是他们的利基。
然而,我并不是说 PM 应该做出估计。
我是说项目经理需要从各种来源(技术、业务等)对项目的不同部分进行估算。在任何项目中,都会有很大一部分不是技术性的。
任何技术性的东西都应该由技术人员估计。
但是,出于同样的原因,任何非技术性的事情都应该由适当的专家进行评估(CPA 类型称这些 SME——主题专家)。架构师可以估计技术解决方案。A BA 差距分析。经理可以执行业务流程实施。等等。
但是确实需要一个 PM 将所有这些联系在一起,形成一个高水平的估计,特别是在资源配置和制定相互依赖关系和关键路径方面。
每个人都应该给项目经理一个估计:功能分析师、测试分析师和高级开发人员。
PM 的任务是确保它们在一定程度上符合现实并加以总结。
开玩笑的敏捷答案是:没有人应该这样做,因为无论如何它都会大错特错。
我认为这取决于作品。很多时候,项目经理完全有能力估计说,在屏幕上添加一些额外的数据,改变布局,你说出它需要多长时间。
但是,有时事情会更加复杂,尤其是当它们深入触及系统架构时。在这种情况下,项目经理应该咨询开发人员、架构师或两者的估计,以及为什么要花费特定时间来实施。
此外,我认为项目经理应该使用开发人员的估算来得出最终估算,就像 schar 说的那样。他们应该增加一定百分比的开销、测试时间、风险因素等。
我以经理(现在)和开发人员(过去)的身份回答这个问题。
在我们公司,开发人员总是参与估算。我们对业务顾问创建的用户故事进行高级估计。
业务顾问将用户故事传达给我(技术团队经理)和开发人员。
我们安排了一次评估会议来讨论用户故事和项目背景(三个人,业务顾问、开发人员、技术经理)。在会议中,我和开发人员都做笔记并写下每个用户故事所需的时间。
会议结束后,开发人员填写了一份估算表,我们确保双方都同意该估算。完成后,估算表将返回给业务顾问。
通常会在 x 到 x 次 3 天的范围内给出高水平的估计。
例如:40 到 120 天。
显然,我们只估计所需的开发/测试/部署时间。X 百分比将用于项目管理和技术管理、风险和管理费用。