NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

和 Dave Thomas 谈开始实施敏捷时的困难

  • 2009-10-22
  • 本文字数:3933 字

    阅读完需:约 13 分钟

今年敏捷中国大会举办成功,看到各界对敏捷开发的支持,同时相信还有很多公司和团队对开始实施敏捷开发感兴趣。不过亦如很多大师提到,实施敏捷开发是不容易的事情,在敏捷中国大会上InfoQ 中文站编辑Steven Mak 有幸跟Pragmatic Programmers(《程序员修炼之道》)作者Dave Thomas 就此问题做了深入的问题:

InfoQ 中文站:从今年敏捷中国大会上的热烈情况可以看到敏捷开发在中国很受欢迎,不过同时亦有不少团队在实施上遇到困难,您会给他们什么的意见呢?

Dave:实际敏捷开发本身就是不容易的,敏捷讲求纪律,作为敏捷开发人员你必须要比自己惯常地更有纪律,是发由内心的纪律。另一方面,公 司担心失去控制权,传统的做法可能是:“六月前好完成这个!”,但较为实在的敏捷方法则是:“这两周来能完成什么?”,所以是个人以及办公室政治两方面的 问题。

要成功实施敏捷方法一定要由个人开始,我不认为任何人可以单凭空喊“我们来敏捷吧!”就可以开始实施敏捷。任何公司都不能阻止个人成为一个敏捷的开发人 员,你可以先个人使用敏捷方法中推荐的实践,习惯使用他们,并建立所需要的纪律。这样做下来,效果一般则会很显注,会得到公司的注目,可能会跟你说“做的 很好,你是如何做到的?”他们会问你如何做到和为何这样做,那你就可以从这里开始引入。

我知道在美国有公司使用同样的方式做了大一点规模的实施,他们从小团队开始着手建立敏捷开发环境,不用跟公司讨论这方面的实施,因为从公司角度,团队还是 开发同样的东西,过了一段时间,如果实施得宜的话,公司就会注意到这团队:“为什么突然就能准确地交付软件?”,这是管理人员感兴趣的事情,所以我认为与 其跟他们说敏捷有多好,还不如示范给他们看,这是很大的诱因。

笔者按:Jeff Sutherland 曾经也提这类似方法,可参考 InfoQ 上 “ Jeff Sutherland on Scrum and Not-Scrum ”的视频)

InfoQ 中文站:刚才提到由个人做起,不过以我所知在中国很多的实施都是由上至下,由管理层发指示进行改动的,对于管理人员,公司的准备程度上有什么因素需要注意呢?

Dave:考评准备程度这方面我也不太熟识,敏捷开发跟其他方法有一点是很不一样,就是你不能强制让别人敏捷起来的,人们还是需要有渴望才 行。其中一个重要因素是在公司内部推销,让公司所有人都希望采用,这毫不容易,你能做的也只是将信息传递出去,但是只有你自己做得到才能有效推销出去。

另一个问题是向更高级的管理层推销,甚至是顾客。在中国我有联系过的公司当中,很多都是替外国公司做软件的,得要考虑一下他们希望什么,他们对什么有兴趣。

看看印度的软件业,他们很多走向 CMM(笔者按:CMM 已经更新成 CMMI),而且利用这个作为市场推广之用:“我们真的很专 业,我们是 CMMI 五级!”,如果想跟他们竞争,你也可以去拿 CMMI 第五级别,又或者以另一种方式:“我们做过研究,CMMI 不一定能及时适当地替顾客 增值,我们会以敏捷开发方式……”,透过这方法让公司从中突围而出,用作宣传方法。在离岸开发中很多投诉的问题就是沟通很差,但敏捷开发迫使我们有更多沟 通,使敏捷成为公司的优势。

这可能没有正面回答问题,在准备程度考评上,除了亲自尝试之外,我也不知道有什么容易的方法,但如果使用得宜,会有很大满足感的。

InfoQ 中文站:有人说要成功应用敏捷开发,需要很好的开发人员才可以,你觉得如何呢?

Dave:我实在很爱这论点!虽然我完全不明白这是什么逻辑,但十分有趣。

“如果我想应用敏捷开发方式,那我就需要好的开发人员”,那是不是如果我采用其他方法就可以用差的开发人员呢?我从来都不认为在什么情况下可以接受低劣的开发人员。

当我去做顾问服务的时候,看到他们公司开发人员,我希望我可以跟他们说:“炒掉 30% 的开发人员”(但我从来未说过),因为这样其实可以提升效率,我不认为你可以期望在没有好开发员工下能做到什么好东西。

但不要误会,好员工跟巨星是有分别的,一班大师级的开发人员只会花时间在争吵,你需要的是良好的配合,一些好的,一些大师,也需要初级员工以作培训。

任何好的开发过程的核心都是好的员工,在其他行业也不例外,试想想你去到医院,里面有不好的医生那可不可以呢?无论什么行业,你都需要好的员工。

更重要的问题是,我们如何找到好的开发人员?

我们这个行业,从来都没有一个好的方法去培养好的开发人员。我们有大学教授理论,不过学校不知道什么是真正的软件开发,而入了行再重新开始学习编程,我认 为这是不当的方法,你需要一些大师,好的开发人员,和初级开发人员,而我们的责任是使初级的开发人员成为良好的开发人员。这是开发优秀软件的重要因素。

InfoQ 中文站:James Shore 写过一篇“ Decline and Fall of agile ”的文章,他提到很多开发团队只采用部份实践,如 Sprints 和站立会议,而不采用需要的工程实践以开发高质量的软件,你经验中有没有遇过这样的情况?

Dave:我常常看到有些公司只是用一两个敏捷实践就出来说在做敏捷,用各种借口不做其他的。这是不智的做法,方法学设计出来是一并使用 的,其中一个实践其实是另一个实践的安全网。如果没有全套使用,那么就会不平衡和充满风险,而且不知道项目是不是如期望中那样进行。就如节食一样,既不吃 蛋糕,也不吃蔬菜,这是个平衡的问题。

其实这是敏捷变得普及的后果,有人认识到了敏捷,而有部份人误解,然后操作错误,而我会更担心的可能还有人不了解什么是敏捷。

我不认为这危及到了敏捷的发展,因为这些人怎样也会做出疯狂的事情,这些人一直存在,而且一定会出问题,而不是任何方法学的问题。有些人喜欢向负面看,但我不认为这是问题。

敏捷社区可以做什么呢?分成两个问题来看,团队可以做什么?对于说这些话的人又可以如何?我不认为社区对以上问题有任何责任,过去十至十五年我都在帮助开发人员,让他们更能去享受工作,使开发工作更有乐趣,并且做得更好。

我们可以做的就是做的比现在更好,让别人也喜欢,并希望使用。要知道,去解决别人的问题最后只是浪费时间。

InfoQ 中文站:程序员、作者、发行商,你最喜欢哪一个角色?

Dave:很难说最喜欢哪一个,这三个其实都是一样,因为我们发行书籍时采用的技巧跟编程一样,所有书籍都放在版本管理系统,有持续集成,单元测试,应用 DRY 原则(不自我重覆)等等。我们的发行系统就像开发软件,我得到同样的满足感。

编写书籍有点不一样,迭代短,重构,很密集紧凑,而且很费神。

我真的喜欢所有这些活动,否则我不会做,我通常喜欢写书的最初几个月和最后一个月,中间的是苦工。

InfoQ 中文站:你最近在 Blog 上提到编写音乐,为什么你喜欢编写音乐呢?你如何比较编写音乐和编写代码呢?

Dave:我不知道我做的是不是音乐,不过我就是喜欢。我喜爱弹钢琴,希望尝试及学习,尝试找钢琴老师,有人问我:“如果你有三个月时间,你会想做什么?”,我就想学弹钢琴。

我太太就安排了钢琴课作为我的礼物,但是我还是学不了。我尝试又尝试,我的手确实无法做到弹琴所需要的,但我爱编写音乐,我的老师就帮助我在作曲,这几年我写了很多小段简单的音乐,得到很多乐趣。

我认为作曲和写代码两者有一定关系,但我不知道是什么。

你看看那些很棒的程序员,至少在我认识的当中, 我认为有至少一半是很好的音乐家,会玩很好的爵士乐,他们很享受即兴表演,协作表演,透过音乐沟通。

我自己有一套关于非言语沟通理论,一个关于模式的理论,在编写音乐的时候,会思考它的模式会怎样,整段音乐的架构,小模式、中模式、大的模式如何地互动。编写音乐最大的挑战是在这里开始了,你知道要把它容纳到更大的架构中,到后段需要想些点子出来,这是很有趣的思考挑战。

我认为编程也是同样的事情,虽然未必跟写书一样。当我编程的时候,我能想像到它运行时候的情景,我看到回路,看到方法之间的互动,像音乐演奏时很有动力,我想很多编程员都能同样看到。我想去问问别人他们看到的音乐和看到的编程是如何的,然后看看为什么会是这样的。

InfoQ 中文站:你发行超过一百本图书,能选出三本你最喜欢的吗?

Dave:hm……“那个朋友你最喜欢?”,“你喜欢妈妈还是爸爸?”

我不打算说每一本书我都喜欢,但每一本书都有自己的性格,我们是家小公司,所以每本书的生产过程由开始到发行都能亲力亲为,每本书都会遇到的问题,作者花很大的努力去完成,而我亲身经历这过程,有如看着自己的子女成长一样,每本发行的时候,都会感到自豪,是一种感情。

我们很清楚做一本书出来要下什么功夫,我们为每一本书而自豪,而且很谦恭地感谢作者的信任让我们去发行该书。从作者观点来看,这是很大的事情,很可能花整 年时间去完成一本书,是很多的功夫,可能用上五百小时的工作,他们信任我们的工作流程,而每本书都很有趣,所以这不是我能回答的问题。

InfoQ 中文站:最后是关于参与大会的问题,近年没有看到你参加什么大会,你近年的焦点放在那里?

Dave:我以前很常常出席大会,当 “Pragmatic Programmers” 一书面世那时,我一年出席五到十个大会,之后我参加了一个小型会议的系列﹣” No Fluff Just Stuff ”, 差不多一年二十五个地点,差不多两年,我去很多不同的地方,出门的时间很多了,所以我一段时间没有再去大会。但又好像停了太久,我又很怀念他们,去年我参 加一个美国本地的 Ruby 大会,我只是去,没有演讲,我开始想起我喜欢大会的原因。我现在重拾参加大会的兴趣,但会比较挑剔一点,我很想去不同的大会,想 想如果每年去同一个大会,看到同一班人,同样的大会模式,那么过一段时间在大会上的所得就会减少。我现在的想法是参与不同的大会,并且从不同的参与人士中 学习。


给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

2009-10-22 01:022051
用户头像

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

关注

评论

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

这50道Java面试题看完,想不进大厂都难

王小凡

Java 程序员 面试 面试题 大厂面试

语音社交系统——完善有声系统产业链

开源直播系统源码

开源源码 语音直播系统源码 语音直播系统 语音直播系统连麦

看了就会的 Rainbond 入门教程

北京好雨科技有限公司

Kubernetes 云原生

分布式 hdfs-over-ftp 工具实现方案

移动云大数据

你面试十家java开发才能总结出来的面试题(建议收藏)

程序员啊叶

Java 编程 程序员 架构 java面试

一文读懂如何部署具有外部数据库的高可用 K3s

Rancher

Kubernetes k8s rancher

详解Kafka分区副本分配的Bug

石臻臻的杂货铺

7月月更 签约计划第三季

蓝海大脑高性能气象大数据平台为气象局掌握风云变幻提供助力

蓝海大脑GPU

TDengine 助力西门子轻量级数字化解决方案

TDengine

数据库 tdengine 时序数据库

要想组建敏捷团队,这些方法不可少

敏捷开发

团队管理 敏捷开发 敏捷团队

完完整整地看完这个故事,你敢说还不懂Docker?

程序员啊叶

Java 编程 程序员 架构 java面试

牛皮了!阿里面试官终于分享出了2022年最新的java面试题及答案

程序员啊叶

Java 编程 程序员 架构 java面试

我秃了!唯一索引、普通索引我该选谁?

程序员啊叶

Java 编程 程序员 架构 java面试

一些企业数据平台建设的思考

Bright

数据平台 大数据平台

58子站安居,经纪人营销管理平台登录接口加密逆向

梦想橡皮擦

Python 爬虫 7月月更

什么是SpringMVC?工作流程是什么?九大组件有哪些?

程序员啊叶

Java 编程 程序员 架构 java面试

35道MySQL面试必问题图解,这样也太好理解了吧

程序员啊叶

Java 编程 程序员 架构 java面试

10次面试9次被刷?吃透这500道大厂Java高频面试题后,怒斩offer

程序员啊叶

Java 编程 程序员 架构 java面试

融云实时社区解决方案

融云 RongCloud

数牍 X Rust,那些不得不说的事

Jessica@数牍

联邦学习 隐私计算 数牍科技 rust开发者大会 分布式计算框架

【函数式编程实战】(十一) CompletableFuture、反应式编程源码解析与实战

小明Java问道之路

CompletableFuture 7月月更 签约计划第三季 反应式编程 Flow API

企业数字化本质

奔向架构师

数据治理 7月月更

如何在 TiDB Cloud 上使用 Databricks 进行数据分析 | TiDB Cloud 使用指南

PingCAP

TiDB

AI落地难?灵雀云助力企业快速应用云原生机器学习MLOps

York

人工智能 机器学习 云原生 降本增效 MLOps

如何有效进行回顾会议(上)?

敏捷开发

敏捷 回顾会 项目开发

NFTScan 与 NFTPlay 在 NFT 数据领域达成战略合作

NFT Research

区块链 大数据 NFT 合作 Web3.0

有奖活动分享:使用WordPress搭建一个专属自己的博客后最高可领取iPhone13

云端explorer

Wordpress 博客部署

详解.NET的求复杂类型集合的差集、交集、并集

了不起的程序猿

java 14 java程序员 java编程

围绕新市民金融聚焦差异化产品设计、智能技术提效及素养教育

易观分析

新市民金融 差异化产品设计 素养教育

面试官:ThreadLocal使用场景有哪些?内存泄露问题如何避免?

程序员啊叶

Java 编程 程序员 架构 java面试

基于 MinIO 对象存储保障 Rancher 数据

Rancher

Kubernetes k8s rancher

和Dave Thomas谈开始实施敏捷时的困难_研发效能_麦天志_InfoQ精选文章