《程序员度量:改善软件团队的分析学》一案例分享:度量和怀疑论者

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

案例分享:度量和怀疑论者

我们团队里一位满头华发、经验丰富的程序员给了我一个脸色,仅仅扬了扬眉,给了一个假笑。是的,这个脸色是在告诉我,把度量告诉那些年轻的家伙吧,看他们打算怎样帮助提升我们的团队,你们做你们的,我不会搞砸什么,他的沉默表明了他的观点。我不想说什么,但是他仰起的下巴让我知道他并不买账。他是一个怀疑论者。
一个月过去了。我们召开了团队会议,我给每一位同事展示了一组公司和产品的度量。它展示了我们的产品目前情况怎么样,我们怎样与竞争产品(就我们知道的而言)相比较,已完成的单个特性如何。我们关注那些在过去6个月里实现的产品特性。每个人都非常投入。这是我们整年中开过的最活跃的一个会议。即使我们满头华发的程序员也提出了很多看法。
又一个月过去了。我们召开了另一个团队会议。在这次会议中我们着眼于公司和产品度量的更新,但是我们同样着眼于从我们近几个sprint(我们使用敏捷方法,因此我们工作的增量是“sprint”)提取的团队度量。我们刚刚发布了一个新的特性。我们思索团队度量如何才能够关联到新特性的接受度、哪些度量是重要的及其原因。那位满头华发的程序员说实现最后一个sprint中特性的工作的复杂度太高,他预计我们的测试或许有些一些问题没有发现,并且我们可能预见有不少的问题会在最终产品中发现。尽管我们的QA经理指出所有计划的测试及完整的回归测试都完成了,但我们都认为有些事值得关注。
又过去了几个月。现在我们拥有关于新特性客户接受度的良好数据,虽然不是十分壮观惊人,但很确凿,并且在产品中发现了一些问题。我们的程序员是对的。相对其他我们跟踪过的特性来说,这个特性的问题的比率和复杂度明显比较高。大多数的问题已经在那个点上修改掉了,但是团队依旧做了记录以便于未来考虑。第一次,我们同样开始考虑个体程序员的度量。我们考虑了在sprint中工作的复杂度,包括产品特性开发和产品bug的修复。我们考虑了每个程序员处理的打断事件,并且我们也考虑了每个人负责多少部分的代码。我们考虑了程序员花了多少时间帮助他人,这称为“助攻”。我们也考虑了基于团队收集的度量。我们讨论这些度量怎样可以关联到团队目标、团队的成功、产品的成功和公司目标。我们同意在接下来的月份继续关注这些度量,看我们可以从中学到什么。
有些有趣的度量显现了出来,一些团队成员对它们提出了自己的看法。例如,有一部分程序员有非常高的工作负荷,但是他们负责的事项的平均复杂度又不高。其他程序员又刚好相反,负责高复杂度但是更小工作负荷的事件。我们没有从中得出什么结论,只是发现这非常有趣,并且说出心中的疑惑:这看起来分布不均的任务复杂度对于团队来说是否是件好事。另一个显著的事实是,当其他程序员没有提供任何协助时,一些程序员拥有非常多的“助攻”。我们讨论了怎样度量这个,请主管来扮演观测员。在这一点上,看起来大家都没有问题。那位经验丰富的程序员什么也没有说。
然而,在两天后他走进了我的办公室。“Dang,”这位程序员说道,“一群伙计对那些年轻人帮助了很多。我没有任何“助攻”—— 我没有做这些。我只是想让你知道我明白了。我肯定会去做我的那一部分。”就是那样。
又一个怀疑论者被同化了。

相关文章
|
开发工具
阿里云百炼应用中心--QuickStart
针对阿里云最新推出的大模型平台:百炼,试用其应用中心的功能,通过Step By Step详细演示该产品的使用。
1381 1
|
JSON API 开发工具
gitlab如何实现批量clone仓库
在Windows环境下,通过GitLab Group ID获取项目URL的步骤概要: 1. 使用API `http://gitlab域名/api/v4/groups/你的group id` 获取JSON,提取`http_url_to_repo`。 2. 在Sublime中处理JSON,用快捷键选中并提取所有`http_url_to_repo`值。 3. 保存到h.txt,去除其他信息,仅保留URL。 4. 创建e.bat文件,内容为克隆h.txt中所有URL的批处理命令。 5. 放置h.txt和e.bat在同一文件夹,运行e.bat批量克隆仓库。URL含凭证,便于后续操作。
896 8
|
大数据 UED 开发者
实战演练:利用Python的Trie树优化搜索算法,性能飙升不是梦!
在数据密集型应用中,高效搜索算法至关重要。Trie树(前缀树/字典树)通过优化字符串处理和搜索效率成为理想选择。本文通过Python实战演示Trie树构建与应用,显著提升搜索性能。Trie树利用公共前缀减少查询时间,支持快速插入、删除和搜索。以下为简单示例代码,展示如何构建及使用Trie树进行搜索与前缀匹配,适用于自动补全、拼写检查等场景,助力提升应用性能与用户体验。
341 2
|
中间件 编译器 数据处理
在web开发中应用管道过滤器
【9月更文挑战第1天】本文介绍管道-过滤器架构将数据处理流程分解为一系列独立组件,通过管道连接,适用于数据流处理如图像处理、编译器设计等。通过具体实例说明了Gin如何有效支持管道-过滤器风格的设计,构建高性能Web服务。
361 10
|
小程序 API PHP
零成本搭建个人 APP 和小程序后台
虽然网上也有很多人介绍这俩平台的玩法,但都是 2024 年以前的文章,有些平台最新的修改,和自己踩到的坑而别人没提到的细节,我还是想记录一下。
474 9
|
人工智能 搜索推荐 数据库
实时云渲染技术赋能AIGC,开启3D内容生态黄金时代
在AIGC技术革命的推动下,3D内容生态将迎来巨大变革。实时云渲染与Cloud XR技术将在三维数字资产的上云、交互及传播中扮演关键角色,大幅提升生产效率并降低门槛。作为云基础设施厂商,抓住这一机遇将加速元宇宙的构建与繁荣。AIGC不仅改变3D内容的生成方式,从手工转向自动生成,还将催生更多3D创作工具和基础设施,进一步丰富虚拟世界的构建。未来,通过文本输入即可生成引人注目的3D环境,多模态模型的应用将极大拓展创作的可能性。
|
存储 算法 编译器
【C语言】register 关键字详解
`register` 关键字是C语言中的一种存储类修饰符,它用于提示编译器将变量存储在CPU寄存器中,而不是在内存中。这种做法旨在提高变量访问的速度,因为访问寄存器比访问内存快得多。
530 1
|
运维 Java Devops
阿里云云效操作报错合集之在流水线增加单元测试报错,是什么导致的
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
Linux 测试技术
Linux内核版本要求
【8月更文挑战第9天】Linux内核版本要求
479 5

热门文章

最新文章