Steve Mellor 是敏捷宣言的签署人之一,他自称是作为“ 间谍”去参加雪鸟会议的。

起初收到会议邀请时,Steve 非常惊讶,因为他所做的工作一直都是关于建模方面的,很少将深受敏捷实践者喜爱的编码和测试作为重点。确实,我们很少会看到“敏捷”和“建模”同时出现, 接下来我们就来了解 Steve Mellor 与它们的故事吧。

Steve Mellor 与“敏捷”

在收到会议邀请前,Steve 刚读过 Kent Beck 的《极限编程》,书中所说的: 不重视前期思考、 憎恶模型、 反对文档……这些理论着实吓到了他,不过也激发了他的好奇心。

冬日里,闲在落基山脉无事可做,Steve 决定去参加雪鸟会议一探究竟。

会议上,Steve 坦言,他原本想邪恶地来阻挠雪鸟会议的计划,但是在会议的过程中,他却发现自己对大家所提出的绝大多数观点都十分赞同。比如,对“前期大规模设计”的过度强调是存在的。就这样,Steve 成为了一名敏捷的支持者,只不过他关注的仍然是建模的价值,尤其是自己十多年来专注于构建的可执行模型。

Steve Mellor 与“建模”

就在雪鸟会议之前,Steve 几乎与所有的宣言签署者有过一段对话,有时对话不只一次。对话如下所示:

Steve 与其他人意见相左,是因为他们在“模型”这个词的含义上各持己见。一些签署人把模型视为草图,用完即扔;更让人愤怒的是把模型视作蓝图,画完后直接扔给隔壁言听计从的开发人员。这些做法 Steve 都不认可,他认为模型是可以运行的。

雪鸟会议中谈论到模型时,Steve 不断听到,没法用统一建模语言写“Hello World”程序的说法。事实上,这是可以做到的,只是不容易做到。因为早在雪鸟会议之前,Steve 及其团队成员就已经在运用自己的动作语言运行模型了。此时他意识到,当下亟需解决的问题是, 建模要被广泛认为是可执行的。

不相关的两个事物融合,往往会发生奇妙的化学反应。后来,Steve 这样描述“敏捷”和“建模”:“敏捷”和“建模”虽然很少出现在同一个句子中,但它们一点也不冲突。恰恰相反, 建模者能从实施敏捷的人身上学到许多,例如尽早为模型构建测试;遵循敏 捷过程的人,也能受益于提高生产率和轻松地跟客户沟通。无疑,所有人都能从中获益。

其实,Steve 对建模的执着追求,早在几十年前就有了苗头。

Steve Mellor 与他的追求

1974年,Steve 在埃塞克斯大学拿到了首批计算机科学学士学位,而后在世界上最大的粒子物理学实验室,也是万维网的发源地——CERN 总部,开始了他的职业生涯。在 CERN 中,Steve 主要负责加速器控制系统,用以支持 CERN 出售在不同国家或地区的系统。

如果说这是一个计算机工作者梦寐以求的事业,那 Steve 还有第二个、第三个……

1977年,Steve 加入了美国最杰出的国家实验室之一——伯克利实验室,为多个项目提供了系统支持软件。不到两年的时间,比团队中任何成员都年轻的他成为了一名出色的小组负责人,领导团队为多个项目开发控制系统。

此时大量的实操项目对 Steve 来说只是不断的重复,他认为建模在未来的可能性远远大于当下,而眼下, 是要让更多人知道建模的价值。

1982年,Steve 全职加入由程序设计方法学的开拓者之一—— Edward Yourdon 创办的咨询公司 Yourdon Inc.。在那里,他与 Paul Ward 合作,重新开发IT课程。于是,Ward-Mellor 方法问世了,发表在他极具开创性的三部曲《实时系统的结构化开发》中。Steve 向多家公司提供了咨询服务,这也令他重新找到了事业方向。

1985年,Steve 与 Sally Shlaer 共同创立了 Project Technology Inc.,目标是提供咨询服务。几年间,他们不断开设课程,以期将技术更快地传达给客户。也就是在这个时期,他们开发出了Shlaer-Mellor方法:被认为是最早的面向对象分析设计方法学。并于1998年出版了第一本有关该主题的书——《面向对象的分析:在数据中建模世界》,随后又相继出版了《对象生命周期:建模世界》以及有关模型驱动开发的特刊,还创建了第一个模型编译器。

从顾问委员会主席、澳大利亚国立大学兼职教授、首席科学家到程序主席……种种身份都是Steve 在建模领域走出的一步步踏实而坚定的脚步。

曾有人问过 Steve ,如何才能成为一个优秀的架构师,他笑而不语。但他早已归结出一个方法——“ 永远不要相信你最近创建的系统是唯一的,应设法寻找不同方法来解决相同类型的问题。”

架构师如此,程序员亦如此。

敏捷史话(十一):敏捷宣言“间谍”——Steve Mellor的更多相关文章

  1. 敏捷史话(一):用一半的时间做两倍的事——Scrum之父Jeff Sutherland

    普通的人生大抵相似,传奇的人生各有各的传奇.Jeff就是这样的传奇人物,年近80的他从来没有"廉颇老矣尚能饭否"的英雄迟暮,不久前还精神矍铄地与好几百名中国学生进行线上交流,积极回 ...

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

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

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

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

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

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

  5. 敏捷开发 and 敏捷测试

    名词解释 agile: 敏捷的:灵活:敏捷开发. scrum: 扭打,混打:并列争球:参加并列争球. sprint:  冲刺,全速跑. backlog: 积压的工作:积压待办的事务. retrospe ...

  6. 【敏捷0】敏捷项目管理-为什么从敏捷开始?为什么从PMI-ACP开始?

    作为敏捷项目管理的开篇文章,还是先来简单地说一说为什么先从敏捷开始,为什么是以 PMI-ACP 为参考.当然,这一系列的文章可能不可避免地会为 PMI-ACP 做一些广告,但是我想告诉大家的是,敏捷以 ...

  7. CODING 助力江苏高速信息实现组织敏捷与研发敏捷,领跑智慧交通新基建

    疫情之下的高速公路管控重任 江苏高速公路信息工程有限公司(以下简称:江苏高速信息)成立于 2002 年,是江苏交通控股旗下,专业从事高速公路领域机电系统集成.智能交通软硬件研发.大数据分析运营的高新技 ...

  8. 敏捷史话(二):Scrum社区的悲剧性损失——Mike Beedle

    2018年3月23日,在美国的芝加哥发生了一起意外刺杀事件.一名男子刺杀了一位首席执行官,而这位不幸的首席执行官就是<敏捷宣言>的合著者--Mike Beedle.Mike 的这场意外令 ...

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

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

随机推荐

  1. NAIO & Node.js All In One

    NAIO & Node.js All In One Node.js Tutorials https://nodejs.org/en/docs/ https://nodejs.org/en/do ...

  2. taro weapp

    taro weapp 开发指南 https://nervjs.github.io/taro/docs/GETTING-STARTED.html#微信小程序 taro # build $ taro bu ...

  3. TypeScript Generics

    TypeScript Generics https://www.typescriptlang.org/docs/handbook/generics.html 泛型 1 Generic Interfac ...

  4. js 监听ajax请求

    function hookSend(hook) { if (!XMLHttpRequest.prototype._oldSend) XMLHttpRequest.prototype._oldSend ...

  5. vue mixin执行覆盖

    https://cn.vuejs.org/v2/guide/mixins.html 完整代码 vue-option-overwrite-strategies vue 自带的mixin如果钩子函数重复会 ...

  6. 币圈沸腾!SPC空投上线!不要错过!

    币圈最近处于沸腾的时刻,NGK侧链代币SPC已上线钱包,3.0公链NGK生态之SPC空投又来了,NGK的上一个项目BGV投资收益率最高破一千七百倍,NGK官方此次以算力持有者为中心,将发起第二轮福利- ...

  7. 磁盘使用率/文件大小查看指南du & df

    一.前言 磁盘使用率,文件大小查看是我们日常使用命令.这两个是配合使用的,磁盘使用率过高告警了,那么得找到对应的磁盘(df),然后找到对应磁盘下的哪个目录和文件占用了空间(du). df(Disk f ...

  8. Typescript快速入门

    目录 什么是Typescript 为什么学习Typescript 快速搭建开发环境 1.安装node.js 2.使用node自带的npm安装Typescript编译器 3.配置vscode编辑环境 4 ...

  9. Kubernetes和docker----1.开始使用k8s和docker

    开始使用Kubernetes和docker docker命令 运行一个容器 docker run busybox echo "Hello world" 构建容器镜像 docker ...

  10. 死磕Spring之IoC篇 - BeanDefinition 的解析过程(面向注解)

    该系列文章是本人在学习 Spring 的过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring 源码分析 GitHub 地址 进行阅读 Spring 版本:5.1. ...