免责声明:我不知道该在哪里提出这个问题。如果您觉得这个问题不适合程序员@ StackExchange,可以随意迁移它。
背景:扩大我的最后一个问题,有一个软件系统的招标,是开放的,我已经决定接受它。我是一个专业的软件开发和工程师,在这个投标过程中,我必须为我的投标定价。我得到了一个文件,只包含功能性和非功能性需求。
我必须给项目经理设定上限,并考虑所有方面,例如项目的实施成本、所需资源等。
我的问题是:是否有一个我可以遵循的项目框架,将项目周期分为步骤和相应的成本方面,或者我如何最好地计算/近似项目的成本?
发布于 2012-06-06 23:10:43
我会尽力帮助你解决问题,而不是回答你的问题。
有许多预先估算软件成本的系统。为什么就没有一个?因为没有真正起作用的。一条评论提到了COCOMO-II,我相信它声称在7倍的系数内是准确的,不管是哪种方式!(这是记忆中说的,我找不到参考资料,所以带点盐吧)。
您将无法给客户一个7的乘除因子的估计。
那么,人们真正做的是什么?
项目4需要解释。最常见的策略是:
这就是为什么许多固定价格项目是双方之间一场永无止境的斗争的原因。它的糟糕程度往往取决于承包商损失了多少钱,承包商有多贪婪,客户有多贪婪,以及项目估计有多远。
如果这个过程进行得很顺利(这可能发生,即使我听起来不是这样),那么规范中难以实现的项目可以被用来交换那些被遗忘的东西,最终价格(最初的固定价格规范加上所有没人想到的东西)是公平的,每个人都很高兴。
如果过程进行得很糟糕,实际实现的是基于原始规范的内容,加上金钱政治斗争的结果,而有些人(可能是每个人)都会赔钱。
在管理一个项目时,如果你不考虑价格、时间或功能,但又不能控制质量,猜猜通常会受到什么影响?固定价格投标过程在一开始就消除了弯曲价格或特性的可能性,并且通常强烈反对按期弯曲。你听起来像是想要公平地做好自己的工作,但你要明白这是一个很难接受的模式。
发布于 2012-06-06 21:31:19
你被要求把要求变成小时,然后再把时间变成‘S’。这样做没有魔法棒。你的所有竞争对手都会尝试做同样的计算。你拥有的经验越多,你的估计就越好。
每一个需求都需要时间来设计、编码和测试;再加上项目所有其他部分的时间。
没有一种简单的方法可以将需求行转换为代码行,然后再转换为小时。
风险在于客户可能会花费数周的时间来批准小的更改,或者在30分钟的会议中导致整个项目被破坏(我听说X语言是未来的潮流,只需重命名文件.)。根据合同的结构,所有的金钱风险都在你身上。出价低,你就会赢,但最终失败了。出价过高,你就得不到合同了。
发布于 2012-06-06 21:44:17
估算的第一条规则是,你总是会在固定价格项目上赔钱。
第二条估算规则是,你永远无法在误差范围内提供一个被客户接受的全面估计,因为他们总是认为你误解了一个需求,这将花费你的钱。
软件需求软,客户的期望不稳定,风险无法预测.
这就是为什么敏捷方法在构建软件时变得如此流行的原因。
如果你研究其中的一些方法,还有很多其他的好处。
https://softwareengineering.stackexchange.com/questions/151834
复制相似问题