项目时间——你会讨价还价吗?

我想大家都遇到过这种情况:
    需求不是很明确而且肯定会变化;
    还没有开始做分析设计,对工作量心里没谱;
    上面给了最后期限,却不给资源……
 
    这种情况下,你心里知道风险极大,却必须接受这个工作。
    
    记住,你是开发人员,你的本分是系统实现——你只应该承担开发的风险。
    怎么样更好地“坚守本分”,不干预你职责外的风险呢?
    其实有很好的办法, 本文给出一些建议。
 
 
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%的概率,则
    需要的工作量还要增加一个保险量,大体上是(å可靠值-å最小值)×0.8
            (根据概率分布曲线导出,不是很精确,也没必要精确)。
5.注意事项
     使用人天作为工作量的单位
            2人月很可能被砍到1人月,但40人天通常被砍到30人天。
            记住每个月只有22个工作日。遇到法定假日更少。
       单个工作项,工作量估算一定要客观。
            单个工作项的工作量很容易估算,不要让别人挑出问题。
            如果有问题在风险系数上做文章。
       工作量估算和项目计划要随时更新
            已完成的工作项,不再存在风险,同时实际完成时间已经确定。
            需求在逐步确定,风险在逐步降低。
            有新需求时,加上新的工作项。
            随时估算新的风险可能。
 
 
 
6. 讨价还价
    上面在工作量上讨价还价时,其实是在帮我们逐渐确定需求,减少风险。
         比如,
        甲:这个为什么要用这么长时间?
        乙:如果需求能够确定,那么用的时间还是很少的,但是现在不确定,风险系数比较高。
         甲:是吗?我看看,嗯,这个功能我们就不做了。
         乙:这样啊,风险系数降低到XXX,最可能完成的工作量是XXX。这个功能不做了吗?我们签字确认一下?
 
7.实例
    以后有时间给出一个实际的例子。包括快速分析设计,工作量估算表模板,实际进度中对工作表的更新等等。
 
 
       
posted @ 2006-11-02 14:47  心内求法  阅读(434)  评论(0编辑  收藏  举报