《程序员度量:改善软件团队的分析学》一数据选择-阿里云开发者社区

开发者社区> 华章计算机> 正文

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

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

数据选择

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《团队软件过程(修订版)》—第1章1.5节TSPi过程
每个脚本都从相应活动的整体目的说明开始,举例来说,这些活动可以是开发需求文档、产生设计或者执行测试。每个脚本还包括入口准则和出口准则。入口准则详细说明了开始一个脚本之前要做的准备工作,出口准则详细说明了结束一个脚本时要完成的工作。
1077 0
《团队软件过程(修订版)》—第1章1.7节小结
TSPi过程采用了周期性开发策略。从一个小的功能集开始,小组能快速开发出产品的第一个可运行版本。之后,他们就能更好地规划和开发第二个周期的产品。如果有时间进行第三个周期,学习过程就能得到进一步的强化。周期性开发策略与成功的大型软件开发组织遵循的开发过程非常类似。
853 0
玩转大数据系列之二:数据分析与处理
经过了数据采集和同步之后,就可以在阿里云上进行数据分析和处理,来玩转您的数据了。本文向您介绍在阿里云大数据各产品中,以及各产品之间怎样来完成您的数据处理和数据分析。
10594 0
一个内存增长问题的分析和处理(二)——valgrind工具的用法
valgrind是linux下对C++和C程序进行内存泄露检测的工具,除了内存检测,valgrind还提供了很多其他的功能,这里主要介绍下valgrind的内存检测的功能。   首先是文件的下载,valgrind的官方网址是http://valgrind.org/,最新版本的valgrind是3.9,下载地址如下:http://valgrind.org/downloads/。
995 0
《团队软件过程(修订版)》—第1章1.4节TSPi的结构和流程
TSPi从团队制定开发策略开始。首先确定在第一个周期中要开发的最小合理产品,然后,估算在每个后续周期中要增加的产品功能的规模。这种方式基本可以保证你能完成最终产品的可运行的前期版本。
1137 0
《团队软件过程(修订版)》—第2章2.1节项目为何失败
通过指导团队一步步完成制定策略和计划的过程,TSPi告诉团队如何处理压力。在这个过程中,团队分析工作需求,设计工作策略,估算产品规模,然后制定工作计划。
953 0
华为nova3i如何选择一款好用的备忘录提醒软件?
华为nova3i这部手机主打年轻人市场,价格适中,性价比超高,高颜值、自拍功能强大,一度成为很多学生党的首选。 这不,开学了,表妹丢弃了之前已经卡顿的手机,换上了这款华为nova3i,用来拍合照、拍风景,多个软件同时运行不卡顿,简直不要太好。
1504 0
每个程序员都必须知道的8种通用数据结构
数据结构是一种特殊的组织和存储数据的方式,可以使我们可以更高效地对存储的数据执行操作。数据结构在计算机科学和软件工程领域具有广泛而多样的用途。
676 0
企业打开云HBase的正确方式,来自阿里云云数据库团队的解读
一、HBase的历史由来 HBase是一个开源的非关系型分布式数据库(NoSQL),基于谷歌的BigTable建模,是一个高可靠性、高性能、高伸缩的分布式存储系统,使用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
3918 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载