《程序员度量:改善软件团队的分析学》一公平和一致性

公平和一致性

当使用度量时,对度量是否公平的担心是合理的,因此度量需要尽可能精确和一致。需要的不是完美,需要的是数字能够对真相有一个公平的呈现。如果一个篮球运动员得了16分,而你只告诉他只得了6分,这显然是不公平的,并且球员或其他人会很快忽视掉这样不精确的统计数据。但是,在两个球员同时夹击导致对手失球的情况下,需有主观判决来决定哪位球员获得了抢断,这时已经足够公平,并且这样的小问题就不会影响统计的整体有效性。
一般而言,数据的精确性取决于系统的可靠性以及观测员对所记录的东西的理解。保持精确的产品bug数目的跟踪,例如,跟踪完成某些任务的时间不是一个困难的工作。至于“主观判决”的运作,我们可以定义一个决策指南,并且在需要时进行调整。
相对于公平而言,在很多情况下,度量数据的一致性更难于确保。导致数据不一致的原因是多样的,包括随时间而产生的共同的范围胀缩,或者团队对严重性和复杂度评定在主观上的不同。例如,完成复杂任务的时间可能随着开发工具的改进或者更高级的编程语言的使用而下降。一个人认为是中等复杂度的问题而在另一个人眼里可能具有高的复杂度。
标准化和校准是提高数据一致性的两项技术。校准是移除那些由于人们在评定时引入的“主观的”不一致性的过程;标准化是移除那些由于在不同分组和时间里出现的“非主观的”不一致性的过程。
拥有1000个用户的产品相对于拥有上百万用户的产品来说,自然应该更少接到来自客户的支持电话。如果想要分析跨多个产品的客户支持事件的度量,那么我们需要以“每1000个用户的电话支持数”来标准化那些数据,而不只是使用原始的客户电话数。另一个可以使用户标准化的例子是,试想一个开发团队,由于开发库的演进和成熟,生产力获得了巨大的提高。由于使用了更好的开发库和代码重用,一个新的产品特性的开发相对之前的工作来说,只花了一个季度的时间。如果想比较整个时期生产力的度量,我们需要对每个时间周期的平均生产力进行标准化。表2-2给出了这个例子的数据。
《程序员度量:改善软件团队的分析学》一公平和一致性

这有点类似于在体育比赛中统计学家在不同时代间进行比较的方法。在20世纪早期棒球的“死球”时代,相比今天,很少球员打出全垒打。其中的原因很多,例如,非常多的磨损球的使用、球场的大小和比赛规则已经改变等。知道这一点,以及了解在一个赛季里打出30个全垒打是一件罕见的事(Babe Ruth在1919年创造了29个全垒打的联盟纪录),统计学家可以通过标准化数据来比较不同时间的全垒打。例如,不是看原始的全垒打数目,而是可以看他们在同辈中的排名,或者他们或许可以把在“死球”时代的一个全垒打等价于现在的两个全垒打。
校准可以用于纠正那些在数据中由于主观评定的要素导致的不一致性。很多组织在绩效考核(包含了很多主观内容)时使用校准流程,这里可以使用类似的流程。最典型的方法是进行一个现场会议,所有评分人员被召集在一起,对彼此的打分进行复查,并且决定是否有一些评分应该调整,以使不同的分组之间更公平和更一致。其目标并不是复查个体的打分,而是复查每个分组所采取的标准和评定量表,最终“校正”到一个共同的标度。
例如,你有3个敏捷软件开发团队,并且每个团队使用T恤衫的尺寸(小、中、大或加大)来评估任务的复杂度,你或许需要scrum主管和团队主管一起来复查当前的和即将到来的任务评级。如果有人或者团队有倾向使用相对简单或复杂的度量指标进行任务分类的话,比如,对某个任务,如果其他团队一般将复杂度评为“大”,而这个团队将其评为“加大”,这些会议应该把这些差异识别出来。小组可以讨论这些差异并且决定如何调整,这样每一个人可以尝试使用相同的标准和标度。即使一个校准的会议或许就足以确立共同的度量指标。

上一篇:Day04 使用PolarDB和ECS搭建门户网站


下一篇:总结对Docker这个东西的想法