在一次用例和敏捷技术交流大会上,Alistair给大家分享了自己比较崇尚的三个字: “守”“破”“离”,他用做面包的例子,形象地将这三个字与敏捷的不同阶段相贴合。结合 Alistair 丰富的经历,“守”“破”“离”三个字也恰好概括了他在敏捷中的不同阶段。

“守”

关于 “守”的阶段,Alistair 是这样理解的:“一个从来没有做过面包的人,需要有一个做法的步骤清单,来告诉我们具体怎样才能做出一个面包,这个阶段就是‘守’。这一阶段最重要的是,我们要知道,清单提供的是一种正确的方法,而只要按照方法去做,就能够做出面包来。”

求学时期的 Alistair, 就是照着“清单”打下了扎实的敏捷基础,并开始在敏捷圈崭露头角。

1963年,Alistair 出生于美国,是一位名副其实的学霸。先在美国以独立研究著称的凯斯西储大学内,获得了计算机科学学位。带着对计算机浓厚的兴趣与求知欲,Alistair 之后又在挪威享有“最顶尖学术研究”之称的奥斯陆大学中,拿到了博士学位。与此同时,Alistair 也找到了可以为之奋斗一生的事业。

工作后的 Alistair 凭借求学期间扎实的研究基础和大量实践,编写了很多书籍,其中的《敏捷软件开发》和《编写有效的用例》,分别在2001和2002年,获得了素有“软件业之奥斯卡”美称的 Jolt 生产力大奖,这也是软件行业对 Alistair 能力的强有力认证。

“破”

“ 到了‘破’的阶段,这时的我们已经不满足做普通的面包了,想做松酥的、薄一点或是厚一点的面包,这个时候就需要不同的处方,根据不同方式,做出不同的面包。”

熟练了敏捷的常规“清单”,加之日益丰富的实践 ,Alistair 的内心萌生了很多创新的想法,开始寻求不同的敏捷方法。

他想要策划组织一个有关轻量级方法的讨论会,并罗列了参会人员的邀请名单。但邀请还未发出,他就先收到了一份来自 Bob 的会议邀请。令人惊讶的是,两人要组织的会议主题竟是如此相像。Bob 的邀请中写明了此次会议的目标:要创建一个宣言,来描述所有轻量级方法的共同之处。看到这一目标后,Alistair 便欣然应邀,会议前期,两人把各自的邀请名单合并起来,共同准备着这场“轻量级方法峰会”。

在 Alistair 的建议下,峰会的地点改到了盐湖城的雪鸟。2001年2月份,这个会议终于开始了。

Alistair 成为了会议实际的组织者,与 Jim Highsmith 一起统筹安排来自各地的参会人员。20位受邀者中,虽然只有17位聚集在此,但他们最终编写出了《敏捷软件开发宣言》。后来,这次会议有了一个更具标志性的名字——雪鸟会议。

水晶方法、六边形架构

《敏捷宣言》提出后,以极限编程为首的一系列敏捷方法就慢慢走入了大众视野,其中就包括 Alistair 提出的水晶方法论。

水晶方法被认为是轻量级方法的一种,按照项目重要程度以及参加人员的规模,Alistair 将水晶方法细化为透明水晶方法论、黄色水晶方法论、橙色水晶方法论和红色水晶方法论。

一般来说,透明水晶方法,适用于一个小团队来进行敏捷开发,人数在6人以下为宜。相比于同样适用于小规模团队的 XP,都有以人为中心的理念,但在实践上有所不同。水晶方法的纪律性较弱,但管理运作与团队产出还是比较协调的。

现在来看,在产品开发过程中,也不能只运用单一的敏捷方法,而要根据项目的具体情况,借鉴多种方法,取长补短,形成新的敏捷思维。

2005年,Alistair 又提出了“六边形架构”,称为端口-适配器。Alistair 认为传统的分层架构是一维的结构,不能满足系统应用多维的依赖,而六边形架构恰好可以解决业务逻辑与用户数据交错的问题,实现前后端分离,这也为后来的集成测试提供了很大的方便。

“离”

“像我的妻子那样做面包,就和前面两个层次不一样了,她只需要凭她的手感,抓一些面粉,倒一些水,弄点鸡蛋在里面揉揉,就能做出她想要的面包, 这就是‘离’的阶段。到了这个阶段,我们可以根据方法来做,但即使没有方法,我们也知道怎么做。”

从各种轻量级方法,到如今成熟的敏捷方法体系,有关敏捷的应用早已刻在 Alistair 的内心。换句话说,Alistair  其实早已达到了“离”的阶段,只是抽离到行业乱象之外来看敏捷,他才意识到,是时候要为敏捷做点什么了。

创立国际敏捷联盟

2009年,Alistair 与 Ahmed Sidky 和 Ash Rofail 共同创立了国际敏捷联盟(ICAgile),敏捷认证由此问世。三人找到了敏捷不同的“处方”,他们希望以这个方式鼓励大家对敏捷方法、技能以及工具的相关思考和学习,广泛推行敏捷。

ICAgile 的认证是基于技能的,不仅需要大家来证明自己已经了解了敏捷的核心技能,同时还要参加现场测验,以此证明自己具备灵活运用这套技能的能力。希望它可以不受市场或利益干扰,以匠心传承“真敏捷”。

然而当时的他们怎么也不会想到,如今的敏捷认证遍地丛生。敏捷这个词,似乎也非常容易跟金钱等价交换,但是能轻易交换的往往都是皮毛。

敏捷亦如此。2001年以来,敏捷开发逐渐成为软件工程、项目管理中不可分割的一部分。Alistair 发现, 敏捷在发展过程中也被过度包装,原本的简单纯粹,早已披上了利益化的外衣。于是 Alistair 认为,是时候该还原敏捷的本质了。

创立“敏捷之心”网站

2015年,Alistair 推出了“ 敏捷之心”网站(heartofagile.com),强调回归敏捷之本。“敏捷的核心是简化信息提示,以便更好地专注于实现出色的结果”,这也是 Alistair 对敏捷行业过度复杂状态的高调回应。

“敏捷之心”可以说为更多人打开了敏捷的大门,使更多人受益的同时,也使他们不断创新并找到了适合自己的工作方式。

Alistair 对敏捷有着清醒的认识,以至于没有在物欲横流的现实中迷失。他有过在零售业、电子商务等多个领域中摸索敏捷开发的经验,也有过在挪威中心银行和 IBM 中身居要职的光辉职业生涯,还有过在2007年来自行业内的肯定:被评选“‘有史以来最伟大的150位 IT 英雄’之一”……这些对 Alistair 来说,无疑也是敏捷所带给他的回馈。

如论英雄,必当走过一条荆棘之路,这条路上要扛得住世界对我们发起的任何挑战,不管是利益,亦或是道德。Alistair 做到了,于是才有了他与敏捷的互相成就。这条英雄之路,你在路上吗?

敏捷史话(九):用做面包的方式做敏捷——Alistair Cockburn的更多相关文章

  1. 敏捷史话(三):笃定前行的勇者——Ken Schwaber

    很多人之所以平凡,并不在于能力的缺失,而是因为缺乏迈出一步的勇气.只有少部分的人可以带着勇气和坚持,走向不凡.Ken Schwaber 就是这样的人,他带着他的勇气和坚持在敏捷的道路上不断前行,以实现 ...

  2. 敏捷史话(四):敏捷是人的天性 —— Arie van Bennekum

    敏捷是人的天性,是你与生俱来的东西.面对敏捷,Arie van Bennekum 下了这样一个结论. 但这并不意味着人们只能通过天赋获得敏捷,对于想要学习敏捷的人来说,敏捷绝不是仅仅靠学习僵化的框架. ...

  3. 敏捷史话(五):敏捷已逝 —— Dave Thomas

    " 敏捷已逝,但敏捷精神长存.因为所谓的敏捷专家卖给你的是方法论,而不是价值."当多数人都在从"敏捷"身上榨取利益时, Dave Thomas 成为了一位逆行者 ...

  4. 敏捷史话(六):也许这个人能拯救你的代码 —— Robert C. Martin

    Robert C. Martin( 罗伯特·C·马丁),作为世界级软件开发大师.设计模式和敏捷开发先驱.C++ Report杂志前主编,也是敏捷联盟(Agile Alliance)的第一任主席,我们尊 ...

  5. 敏捷史话(七):从程序员、作家到摇滚乐手——Andy Hunt的多面人生

    与其说 Andy Hunt 是敏捷宣言的创始人,不如说他是一名专业作家来得更为合适.他的<实用程序员><程序员修炼之道:从小工到专家><编程 Ruby:实用程序员指南&g ...

  6. 敏捷史话(八):敏捷的破局之道——Martin Fowler

    在 Martin Fowler 的世界里,任何事情都有最优解. 1963年,Martin 出生于英格兰的沃尔索尔(Walsall),也在同样位于沃尔索尔的玛丽女王文法学校中接受中等教育.在这里的乡村中 ...

  7. 敏捷史话(十二):你现在接触的敏捷也许是“黑暗敏捷”——Ron Jeffries

    他很少提起往事,也不再提及二十年前那场引起软件行业变革的会议,他专注于当下,一直活跃在敏捷领域.八十多岁的他依然运营维护着网站和博客,是极限编程网站 XProgramming.com 的作者,该网站是 ...

  8. 敏捷史话(十四):敏捷之峰的攀登者 —— Jim Highsmith

    "我们希望,一起组成的敏捷联盟能够帮助到其他同行,帮他们用新的更'敏捷'的方式去思考软件开发.方法论和组织.做到这一点,我们就得偿所愿了."Jim Highsmith 在雪鸟会议结 ...

  9. 敏捷史话(十五):我发明了敏捷估算扑克牌 —— James Greening

    雪鸟会议 雪鸟会议前夕,James Grenning 在 Object Mentor 与 Robert C. Martin 一同工作,彼时组织雪鸟会议的 Bob 大叔盛情邀请 James,告知他会议的 ...

随机推荐

  1. springboot源码解析-管中窥豹系列之BeanDefinition(八)

    一.前言 Springboot源码解析是一件大工程,逐行逐句的去研究代码,会很枯燥,也不容易坚持下去. 我们不追求大而全,而是试着每次去研究一个小知识点,最终聚沙成塔,这就是我们的springboot ...

  2. c#记两个变量进行值交换

    今天腊月二十九啦,无心上班,专注划水.然后就在那里翻帖子消磨时光. 看到了这样一个问题,有人提问为什么   a=b+(b=a)*0  ??? 第一眼看上去,我也有点蒙,仔细推敲了一下,嗯~的确是交换了 ...

  3. Kubernets二进制安装(7)之部署主控节点服务--apiserver简介

    API Server简介 Kubernetes API Server提供了K8S各类资源对象(如:pod.RC.Service等)的增删改查及watch等HTTP Rest接口,是整个系统的数据总线和 ...

  4. kubernetes实战-交付dubbo服务到k8s集群(四)使用blue ocean流水线构建dubbo-demo-service

    使用jenkins创建一个新的项目:dubbo-demo,选择流水线构建 勾选保存构建历史和指定项目为参数化构建项目: 添加构建参数:以下配置项,是王导根据多年生产经验总结出来的甩锅大法: 除了bas ...

  5. Linux下的C语言编程

    一.在Linux下的C语言编程所需工具(下面所列举的都是我编程所用的工具) 1.文本编辑器 Vim 2.编译链接工具 gcc 3.调试器 gdb 4.项目管理工具 make和makefile 二.VI ...

  6. L3-002. 堆栈【主席树 or 线段树 or 分块】

    L3-002. 堆栈 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 大家都知道"堆栈"是一种"先 ...

  7. Petrozavodsk Winter Training Camp 2017G(栈)题解

    题意: \(M_i\)为一个\(m*m\)矩阵,已知 \[\begin{aligned} &M_0=A\\ &M_i=(\prod_{j=c_i}^{i+1}M_j)B \end{al ...

  8. Linux内核实现透视---工作队列

    作为Linux中断低半部的另一种实现机制的基础,工作队列的出现更多的是为了解决软中断和Tasklet对于用户进程的时间片的不良影响问题的.工作队列本身是可以使用内核线程来替代的,但是使用线程来实现复杂 ...

  9. Versatile Python 3.x

    Versatile Python 3.x TryPython Python 3.8.0 (default, Nov 14 2019, 22:29:45) [GCC 5.4.0 20160609] on ...

  10. browser parse CSS style order

    browser parse CSS style order 浏览器解析 CSS style 的顺序 从右到左 https://juejin.im/entry/5a123c55f265da432240c ...