项目时间——你会讨价还价吗?.doc
项目时间 —— 你会讨价还价吗? 我想大家都遇到过这种情况: 需求不是很明确而且肯定会变化; 还没有开始做分析设计,对工作量心里没谱; 上面给了最后期限,却不给资源…… 这种情况下,你心里知道风险极大,却必须接受这个工作。 记住,你是开发人员,你的本分是系统实现 —— 你只应该承担开发的风险。 怎么样更好地“坚守本分”,不干预你职责外的风险呢? 其实有很好的办法,本文给出一些建议。 1.关于工作量 工作量是一个概率! 对于每个工作项,其完成所需的工作量(人天)都是一个概率分布 有最小值(但概率几乎为零) 有可靠值(最可能的情况,概率在80%左右) 没有最大值(最大值为无穷,其概率同样为零) 如果估算工作量时只估算了最小值,并且把这个值最为依据,那么对不起,你死定了 —— 大家根据这个值盯着你的工作,而你按照这个时间表完成的概率几乎为零 。那么项目延期的风险完全由你承担。 2.关于累计工作量 关键路径上概率的累计是每个工作项概率相乘! 比如关键路径上有 3 个认为,其最可能完成的工作量和概率分别为( 10 人天, 70%),( 15 人天, 80%),( 9 人天, 75%) 则使用 10+ 15+ 9= 34 人天整个完成的概率是: 70%× 80%× 75%= 42%! 通常关键路径上会有 10个以上的工作项,即使每个工作项按照概率 90%来估算工作量,整个完成的概率也只有 0.9^10=53%! 3.概率来自哪里?概率来自风险! 风险主要来自需求变化! 4.如何应对 工作量的估算 不是简单的数字! 工作量的估算还要考虑风险。最简单的办法是定一个风险系数。风险系数取决于需求不明确,需求可能变化,开发人员会生病等等。 比如, 情况风险系数 ======================== 需求不明确 0.5 需求可能发生很大变化 1.5 需求会增加很多 2--3 等等。因为让你报工作量的时候通常没有给你充分的时间,所以可以只从需求的确定程度来风险系数。 最终,最可能的工作量为最小工作量×( 1+风险系数) 整体工作量要加保险系数。 由于概率累乘,整体风险还是很大。如果要保证 85%以上的可靠性,还 要在整体上进行调整。 比如,最后汇总的工作量为 200 人天,而关键路径上计算出的概率为 50%,为了保证总体有 85%的概率,则需要的工作量还要增加一个保险量,大体上是