紧,基本上你必须在指定时间内完成,估算显得毫无价值。
第一个问题是比较常见的,但我们要这样想:估不准也比不估算好,估算偏差哪怕超过100%,也比不估算好,至少有个谱。
大家是会进步的,估不准往往是对任务和自己能力认识不到位,要让大家不害怕估算,只要敢于估算,问题才会暴露出来,才能持续进步。
第二个问题分两种情况,有些人是确实是过分保守的对自己信心不太足,项目经理可以多多来指导他的工作,看看他具体的进展,让他更加充分地了解任务,更加充分了解自己的能力,增强他的信心,这样他就能持续进步了。而另外一种情况就比较恶劣,少数人会故意增大时间,这样他平时工作不必全力以赴,可以比较悠闲,甚至可以利用工作时间干私事。如果发现这样的情况,就应该严肃处理了,不要做烂好人,这样的人在团队中存在是对团队的极大伤害。
第三个问题往往是各项目经理心中的痛楚,他们会觉得:实在无奈啊!做项目就是在有限时间有限资源内做不可能完成的任务,在这样的情况下,你就不要跟我扯估算了!
我们的项目大部分情况都是非常大压力的,应对这样大的压力越需要冷静。实际上大部分项目尽管是有压力,但只要发挥团队的聪明才智,还是可以高效地做好工作的,不需要加班或者少加班。本文稍后会介绍这个问题的应对办法。
介绍了这么多种估算方法,每种都有很多问题,那到底怎样才能做好项目估算呢?
软件项目的特点就是项目签订时,价钱是死的,工期是死的,而需求和设计是不明确的。
我的经验告诉我,功能点法、代码行法这些方法基本上是不靠谱的,我在实际项目中会综合使用Dephi法和由底而上的估算方法,并予以改良,下面介绍一下我的一些心得体会。
1.项目估算与其说是估出来,还不如说是做出来的。
假设某项目是这样的情况:
1)合同签署的金额是100万,工期是3个月。
2)需求只是大致写了,并不明确。
3)老板要赚50万,给你的预算只有50万。
我们很多项目都是这样的情况,不是等你估算出比较靠谱的数字,然后才去报价签合同的,我们经常要在老板指定的预算下完成项目。
你现在要负责这个项目,你会如何做估算呢?
你需要做好两个事情,才能保证项目实际成本控制在预算内。
第一个事情,控制好需求。需求不明确,这既是不利因素也是有利因素,应尽量往有利的方向控制。不明确的好处就是你有控制需求的空间,抓住客户的关键需求,简化不必要的花销的需求,能极大地降低项目工作量。
第二个事情:想尽办法降低开发工作量。不要因为进度紧就不认真思考软件的设计,应尽量采用简单的成熟的设计方案,简化工作。
2.估算应该持续进行,持续细化。
项目初期很难对项目做完整估算,但能估计的部分应先估计出来,并且针对不明确的部分安排计划去搞清楚。
3.估算是项目各种工作估算的总和。
估算并不是只是得到一个项目估算的总体数字,项目的估算总数其实是由项目各种工作的估算组成的。
前文介绍了项目的各种工作,每一种工作都需要认真估算。如果估算发生偏差,要能定位到具体是哪部分的估算出问题了,否则估算没有指导项目工作的价值。功能点法、代码行法的估算办法,只能得到一个项目估算的总数,而不能定位到具体的哪一部分工作,这样得到的估算结果难以用来指导项目工作。
4.估算依赖项目组的整体实力。
如果你没有软件开发相关经验,只懂理论上的估算,你是不可能做好估算工作的。
项目组由项目管理、软件设计、编码、测试、实施等各类专业人才组成,每个人在自己方面都是专家,每个