阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

如何对敏捷实践相关的实验性数据进行分析利用

  • 2007-10-10
  • 本文字数:1175 字

    阅读完需:约 4 分钟

在人们谈到敏捷开发实践的效果时,常常会听到有人这样引用说“在名校 Y 任职的 X 教授,曾经做过一个实验,证明了敏捷实践 Z 比传统的软件开发实践的效率要高 出 20%”。然后我们就会信以为真——因为——它确实是真实的。不幸的是,大多数进行并公布的试验,其结果都不应该被当作是真实世界中的开发项目的产出。 而幸运的是,要判断出你对实验性的结果(不)应该抱有多大的信心还不算太难。

下面是一些有效性标准,你可以用它来快速的判断一下你是否应该期待会得到和实验同样的结果:

外部有效性——也被称作

普遍性—— 可以帮助你判断实验结果是否可以适用于其他的条件。用学生来做结对编程,其结果适用于专业开发人员么?可以干净利落地回答一个字——不。如果你是在商业环 境中,那么用学生作的实验就不能当作参考,因为其应用环境,所构建的软件以及开发人员的经验是截然不同的。实验环境应该和真实世界的应用非常接近。

内部有效性—— 在条件变化的时候,其成因和结果还会是真实的么?例如,结对编程会提高代码质量么?如果一个团队在做结对编程,他们首先编写测试用例,然后用更长的时间来 构建应用——那么我们可以顺理成章的猜想是结对编程提高了质量么?还是会有其他的解释?比如他们花了更长的时间来构建应用这一事实会不会造成质量的差别?

结构有效性——你的度量方式和所研究的概念(结构)是否相一致。你所使用的度量方法,以环路复杂性(Cyclomatic Complexity)为例,它是不是确实能够表示出所评估的概念的质量?如果这里被评估的是设计的话,又会是什么结果呢?

统计有效性—— 样本的范围够不够大?其结果是不是做过大规模的统计分析?如果你看到一个调查报告,上面写着一些真正的开发人员用一星期的时间做了一个实验,结果表明使用 TDD 可以提高设计质量,我们真的能把它当真么?单从这个例子来看,肯定是不能的。一个星期所产出的数据是没法衡量在长达数月或是数年的项目中TDD 的效 用的。

这里可 以找到一个有关评估TDD 效用(在开发速度和设计质量方面)的实验,这个实验实际上就是一些资深开发人员编写了200 多行代码。如果读者意识到了不同类型 的有效性标准,那么这里就可以很容易的看出,如果我们想把实验结果照搬到成千上万(乃至百万)行代码的项目中,那可就彻头彻尾的错了。 在 hacknot 上还有一个非常严谨的实验报告,它对结对编程进行了研究,得出了结对编程比传统的开发方式要快上 15% 的结论。

实际上,如果想要让一个实验结果可以应用于真实世界的项目中,那代价势必是非常昂贵的。用学生做的实验,其结果就只能应用于其他学生身上。用专业 开发人员在有限的时间内做的实验,就不能照搬到长期的开发项目中。如果你从前引用过某些实验结果,请带着新的视角,重新迅速翻一遍那些文章,然后回来跟我 们分享一下你的想法。

查看英文原文 Analyzing Experimental Data Concerning Agile Practices

2007-10-10 00:49686
用户头像

发布了 197 篇内容, 共 52.5 次阅读, 收获喜欢 20 次。

关注

评论

发布
暂无评论
发现更多内容

8款最佳实践,保护你的 IaC 安全!

SEAL安全

安全 IaC

刘对(火线安全)-多云环境的风险发现

火线安全

云安全 云安全技术 云安全研究

向Spring框架学习设计模式

慕枫技术笔记

设计模式 spring框架 7月月更

Java培训 | 详解 Linux 中的权限,这一篇就够了

@零度

Linux JAVA开发

Linux设备驱动1:硬件基础

贾献华

7月月更

leetcode 322. Coin Change 零钱兑换(中等)

okokabcd

LeetCode 动态规划 算法与数据结构

学会使用LiveData和ViewModel,我相信会让你在写业务时变得轻松🌞

编程的平行世界

JetPack Andriod

2022上半年英特尔有哪些“硬核创新”?看这张图就知道了!

科技之家

开源者的自我修养|为 ShardingSphere 贡献了千万行代码的程序员,后来当了 CEO

SphereEx

开源 代码 ShardingSphere

使用强大的DBPack处理分布式事务(PHP使用教程)

峨嵋闲散人

分布式事务 分库分表 读写分离 seata dbmesh

SpringBoot工程创建Swagger文档并自动生成调用代码

百家饭隐私计算平台创业者

JavaScript Spring Boot swagger

龙蜥社区开源 coolbpf,BPF 程序开发效率提升百倍

OpenAnolis小助手

Linux 开源 内核 龙蜥技术 BPF

SAP 智能机器人流程自动化(iRPA)解决方案分享

Jerry Wang

SAP 业务流程自动化 7月月更 企业自动化 iRPA

Fiori 应用通过 Adaptation Project 的增强方式分享

Jerry Wang

前端开发 SAP Fiori SAP UI5 7月月更

JVM有哪些类加载机制?

源字节1号

软件开发

web前端培训Docker入门指南

@零度

Docker 前端开发

60 个前端 Web 开发流行语你都知道哪些?

海拥(haiyong.site)

前端 Web 7月月更

6年技术迭代,阿里全球化出海&合规的挑战和探索

阿里技术

阿里巴巴 最佳实践 方法论 全球化

SpringSecurity的初始化流程

急需上岸的小谢

7月月更

洞态在某互联⽹⾦融科技企业的最佳落地实践

火线安全

漏洞检测 IAST

2022 · 让我带你Jetpack架构组件从入门到精通 — Lifecycle

编程的平行世界

an'droid android jetpack

进入前六!博云在中国云管理软件市场销量排行持续上升

BoCloud博云

云原生 cmp 云管理

焱融看 | 混合云时代下,如何制定多云策略

焱融科技

存储 文件存储 混合云 多云

孔松(信通院)-数字化时代云安全能力建设及趋势

火线安全

云安全 云安全技术 云安全研究

[Ljava.lang.Object;是什么?

okokabcd

Java

介绍一种对 SAP GUI 里的收藏夹事务码管理工具增强的实现方案

Jerry Wang

SAP abap SAPGUI 企业管理软件 7月月更

大数据培训 | Scala语言知识分享,直击面试

@零度

scala 大数据开发

当你真的学会DataBinding后,你会发现“这玩意真香”!

编程的平行世界

JetPack andiod

一文读懂TDengine的窗口查询功能

TDengine

tdengine 时序数据库

研发效能度量框架解读

思码逸研发效能

研发效能 效能度量

陈宇(Aqua)-安全->云安全->多云安全

火线安全

云安全 云安全技术 云安全研究

如何对敏捷实践相关的实验性数据进行分析利用_研发效能_Amr Elssamadisy_InfoQ精选文章