最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

实践敏捷很容易:为期两天的“迷你”敏捷项目

  • 2008-04-30
  • 本文字数:1900 字

    阅读完需:约 6 分钟

最近,Google Group 上的 AgileChina 讨论组异常活跃,讨论内容包括如何开始实施敏捷,实施什么样的敏捷以及如何处理实施过程中面临的各种问题。虽然讨论非常热烈,貌似论战居多数,可供参考案例几乎没有。咖啡屋的鼠标认为“案例才素王道”,而徐毅也提及:

……这也有一些困难。应该很多企业都有保密的需求,很多的信息是不能随意透露的,想要分享我们的案例的话,需要做更多的处理,剔除敏感的信息,还要保证能够体现发现、分析、解决问题的整个思路,不容易。。

那么,案例从哪来呢?十二人组成的敏捷团队在两天内能又做些什么呢?对于这个问题,Thoughtworks 首次在北京举办的“Code Jam”活动可以算是一个不错的例子。这次 Code Jam 只能算一个超小型的敏捷项目,其目标是为乡村教育促进会(一个国际非盈利性组织,致力于通过素质教育改善中国农村地区儿童的生活)开发一个内部资源共享平台,以便分布在三个省份(山西、安徽和山东)的教师可以通过网络分享他们的教学计划和教学方法,互相学习交流。什么是“Code Jam”呢?来自 Thoughtworks 的咨询师李默如是说:

Code Jam 是 ThoughtWorks 特别的活动之一,在很短的时间内为客户交付可用的软件(或原型),团队经过短期高强度的锻炼,可以对开发过程和开发技巧都做一些反思。

本次项目中,除一名客户以外,其他成员都来自 Thoughtworks,共计十三名,其中部分人员并未全程参与。人员组成为四名分析人员(三名 BA 和一名 QA)以及九名开发人员。此项目历时两天半,其中一名 BA、一名 QA 和客户用半天时间一起讨论需求,而此时其他人员完全不知道要做什么。在随后的两天,客户与所有团队成员在一起工作,从零起点开始,共同开发项目,最终由客户对项目进行验收。

作为这个公益项目的客户,乡村教育促进会的 IT 负责人 Steven 对项目的进度和结果表示非常满意,他说到:

仅在三天就取得这样的成果,真是让我感觉吃惊……对我来说,这是一个非凡的体验,我不但学到了很多东西,而且结识了很多朋友……

从团队角度来看,团队成员对所用的敏捷软件开发方法都很熟悉,了解每个敏捷实践的意义所在,并认同这些实践。尽管大多数人没在一起工作过,但也可算是磨合过的敏捷团队。而从项目角度来看,客户在与 BA 和 QA 共同讨论之前,对项目仅有大致的想法,并没有详细的需求说明,交付时间也仅为两天。

所以根据团队组成及项目的特点,团队决定采用改进后的敏捷开发方法,也应用了诸多的敏捷开发实践。

  • 卡片墙:通过最开始那半天的讨论,分析人员与客户一起写下高优先级的用户故事(仅有简单描述和不完整的 Acceptance Criteria),并放在墙上。
  • On-site 客户:客户与开发团队在一起,有需求不清等问题可随时讨论,并排定优先级。客户想到需求,可以随时写下故事卡片,放在适当的优先级上。当开发人员正在开发高优先级的故事时,分析人员与客户会详细讨论低优先级的故事,敲定 Acceptance Criteria。
  • 测试驱动的开发(TDD):由于是 Web 应用,而 RubyOnRails 特供了很好的框架和测试环境,团队决定使用它来做 TDD。
  • 站立会议(Standup meeting):由于时间只有两天,所以团队决定每天两次站立会议,增进团队的沟通交流。
  • 回顾会议(Retrospective):用时仅五分钟左右,只能算是迷你回顾会议。团队成员仅把 Well done、Can do better 以及 suggestions 写出来,大家通读后确定没有疑问就完成。没有常规的投票和讨论。
  • 结对编程(Pair programming):通过交换 Partner 来传递代码知识。很多成员在两天内换了三次 Partner。
  • 小步快跑:由于项目只有两天,功能交叉较多,所以只有重构和尽快提交代码,才能保证尽早发现冲突和问题。最后,该项目共计有 192 次 checkin。
  • 持续集成:使用 CruiseControl.rb 做为持续集成工具。频繁的提交势必通过某种自动化的手段来检测结果。
  • Showcase:每天结束前,全部成员与客户坐在一起,做当天的 Showcase,分析人员会将那些处于"QA passed"状态的用户故事展示给客户,客户也会试用这些功能。

当然,其中也减少了一些环节。例如:

  • 没有故事的点数评估。由于刚组成团队,大家对团队的整体开发效率没有概念,做评估没有什么宜处,而当得到开发效率时,项目已经结束了。
  • 没有迭代周期。由于时间限制,所以取消了迭代。开发人员只要从高优先级的用户故事开始做起。

Thoughtworks 员工表示,将公布该项目的视频,今后也会继续举行此类活动,并将邀请非 Thoughtworks 员工参与。关于该项目的情况,您可以参见项目参与者的 Blog:冰云 Dreamhead Ricky lui

尽管此项目不同于那种公司间有合同条款的正式项目,但也许并不妨碍它成为实践敏捷、讨论问题、寻找答案的案例。作为 InfoQ 的热心读者,您对其有什么想法,欢迎参与讨论。

2008-04-30 09:18805
用户头像

发布了 100 篇内容, 共 20.9 次阅读, 收获喜欢 5 次。

关注

评论

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

微信多开 WechatTweak for Mac(微信多开、消息防撤回工具)

iMac小白

WeChatTweak 微信多开

为什么要学音视频?

X2Rtc

开源 音视频 RTC 就业

免费活动-11月4日敏捷武林上海站 | Scrum.org CEO 亲临现场

顿顿顿

Scrum 敏捷开发 敏捷项目管理 敏捷活动 scrum活动

基于多向量检索器的多模态 RAG 实现

Tiger Wang

多模态 LLM huggingface 大语言模型 langchain

为什么C4D能成为电商设计的王者?

Finovy Cloud

C4D 电商设计

BetterDisplay Pro Mac(显示器管理工具)激活版

iMac小白

BetterDisplay Pro下载 BetterDisplay Pro破解版

应用容器化转型系列-容器部署的常见形态

品高云计算

深度解读MediaBox SDKs如何实现技术架构升级

阿里云视频云

云计算 视频云

LLM 大语言模型应用的分段策略

Tiger Wang

LLM 大语言模型 langchain

APP移动出海必备神器,MobPush提供海外消息智能推送一站式解决方案

MobTech袤博科技

智能推送

都说在边缘落地视频智能分析难,但是这次有了大模型!

Baidu AICLOUD

边缘计算 大模型 边缘云

一招教会跨国企业如何解决跨境数据传输的丢包和延迟问题

镭速

跨境数据传输

数智化推送助力用户精准分层,MobPush是如何实现用户价值变现的

MobTech袤博科技

智能推送

腾讯Ckafka队列使用测评

i查拉图斯特拉如是说

kafka 消息中间件

.NET CORE 属性DI注入

gogo

企业如何安全跨国传输30T文件数据

镭速

跨国数据传输 跨境数据传输

Redis管道技术瞬间提升系统性能,速度翻倍!

高端章鱼哥

redis 管道技术

PostgreSQL基于Patroni方案的高可用启动流程分析

谐云

第13期 | GPTSecurity周报

云起无垠

国内有哪些做的比较好的云教室厂商?

青椒云云电脑

云教室 云教室厂商 云教室解决方案

性能卓越 全栈自主 HashData与华为金融数仓一体机联合方案全面解读

酷克数据HashData

云教室如何部署?云教室使用教程

青椒云云电脑

云教室 云教室厂商

Kafka 在分布式系统中的 7 大应用场景

越长大越悲伤

Java kafka

Navicat Premium 16 for Mac v16.2.9中文激活版

iMac小白

Navicat Premium下载 Navicat Premium 16

​  iOS自动混淆测试处理笔记

雪奈椰子

推送内容有误怎么办?MobPush撤回/取消推送为您排忧解难

MobTech袤博科技

智能推送

博睿数据亮相GOPS全球运维大会上海站!

博睿数据

Kubernetes跨StorageClass迁移,切换Rainbond默认SC

北京好雨科技有限公司

云原生 #Kubernetes# 企业号10月PK榜

DxO PureRAW for Mac(RAW照片处理器)v3.6.2中文激活版

mac

苹果mac Windows软件 DxO PureRAW raw智能照片处理软件

Downie 4 for Mac(视频下载工具)中文破解版

iMac小白

Downie 4 Mac版 Downie 4下载 Downie 4破解版

低代码助力企业数字化升级

这我可不懂

数字化转型 低代码平台

实践敏捷很容易:为期两天的“迷你”敏捷项目_研发效能_乔梁_InfoQ精选文章