我的问题是,某人如何真正估算项目的持续时间?
这是我在整个过程中遇到的整体问题
假设您需要一个简单的应用程序,其中包含客户/订单表格以及一些库存容量以及用户/角色权限。
答案 0 :(得分:3)
我们有很多很多成本估算模型可以给我们一个时间表估算,COCOMO 2就是一个很好的例子。虽然或多或少如你所说,类型错误可能会花费你2晚。所以解决方案是什么? 在我看来
所以,在我看来,它应该是估算技术与专家判断项目可能发生的间接费用的混合。或多或少,你最终得到的数字非常接近你的实际努力。
答案 1 :(得分:3)
我的经验法则是始终保持估计最初语言不可知。意思是,不要为不同的实现语言创建不同的估计。这没有意义,因为客户会在商业意义上向您表达要求。
这是"什么"。 "怎么"取决于你,给客户的估计不应该给他们选择。 "怎么"作为分析师,完全是您的域名。您必须通过分析业务需求,然后找到您在团队中的经验,您自己的时间限制,您的基础架构等等。然后在两个时间内提供估算,并假设您将使用的技术。
编程语言和算法只是实现业务需求的中介。因此,客户不应该决定这一点,因此,鉴于手头的问题和资源,您只需要给出一个估计值,作为分析师,您可以对使用的内容做出决定。
我通常遵循这三个域:
"什么" - 要求,它们应该是CLEAR范围的小单位,它们由客户提供
"如何" - 技术架构,实际使用的语言和技术,基础设施和团队组成。此外,系统应如何整合和组合(组件关系)的高级建模,由分析师在他所需的团队的帮助下提供
"当" - 这是你的实际时间组件。这告诉客户什么时候期待"什么"的每个部分。何时交付要求或特征x。这是由分析师,团队和客户一起根据"如何"和"什么"与客户的优先事项一起。通常我根据团队告诉我的内容(技术时间),我的想法(体验)以及客户想要的(优先级)得出总和。 "当"由所有利益相关者(分析师/ CM,团队和客户)拥有。
用于描述上述内容的表单可能有所不同,但我通常使用高级用例模型,通过技术细节提供积压工作。然后,我首先与团队进行时间估算,然后我与客户进行修改。
然后可以使用相同的积压来推动开发冲刺......
答案 2 :(得分:1)
规划/评估是软件工程中最困难的部分之一。
然后: - 将工件拆分成较小的部分 - 邀请一些团队成员(约5-8人), - 讨论每个项目的含义 - 让他们填写一个表格,每个项目是多少小时,不要讨论或让他们看别人 - 然后对于每个项目,检查平均值并讨论是否存在大量差异(风险?) - 删除每个项目的最低和最高值 - 取其余的平均值
这最适合基于经验的工作,对于有全新事物的新项目来说,计划总是比较困难。
希望这有帮助。
答案 3 :(得分:1)
您的问题没有简单的答案。我能做的最好的就是参考一篇论文,讨论用于成本分析的一些不同模型和技术。