《程序员度量:改善软件团队的分析学》一数据选择

简介: 本节书摘来华章计算机《程序员度量:改善软件团队的分析学》一书中的第2章 ,Jonathan Alexander 著 张燎原 周峰 张刚 宋励奋 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

数据选择

为度量寻找合适的数据,有点像科学,有点像艺术,但更多的是试错。当决定使用哪些数据时,我们会面对很多选择。显然,你可以提出多种多样的测度,能获得相同的结果,或者发生几乎等同的一件事。例如,要决定一个程序员的质量测试有多好,我们可以选择去测量编写的测试用例数、代码的测试覆盖率,或者发现的bug数量和严重性。我们也可以测量所有这些。一般来说,当我不得不在多个可能使用的测度中去选择时,我基于以下经验法则来决定最优方案:
选择最容易获得的数据。
选择最容易让非程序员解释和理解的数据。
第一条经验法则或许平淡无奇,但第二条法则看起来就有点古怪了。为什么要关心非程序员能够解释和理解那些测度和数据呢?这条法则对清晰性、简单性进行了专门测试,也就是说非程序员(例如测试人员或者技术作者)应该也可以理解那些数据,并且知道这个数据是怎样关联到软件开发的。因为好的度量的一个关键好处是它们具有很好的描述性,以及随之而来的沟通改善和合适行为的驱动。度量和之后的数据能够易于理解是非常根本的。这条法则可以重写为“选择更简单的测度”,或者只是“保持简单”。但是我喜欢用非程序员能够解释和理解的测度和数据进行测试。
例如,考虑如何测量代码的复杂度。一个办法是通过源代码的统计分析,产生可供分析的各种数据,比如关键字频度、方法的长度、嵌套层级和圈复杂度。你也可以通过程序员用于改变特性、修复bug的时间,或者一定时间里bug出现的比率来测量代码复杂度。就我而言,相对于自动代码分析,我更赞成通过花费的时间和发布后的问题数量来测量复杂度。这是因为这个数据一般更容易获得,并且更易于让哪些非程序员或类程序员解释和理解。在我看来,这些数据能够让度量也变得更易于解释和理解,从而也更强大而有用。

相关文章
|
机器学习/深度学习 Linux 决策智能
双系统出现grub rescue修复方法
双系统出现grub rescue修复方法
1275 0
|
数据采集 SQL 分布式计算
常用的数据集成ETL工具有哪些?
六种常用的数据集成ETL工具
常用的数据集成ETL工具有哪些?
|
编解码 算法 API
国产多通道肌电采集芯片及肌电模块
唯理WLEC3医疗级肌电模块,采用自研WLM128芯片,具备低功耗、高精度特点,适用于肌电采集及手势识别等应用。模块内置滤波、降噪算法,支持蓝牙/串口数据传输,兼容多种通道配置,提供云端API深度分析,确保高效精准的数据处理。
|
存储 安全 Cloud Native
阿里云推出创业者计划介绍,加入计划可获得最低3500元,最高100万抵扣金
阿里云创业者计划是面向中小企业推出的一项扶持计划,致力于为中小企业构建智能时代的核心竞争力,同时聚合众多知名投资机构、加速器、孵化器和大企业创新力量,向中小企业提供全方位的赋能与服务。成功加入计划后,阿里云将提供最低3500元、最高100万元的上云抵扣金,让中小企业享受免费的云资源和技术服务,助力初创企业开启智能时代创业新范式。
阿里云推出创业者计划介绍,加入计划可获得最低3500元,最高100万抵扣金
石英晶体是如何产生振荡的?以及cpu倍频的由来
本文是关于石英晶体振荡器的学习笔记,适合计算机科学与技术背景的读者。内容涵盖了石英晶体振荡器的基本原理,包括压电效应、等效电路、谐振频率,以及不同类型振荡器的特性和参数。此外,还讨论了石英晶体振荡器的小型化、高精度、低噪声、低功耗发展趋势,并列举了它们在石英钟、彩电和通信系统中的应用。最后提到了处理器倍频的概念,解释了其原理和实际应用中的限制。
石英晶体是如何产生振荡的?以及cpu倍频的由来
|
存储 关系型数据库 MySQL
PolarDB的特点
【5月更文挑战第13天】PolarDB的特点
687 1
|
自然语言处理 编译器 程序员
【Qt底层之 元对象的编译】Qt 元对象系统及其编译流程解析
【Qt底层之 元对象的编译】Qt 元对象系统及其编译流程解析
862 4
|
机器学习/深度学习 消息中间件 数据可视化
OpenCV入门(C++/Python)- 使用OpenCV调整尺寸大小(三)
OpenCV入门(C++/Python)- 使用OpenCV调整尺寸大小(三)
836 1
|
tengine 应用服务中间件 nginx
|
前端开发 JavaScript API
前端封装库/工具库的编辑器之TinyMCE
在现代前端开发中,富文本编辑器是一个非常重要的组成部分。其中,TinyMCE 是一个备受欢迎的 JavaScript 富文本编辑器库。
669 1