写点什么

TFS 团队的敏捷转变:向三周一个 Sprint 进军

  • 2012-12-10
  • 本文字数:1539 字

    阅读完需:约 5 分钟

Buck Hodges 认为,过长的发布周期导致 TFS(Team Foundation Server)团队养成了不良的开发习惯,然而光靠生搬硬套 sprint 来缩短发布周期是不够的,还需要配合其他一些软件计划和软件开发方面的改进。

起初,TFS 要好几年才发布一次。微软的 Buck Hodges 说,这曾让 TFS 的开发人员养成了不良的习惯。当交付日期来临,开发人员则往往将没有完成的功能赶鸭子上架。开发人员认为,与其让某个功能等两三年再上线,不如在漫长的维护阶段再去修复遗留的缺陷。于是,TFS 带着两千多个缺陷上线就成了司空见惯的事了。

另一个问题是因特网的时效性。享受在线服务的用户往往想要获得及时有效的更新,一旦硬是让他们等着打补丁,他们很容易感到失望。所以在计划 TFS 网络版时,如果告诉客户要等几年才能有个更新版本出来,那绝对是痴人说梦。(注:网络版刚刚通过了 beta 测试,现在名为 Team Foundation Service 。)

计划

发布周期短并不意味着缺乏方向。TFS 研发工程师会从一块标有未来 18 个月他们大致要完成的工作的故事板开始入手,随后分解出六个月的主干计划,并将集中开发此计划中的某个选定的应用程序模块。

TFS 团队由 130 名成员。他们被分成多个功能组,各组负责各大领域,如版本控制、工作项跟踪、自动化构建等。每组由 12 名成员组成(6 名研发工程师,5 名测试工程师以及 1 到 2 名项目经理),各自为政,管理自己的功能待办事项列表。

为了确保市场需求和工程研发不冲突,很多功能可能已经发布到了 TFS 但并未被启用。这有利于进一步测试,也能把功能积攒起来,发布一个大版本。

Scrum

从 TFS 2012 开始,团队就开始使用 Scrum。他们的 Scrum 采用三周为一个 Sprint。他们觉得短一点的周期相对更有利于全局掌控,而较长的周期很难让团队及时修正错误,从而导致相似问题重复发生。

选择 Scrum 的另一个原因是可以通过真实的使用场景来测试软件。微软认为 Scrum 在他们客户中最流行。

Sprint 开始和结束时,团队都会发送邮件公告天下,再三强调跨团队的沟通。Sprint 开始时的电子邮件概括了每个团队将要完成的故事,而完工邮件则包含了已完成功能的演示。

发布节奏

尽管 TFS 采用三周为周期的 Sprint,发布可能仍旧保持四个月一次。这意味着每个发布都会非常庞大而且充满隐患。为了缩减每个发布的规模,他们曾尝试月度发布,但这又和 Sprint 的周期太接近了,最终他们决定合二为一,都是三周为一周期。

要这样做,就得防止等到维护期再去修复缺陷的思想死灰复燃。每三周 Sprint 之后,都会有一周的核实确认。它不是为了缺陷修复,而是为了确保任何无法运行的功能都必须被禁用或拿掉。核实确认的那一周通常和下一个 Sprint 的第一周并行进行。

测试

如果某个功能开发需要整整三周,也就是整个 Sprint 的时间,那么它同样会在 Sprint 发布时被禁用。在下一个 Sprint 中,测试人员将验证它,一旦完全通过则在部署时解禁。而那些只需要一两周就能实现的小功能则可以在单个 Sprint 中完成测试和发布。

所有测试都是自动的,并且滚动触发。现在跑完所有测试需要 2 到 3 个小时。由于测试周期比较长,所以签入的代码并不强制要求通过所有测试。取而代之的是,他们将 TFS 设置为只要求签入的代码可以顺利地被构建即可。下面是开发人员签入代码后收到的邮件的例子:

分支

TFS 的网络版(the Service)和客户安装版(the Box)使用的是相同的基础代码。此外,大多数功能都是在主分支上进行开发的。只有区别显著的功能才会在另外的分支上开发。并且只有当这个功能完成后,在下一个 Sprint 开始的时候才会把分支合并回主干上。

Sprint 结束时,代码会从主分支发布到产品库,也会每个季度更新一次分支。这些分支会继承上面提到的每日构建的版本号。

你可以在九频道观看完整视频讲解

查看英文原文: How TFS Embraced 3-Week Release Cycles

2012-12-10 10:072559
用户头像

发布了 114 篇内容, 共 36.6 次阅读, 收获喜欢 2 次。

关注

评论

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

实力再获认可!焱融 AI 存储 F9000X 荣获中国 IDC 产业创新技术产品奖

焱融科技

人工智能 IDC 智算中心 全闪存储

CleanMyMac有必要买吗?达人深度体验后告诉你答案

阿拉灯神丁

软件包 苹果软件精选 mac系统维护 CleanMyMac X中文

百剧计划:百度短剧创新引擎,赋能短剧新未来

极客天地

百家号年度盛典:聚焦创作者成长,乘风计划再升级

极客天地

Java Web学生自习管理系统

不在线第一只蜗牛

Java 前端

得物基于AIGC生成测试用例的探索与实践

得物技术

AI 效率提升

人形机器人赛道已挤满车企和自动驾驶行业精英

机器人头条

机器人 人形机器人 具身智能

无限制!个人开发者发布Coze扣子智能体到微信小程序教程

Ceelog

🎉 夜莺监控突破一万 star,这是汗水,也是鞭策

巴辉特

夜莺监控 运维监控 IT监控 开源监控

快手动效渲染引擎Crab,解锁“游戏化动效”开发新方式!

快手技术

Java 前端 动效

做TikTok直播为什么需要稳定安全的海外直播网络

Ogcloud

海外直播专线 tiktok直播 tiktok直播专线 海外直播网络 tiktok直播网络

Sense 对话语音 AI:自动电话呼叫加快招聘流程;灵初智能发布端到端强化学习具身模型,实现长程任务泛化

声网

这两天在改BUG,下午就被通知在改进优化了...

Summer

Java 程序员 面试 架构师 大厂

焱融 AI 存储荣登 「2024 年度 AI 最佳技术服务商 TOP 10」榜单

焱融科技

AI 全闪存储

智慧酒店产业发展中的新突破——时序数据库TDengine与广东粤万润科技的深度合作

TDengine

数据库 tdengine

亚马逊直播网络不好的影响及改善方法

Ogcloud

海外直播专线 直播专线 亚马逊直播 亚马逊直播网络 亚马逊直播专线

为什么企业需要 IT 资产管理软件?

ServiceDesk_Plus

资产管理 IT资产管理

用户态文件系统在高性能文件存储中的探索实践

焱融科技

高性能存储 用户态文件系统

推理模型的“年终考试”,谁是国内目前最好的“o1”?

Alter

AI 大模型 推理模型 大模型应用

甲子光年智库发布《中国 AI 算力行业发展报告》

中昊芯英

gpu 算力 TPU #人工智能

实时告警与性能监控:通过时序数据库 TDengine、taosKeeper 和 TDinsight 实现无缝监控

TDengine

数据库 tdengine

自学记录鸿蒙API 13:Calendar Kit日历功能从学习到实践

李游Leo

HarmonyOS HarmonyOS NEXT

TFS团队的敏捷转变:向三周一个Sprint进军_Scrum_Jonathan Allen_InfoQ精选文章