写点什么

敏捷了,而且还是离岸敏捷,是自找麻烦吗?

  • 2008-10-12
  • 本文字数:1361 字

    阅读完需:约 4 分钟

Kevin Coleman 讲述了他与某声称自己敏捷的离岸开发团队合作的故事,并提及其中的痛苦与烦恼。该文章已经发布在 Agile Journal 的九月刊上。几位读者也用他们自己的经历证实了 Kevin Coleman 的说法。那么,就在现今的业务现实中,敏捷方法能够成功地用于离岸团队吗?

其中,Kevin 所述的一个重要的假设是:

大多数离岸开发组织以传统瀑布开发方法做为组织的标准开发方法;使用这种传统方法,就要定义一些需要很大规模才能完成的任务,是典型的组织化的项目。这些传统开发技术与敏捷的基本观念背道而驰。

在这样的前提下,Kevin 谈到一堆很常见(且昂贵的)问题:

离岸开发团队拿到一份清单,然后分析需求,评估其大小及复杂性,以及每个条目需要多少努力才能完成。基于这些评估以及在岸与离岸开发团队的规模,定义并推 敲哪些功能可以在这个 Sprint 中交付。一旦确认了这些交付物,开发过程就开始了。问题也就开始出现了…… 随着演示以及概念确认等这些敏捷过程中所说迭代式发掘过程,新需要也就不断被发现了。而随着重写代码、评估这些新需求,以及计划的变更,都会增加成本。

但是

这种情况在好转。很多混合型(敏捷与传统)项目使用时间盒管理技术,并称之为“敏捷”。时间盒技术就是指在固定的时长中完成一件或一系列任务。一旦确定了 时间盒,开发人员将在这段时间里尽其所能进行工作。因此,与典型瀑布项目中那种一直工作到某(些)任务完成不同的时,此时离岸团队只工作某个固定时长(比 如说,五天)。而五天后,要么那些初始计划的工作被完成了,要么就被放回到 Backlog 中以后再完成,或者完成了那些替代了原有这个 Sprint 中所计 划的工作。之所以说这个 Sprint 结束了,是因为实现这些功能的成本已经发生了变化,需要由在岸团队重新评估。

另一种混合方法就是使用功能演示代替了传统的 Reviews。在工作过程中,离岸团队得到来自在岸团队、业务人员 /SME 和关键项目干系人的反馈。而这些 反馈要么被加入到这个 Sprint 中,要么会因明显增加工作量而推迟实现,将其放回 Backlog 中,等待在后来的 Sprint 中实现。如果这个反馈需要 在某个特定时间内完成,那么你只能猜测,并将其放到这个 Sprint 的任务列表中,对其进行评估,并安排其优先级,还要调整你的开发计划。

根据 Kevin 所述,当一个敏捷团队与一个非敏捷的离岸团队合作时,几乎任何事情的成本都提高了,而其根源似乎是:很多离岸团队并非真正的敏捷。该文所有的评论者似乎都有相似的经历:

非常赞同“在两个公司合作完成一个或两个项目并建立信任之前,结合这两种方法的风险很大”这一观点。我还没看到过哪个传统瀑布型组织很顺利地完成敏捷项目。通常,你不得不决定采用哪些两公司各自所坚持的方法,从而创造出一种混合型过程。

还有,

提醒那些使用敏捷方法的离岸开发者,你要确保开发人员认识到:离岸开发人员消耗的是你的事业、金钱和时间。当开发者开始干活时,全面的计划就要出台。而此时如果你被排除在外,还没有持续沟通机制的话,那么你的麻烦就来了。

还有人提到,

此时此刻,我正遇到这个问题——很高兴我不是唯一的一个。

InfoQ 的读者,你有同样的经历吗?如果有,提醒您留意的是,该文中对于敏捷离岸开发的大部分内容是持肯定态度的。——这是个错误的信息呢,还是 Kevin 落到了不幸的少数派中?

查看英文原文: Agile and Offshore: Asking for Trouble?

2008-10-12 20:031105
用户头像

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

关注

评论

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

高效学习:如何制定有价值的学习目标

石云升

学习 28天写作

AQS之ReentrantReadWriteLock写锁

伯阳

读写锁 ReentrantReadWriteLock 多线程与高并发 lock

OMG,阿里大佬Kafka手写实战记录,这也太香了

Java架构之路

Java 程序员 架构 面试 编程语言

Java虚拟机知识 - JVM入门

小马哥

Java JVM 架构师 Java虚拟机 七日更

深度 | 阿里云蒋江伟:什么是真正的云原生?

阿里巴巴云原生

云计算 容器 运维 云原生 k8s

关注直播 解锁采集器新功能

滴滴云

运维 可观测性 直播技术 滴滴夜莺

全球城市ZoneId和UTC时间偏移量的最全对照表

YourBatman

GMT UTC ZoneId 时区

Pulsar vs Kafka,CTO 如何抉择?

Apache Pulsar

大数据 pulsar 消息中间件

FFMpeg解码API以及在解码过程中存在的丢帧问题

wangwei1237

ffmpeg 视频解码

人设崩塌的美国生物实验室

脑极体

持币生息钱包APP系统开发|持币生息钱包软件开发

系统开发

惊悚,单个java进程占用700%的CPU

万里无云

Java 后端 cpu

HTML(六)——html表单

程序员的时光

程序员 大前端 七日更 28天写作

有人相爱,有人年少财务自由,有人数据结构都背不出来

Java架构师迁哥

Java 程序经验小结:避免使用终结方法

后台技术汇

28天写作

区块链数字货币钱包系统软件开发|区块链数字货币钱包APP开发

系统开发

架构师 3 期 3 班 -week9- 总结

zbest

总结 week9

对微服务架构设计实践中若干问题的探讨

xcbeyond

微服务 28天写作

厉害!腾讯T3-2都还在学的微服务+MySQL+Kafka+boot2.x+虚拟机PDF

Java架构之路

Java 程序员 架构 面试 编程语言

如何开发一个完善的Kafka生产者客户端?

李尚智

kafka 架构 中间件 消息中间件

2020 总结 | VoltDB的亮点,你了解多少?

VoltDB

数据库 物联网 VoltDB

史上最全!阿里巴巴2021年最新最全500道Java后端面试大全(值得收藏)

Java 编程 程序员 面试

[JetPack] LiveData源码解析

Changing Lin

android 技术 JetPack

深度模型的日志异常检测,还有谁不会?

华为云开发者联盟

运维 日志 网络 AIOPS 系统

还热乎的面经

书旅

百度 面试 面经

k8s 上运行我们的 springboot 服务之——springboot服务https请求

柠檬

Java k8s https Istio,

架构师 3 期 3 班 -week9- 作业

zbest

作业 week9

DCache 分布式存储系统|安装部署与应用创建

TARS基金会

缓存 分布式 微服务 存储 TARS

你跟涨薪只差这份Java核心知识点文档,读懂它你就是技术大佬!

Java架构之路

Java 程序员 架构 面试 编程语言

从零开始学java第一天(为报训练营做准备)

落曦

Redis中哈希分布不均匀该怎么办

Java 数据库 编程 程序员 面试

敏捷了,而且还是离岸敏捷,是自找麻烦吗?_研发效能_Amr Elssamadisy_InfoQ精选文章