在理想情况下,开发承包商可以根据TOR估算项目成本。 在现实世界中,考虑到该过程是迭代的,因此创建TOR并不是一件容易的事。 因此,出现了一个问题,即应该给开发人员什么,以便他可以明确地命名开发的术语和成本?
答案 0 :(得分:1)
我建议研究Eric Ries的《精益创业》。如前所述,您将无法知道软件项目的确切成本或范围。解决它的一种方法是进行实验以检验您的假设,然后专注于获得最低限度的可行产品。最小可行产品由于较小,因此更容易估算。完成后,您可以开始迭代,使用收集的反馈作为下一步的输入,并确定每次迭代要花多少钱,来决定是否要投资更多。
答案 1 :(得分:0)
好吧,这是一个宇宙问题,在此过程中,我们需要继续前进。
“软件开发”分为四个主要步骤,最重要的第一步是“需求工程”。
没有这个,很难继续进行以下步骤。
但是,敏捷“ 敏捷软件开发理念”为项目经理或Scrum管理员提供了帮助。
您将估算并交付您所收集的要求。 如果您能够收集需求,或者这是一个模棱两可的需求,那么您必须积极主动。可能会出现什么问题,主动性的范围是什么?
从理想的世界中,您将获得业务需求,然后您需要转换/转换为对业务需求进行数学计算的技术需求。
现在,一旦向客户端显示演示/模拟。关键是在这里,向客户展示一些可见的东西,现在看到魔术。您的客户现在将流利地描述他/她的要求。这是一个反复的过程,但有趣的是您正在开发自己所了解的东西。
所以摘要是:
希望这会有所帮助!
答案 2 :(得分:0)
应该给开发人员什么,以便他可以明确地命名开发的术语和成本
此陈述本身就很矛盾。尝试尝试达到的目标时会遇到很多问题:
1)不幸的是,软件是无形的产品。这通常意味着,需要软件的人无法以肯定的方式回答其要求。诸如“请求的可接受延迟时间是多少” ,“ em>您将要面对多少个并发请求” 之类的问题,甚至基本业务需求都太抽象了,无法一成不变
2)需求变更。每时每刻。在大多数情况下,到编写需求时,已经为时已晚,并且不再反映业务需求的全部范围。
3)软件开发是一项极其复杂的工作。一个软件开发周期就必须处理(相对而言,我是从cynefin术语中借用的)相对少量的简单问题(即微不足道的问题),大量复杂的问题(即,您需要实际要解决的专家)和一些复杂的问题(即,当前知识体系中不存在解决方案的问题)。
由于这3点,您遇到了无法可靠地预先为软件项目提供100%确定时间和精力的现实。
那么...我们该怎么做?
1)您可以在估算中添加脂肪。因此,您尝试保护自己免受各种不确定因素的影响。当然,这不是“ 明确确定开发的期限和成本”
2)您可以拥抱不确定性并进行敏捷实践。这意味着,您接受了一个事实,即您无法“ 明确确定开发的期限和成本”,并且您会坚持到底。
有几种敏捷软件开发的方法/方法,您通常会小批量发现需求,进行迭代,尽快开发和交付需求(即使整个系统不完整,也能为企业带来即时价值),最后能够在创建新需求时强制转换和重新构建新的预测,丢弃旧的预测,并在无法预见的情况下展现自己。
我的建议是尝试阅读scrum,精益软件开发,看板和其他方法,并尝试在某些项目中使用它们。