I thing the largest amount on large projects are testing and fixing the bugs and fixing misinterpretation of the requirements. First you need write tests. Than you fix the code that the tests run. Than you make the manual tests. Then you must write more tests. On a large project the testing and fixing can consume 40-50% of time. If you have high quality requirements then it can be more.
None of those things are major factors in the cost of a project. What it all comes down to is how well your schedule is put together - can you deliver what you said you would deliver by a certain date. If your schedule estimates are off, well guess what, you're project is going to cost a lot more than you thought it would. In the end, it's schedule estimates all the way.
Edit: I realize this is a vote, and that I didn't actually vote on any of the choices in the question, so feel free to consider this a comment on the question instead of a vote.
[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.
Project size
Kind of software being developed
Personnel factors
I don't think you accounted for #3 in the above list. There's usually an order of magnitude or more difference in skill between programmers, not to mention all the Peopleware issues that can affect the schedule profoundly (bad apples, bad management, etc).
The most important single factor determining the cost of a project is the scale and ambition of the vision. The second most important is how well you (your team, your management, etc.) control the inevitable temptation to expand that vision as you progress. The factors you list are themselves just metrics of the scale of the project, not what determines that scale.
Characters, file size, and typing speed can be considered of zero cost, compared to proper problem definition, design and testing. They are easily an order of magnitude more important.
Of the four options you gave, I'd go with #2 - the size of the project. A quick project for cleaning out spam is going to be generally quicker than developing a new word processor, after all.
After that I'd go with "The abstractions used while solving the problem." next - if you come up with the wrong method of solving the problem, either wrong because of the logic being bad or because of a restriction with the system - then you'll definitely spend more money on re-design and re-coding what has already been done.
发布评论
评论(6)
我认为大型项目中最大的工作量是测试和修复错误以及修复对需求的误解。 首先你需要编写测试。 然后修复测试运行的代码。 比你进行手动测试。 那么你必须编写更多的测试。 在大型项目中,测试和修复可能会消耗 40-50% 的时间。 如果您对质量要求很高,那么可以更多。
I thing the largest amount on large projects are testing and fixing the bugs and fixing misinterpretation of the requirements. First you need write tests. Than you fix the code that the tests run. Than you make the manual tests. Then you must write more tests. On a large project the testing and fixing can consume 40-50% of time. If you have high quality requirements then it can be more.
这些都不是项目成本的主要因素。 归根结底是你的日程安排得如何——你能否在某个日期之前交付你所说的交付内容。 如果您的进度估计不正确,那么您猜怎么着,您的项目的成本将比您想象的要高得多。 最后,就是全程的进度预估。
编辑:我意识到这是一次投票,而且我实际上并未对问题中的任何选择进行投票,因此请随意将其视为对问题的评论而不是投票。
None of those things are major factors in the cost of a project. What it all comes down to is how well your schedule is put together - can you deliver what you said you would deliver by a certain date. If your schedule estimates are off, well guess what, you're project is going to cost a lot more than you thought it would. In the end, it's schedule estimates all the way.
Edit: I realize this is a vote, and that I didn't actually vote on any of the choices in the question, so feel free to consider this a comment on the question instead of a vote.
来自麦康奈尔:
http://www.codinghorror.com/blog/archives/000637.html< /a>
我认为您不属于上面列表中的#3。 程序员之间的技能通常存在一个数量级或更多的差异,更不用说所有 Peopleware 问题 这会深刻地影响进度(坏苹果、管理不善等)。
From McConnell:
http://www.codinghorror.com/blog/archives/000637.html
I don't think you accounted for #3 in the above list. There's usually an order of magnitude or more difference in skill between programmers, not to mention all the Peopleware issues that can affect the schedule profoundly (bad apples, bad management, etc).
决定项目成本的最重要的单一因素是愿景的规模和雄心。 第二个最重要的是你(你的团队、你的管理层等)如何控制随着你的进步而扩大愿景的不可避免的诱惑。 您列出的因素本身只是项目规模的指标,而不是决定该规模的因素。
The most important single factor determining the cost of a project is the scale and ambition of the vision. The second most important is how well you (your team, your management, etc.) control the inevitable temptation to expand that vision as you progress. The factors you list are themselves just metrics of the scale of the project, not what determines that scale.
与正确的问题定义、设计和测试相比,字符、文件大小和打字速度可以被认为是零成本。 它们很容易重要一个数量级。
Characters, file size, and typing speed can be considered of zero cost, compared to proper problem definition, design and testing. They are easily an order of magnitude more important.
在你给出的四个选项中,我会选择第二个——项目的规模。 毕竟,一个快速清除垃圾邮件的项目通常比开发一个新的文字处理器要快。
之后我会选择“解决问题时使用的抽象”。 接下来 - 如果你想出了错误的解决问题的方法,要么是因为逻辑不好,要么是因为系统的限制 - 那么你肯定会花更多的钱来重新设计和重新编码已经完成了。
Of the four options you gave, I'd go with #2 - the size of the project. A quick project for cleaning out spam is going to be generally quicker than developing a new word processor, after all.
After that I'd go with "The abstractions used while solving the problem." next - if you come up with the wrong method of solving the problem, either wrong because of the logic being bad or because of a restriction with the system - then you'll definitely spend more money on re-design and re-coding what has already been done.