测量对于软件开发来说是十分必要的。测量没有对开发产生正面效果,甚至有的产生负面效果,这不是测量行为本身的错误,而是在测量目的和测量手段方面出了问题,导致出现测量是否必要的疑问。
在谈软件测量之前,我们先扯远点,看看测量在其它行业发挥的巨大作用,就拿现在的奥运会来说,不论是游泳,举重,田径还是其它运动,运动员为了取得更好的成绩,在训练时后面都有大量的测量工作,什么是科学训练,科学训练就是在测量指导下的针对训练,如果想提高成绩,必须测量。在工程控制领域,没有测量怎么控制温度、压力、速度、高度?难以想象。如果不想改进,测不测量也就没有必要了。
软件开发既然是需要持续改进的,那么就需要进行过程控制,就需要进行必要的测量。测量的目的就是为了改进,如果测量达不到这个效果,那么肯定是出了问题,需要反思了。在设计测量方案时,采用日代码行生成行数也罢,代码千行错误率,抑或是千行代码注释量也好,都需要先明确开发团队在哪些方面需要提升,根据这些提升目标,确定测量目的,然后设置测量手段,测量手段一定要和测量目的相关联。为了防止测不准,必须减少对测量的干扰,测不准是因为加入了人为的伪装,怎么减少伪装,就是减少人为伪装的根本动力;测不准也是因为测量手段的单一性,那么针对测量目的,设置复合的测量手段,则是解决方向。
不是说测量了,就会有效果,是测了,尽测些无用的指标,干嘛用呢?测量里的学问应该值得研究,它在增加软件开发可控性、开发评估直观化、提升软件质量方面将发挥重要作用。