哪些因素决定了软件项目的成本?
如果我们现在手上有$ 100。并且必须下注这些选项之一。那你敢打赌吗?问题是:
最重要的因素是阻止项目的成本。
- 程序员的打字速度。
- 编程时键入的字符总数。
- 'wc * .c'命令。 C文件的结束大小。
- 解决问题时使用的抽象。
更新:好的,仅作记录。这是我问过的最愚蠢的问题。问题应该是。对上面的列表进行排名。最重要的因素在前。哪些是最重要的因素。我问,因为我认为字符数很重要。需求更改时,更改的字符较少。完成得更快。或者?
更新:这个问题在Stackoverflow播客#23中进行了讨论。谢谢杰夫! :)
解决方案
这些都不是影响项目成本的主要因素。总而言之,就是我们可以按计划完成计划的时间,然后按时交付我们所说的内容。如果进度估算不正确,请猜猜是什么,项目成本将比我们预期的高得多。最后,它是时间表的一路估算。
编辑:我意识到这是一次投票,并且我实际上没有对问题中的任何选择进行投票,因此请随意将其视为对问题的评论,而不是投票。
从麦康奈尔出发:
http://www.codinghorror.com/blog/archives/000637.html
[For a software project], size is easily the most significant determinant of effort, cost, and schedule. The kind of software you're developing comes in second, and personnel factors are a close third. The programming language and environment you use are not first-tier influences on project outcome, but they are a first-tier influence on the estimate.
- 项目规模
- 正在开发的软件种类
- 人事因素
我不认为我们在上述列表中排名第三。程序员之间通常在技术上有一个数量级或者更多的差异,更不用说会严重影响进度的所有Peopleware问题(坏苹果,糟糕的管理等)。
我认为在大型项目中投入最多的是测试和修复错误以及修复对需求的误解。首先,我们需要编写测试。比我们修复测试运行的代码。比我们进行手动测试。然后,我们必须编写更多测试。在大型项目中,测试和修复可能会花费40-50%的时间。如果我们对质量有很高的要求,那么它可能会更多。
与正确的问题定义,设计和测试相比,可以认为字符,文件大小和键入速度为零成本。它们很容易重要一个数量级。
决定项目成本的最重要的单一因素是愿景的规模和抱负。第二个最重要的是,我们(团队,管理层等)如何控制不可避免的诱惑,以随着进步而扩大愿景。我们列出的因素本身只是项目规模的度量标准,而不是决定该规模的因素。
在我们提供的四个选项中,我会选择项目大小的#2. 毕竟,一个快速的垃圾邮件清理项目通常比开发一个新的文字处理程序要快。
之后,我将继续讨论"解决问题时使用的抽象"。接下来,如果我们想出错误的方法来解决问题,或者是由于逻辑不好而导致的错误,或者是由于系统的限制而导致的错误,那么我们肯定会花更多的钱来重新设计和重新编码已经存在的内容完毕。