观测员和统计表
当无法从现有系统中获得数据时,最好的办法是用现行职业球队的方法——也就是观测员和统计表。
职业球队利用特定的统计分析管理者,也就是观测员,去观看比赛,为球员个体和球队填写统计表格。在一些运动(如棒球比赛)中,可能有官方的记录员来跟踪统计数值,并且在必要的时候负责主观判决(judgment call),如决定某个回合是安打还是失误。但即使在这样的例子中,记录员常常也需要观测员来协助他们,另外,球队拥有自己的观测员来跟踪那些并没有被记录员记录的统计数据。技术可以自动化一些统计收集的过程,但很多任务依然需要人工去完成。
观测员使用球队制订的统计表,常常是简单的表格或者电子表格。他们把统计数据保存在他们的电脑中,或者在某些情况下他们先将数据写在纸上 (因为这些表格过于简单到可用纸来记录),稍后录入电脑。经过训练的观测员了解所有他们跟踪的统计数据,并知道如何辨识它们。在某些情况下,为了保证和提高精确度,需要用到多个观测员。
同样的方法可以很容易应用于程序员和软件开发团队中。首先,我们需要标识出那些希望跟踪但又不易从现有系统中获得的数据,比如,当程序员帮助他人想出怎样去完成任务,又或者程序员加班去解决关键的产品问题。其次,我们需要建立一个统计表,可能就是一个简单的电子表格。
最后,需要选择观测员。这些指定的团队成员可能是团队主管、 项目经理或者scrum主管,因为他们需要足够的能见度来跟踪选择的条目,按你期望的粒度(间隔周期)由他们来填写统计表格,例如每周对程序员和团队统计进行填写。然后这个数据与系统提取出来的数据联合在一起构建全面的程序员度量数据集。对于较小的团队,有一个观测员应该就可以。对于更大的团队,多个观测员或许可以提高统计精度,这跟职业比赛是一样的。
由程序员担任他们自己的观测员,来每天或每周填写他们个人的统计表也是可行的。在一些非常小的团队中,这可能是最佳选择甚至是唯一的选择。在由程序员担任他们自己的观测员的地方,可以保证他们一定会提供精确的信息,因为他们知道这个数据可能最终会在整个团队中共享。一般来说,我们可以期望观测员的使用可以提供非常精确的数据,只要这些度量结果不会用于分级,并且只要度量能够公平精确地表示程序员正在做的工作和软件开发团队的业绩。总的来说,观测员和统计表可以帮助我们更行之有效地收集需要的数据。