如何确定开发Web应用程序的成本

时间:2018-06-22 08:28:51

标签: architecture project-management

在理想情况下,开发承包商可以根据TOR估算项目成本。 在现实世界中,考虑到该过程是迭代的,因此创建TOR并不是一件容易的事。 因此,出现了一个问题,即应该给开发人员什么,以便他可以明确地命名开发的术语和成本?

3 个答案:

答案 0 :(得分:1)

我建议研究Eric Ries的《精益创业》。如前所述,您将无法知道软件项目的确切成本或范围。解决它的一种方法是进行实验以检验您的假设,然后专注于获得最低限度的可行产品。最小可行产品由于较小,因此更容易估算。完成后,您可以开始迭代,使用收集的反馈作为下一步的输入,并确定每次迭代要花多少钱,来决定是否要投资更多。

答案 1 :(得分:0)

好吧,这是一个宇宙问题,在此过程中,我们需要继续前进。

“软件开发”分为四个主要步骤,最重要的第一步是“需求工程”。

没有这个,很难继续进行以下步骤。

但是,敏捷“ 敏捷软件开发理念”为项目经理或Scrum管理员提供了帮助。

您将估算并交付您所收集的要求。 如果您能够收集需求,或者这是一个模棱两可的需求,那么您必须积极主动。可能会出现什么问题,主动性的范围是什么?

从理想的世界中,您将获得业务需求,然后您需要转换/转换为对业务需求进行数学计算的技术需求。

现在,一旦向客户端显示演示/模拟。关键是在这里,向客户展示一些可见的东西,现在看到魔术。您的客户现在将流利地描述他/她的要求。这是一个反复的过程,但有趣的是您正在开发自己所了解的东西。

所以摘要是:

  1. 将业务需求转换为技术可见性(需要避免模棱两可的需求)
  2. 根据收集的需求开发并显示工作。
  3. 获取反馈
  4. 重复1,2和3。

希望这会有所帮助!

答案 2 :(得分:0)

  

应该给开发人员什么,以便他可以明确地命名开发的术语和成本

此陈述本身就很矛盾。尝试尝试达到的目标时会遇到很多问题:

1)不幸的是,软件是无形的产品。这通常意味着,需要软件的人无法以肯定的方式回答其要求。诸如“请求的可接受延迟时间是多少” ,“ em>您将要面对多少个并发请求” 之类的问题,甚至基本业务需求都太抽象了,无法一成不变

2)需求变更。每时每刻。在大多数情况下,到编写需求时,已经为时已晚,并且不再反映业务需求的全部范围。

3)软件开发是一项极其复杂的工作。一个软件开发周期就必须处理(相对而言,我是从cynefin术语中借用的)相对少量的简单问题(即微不足道的问题),大量复杂的问题(即,您需要实际要解决的专家)和一些复杂的问题(即,当前知识体系中不存在解决方案的问题)。

由于这3点,您遇到了无法可靠地预先为软件项目提供100%确定时间和精力的现实。

  • 需求将是错误的,因为编写需求的人并不完全了解复杂性。
  • 需求会改变,因为业务会改变。
  • 即使您对要求有100%的精确度并确保它们永远不会改变,您仍需要多个领域的令人难以置信的专家团队来全面阐述简单/复杂问题...但是,即使是那些问题也不会甚至在出现复杂问题时(甚至无法可靠预测这些问题何时出现)都可以解决。

那么...我们该怎么做?

1)您可以在估算中添加脂肪。因此,您尝试保护自己免受各种不确定因素的影响。当然,这不是“ 明确确定开发的期限和成本

2)您可以拥抱不确定性并进行敏捷实践。这意味着,您接受了一个事实,即您无法“ 明确确定开发的期限和成本”,并且您会坚持到底。

有几种敏捷软件开发的方法/方法,您通常会小批量发现需求,进行迭代,尽快开发和交付需求(即使整个系统不完整,也能为企业带来即时价值),最后能够在创建新需求时强制转换和重新构建新的预测,丢弃旧的预测,并在无法预见的情况下展现自己。

我的建议是尝试阅读scrum,精益软件开发,看板和其他方法,并尝试在某些项目中使用它们。