“在镜头定格的一刹那,所有美好都和你不期而遇”,这是 Jon Kern 对生活的表达。为了更好地记录生活,他在一家名为 flickr 的网站上创建了一个属于自己的照片博客,在这个博客里,Jon 上传了各种随手拍下的照片,拍摄的对象可能是一艘满载的渡轮,可能是一对长得像警卫的消防栓,也可能是倒映在水面的一只蜥蜴……Jon 不 仅在生活中习惯于观察、欣赏身边的小细节,同样在工作中也习惯于从细节入手,推动业务成功。

忽略他身上的耀眼光环,你会重新认识 Jon Kern。

一、“初识软件开发”

20世纪60年代末,“软件危机”出现之后,人们开始思考:如何满足不断增长的需求,以及如何维护数量不断膨胀的软件产品。这之后的几十年间,快速原型、增量等模型不断涌现,推动软件行业不断向前发展。也正是在这一激烈动荡的时期中,Jon Kern 发现了一个未知的世界,带着对这个世界的好奇,他开始踏足软件开发领域。

1981年,Jon 顺利地从俄亥俄州立大学毕业,获得了航空工程学士学位。带着初入社会的兴奋与激情,他以一名项目工程师的身份进入海军航空推进中心工作,在推进中心,Jon 的工作内容主要是巡航导弹喷气发动机的高级研发测试。这段时间里,Jon 不停地在编写数据采集代码,用来实时计算推力、气流等元素。 不论是工作要求还是自身的性格使然,这段经历都让Jon更加注重细节之道。

5年后,他又以航空航天工程师的身份加入了一家名为 Veda 的国防部咨询公司,从事半实物控制、飞行模拟,以及实时数据采集等研究。很快,软件研发成为 Jon 的兴趣所在,也是在这一过程中, 他逐渐发现了轻量级开发方法的过人之处,也开始探索新的面向对象范式。他认为,这是软件开发的必然要求。

二、“UML/MDA”

到20世纪80年代末,Jon 开始探索新的面向对象的范式。在这一过程中,Jon 发现,不同的方法学家都在提出自己的面向对象分析设计学,一时间,呈现出百花齐放的局面。但这也带来了一个问题: 各方法学虽万变不离其宗,但都有自己的一套概念、定义、标记符号等,也就是说在这一领域里,还没有一个通用型的概念,当开发人员在选择某一方法学时,会因为这些细节的不同产生混乱。因此,一个统一的表示法亟需建立。

1997年,三位方法学家为打破这一僵局,开始取各方法学之精华,将所有建议合并成一套建议书。这一建议书最终得到 OMG( Object Management Group , 国际对象管理集团)全员的一致通过,UML(Unified Modeling Language, 统一建模语言)就此诞生。

UML 的诞生,让 Jon 找到了坚定的方向和道路,他成为了一名面向对象和轻量级过程的传播者。与此同时,和他志同道合的还有一位朋友,这位朋友就是:Peter Coad —— FDD(Feature Driven Development, 特征驱动开发)的支持者。不仅如此,Peter与Jon还是面向对象编程和 Coad/Yourdon 方法论的早期实践者。对 Jon 而言,Peter 不仅是伯牙子期般的知音,更是携手与共的同路人。

两人有极深的渊源,早在90年代初期,Peter 就与 Jon 一起共事,在工作之余,他们还合著了《Java 设计》一书。在Peter的身上,Jon 学到了一项非常重要的东西,就是“诚实”——软件开发中,要确保团队提升的是“频繁的、切实的工作成果”,而不是无限趋近于完成但始终没有完成的开发过程。“诚实”对 Jon 影响颇深,在之后的工作中,他也一直坚守这一原则,并将其运用到他所在的团队中。

为了更好地帮助客户使用软件开发交付业务价值,1995年,Jon 决定自己创立一家公司,并将其命名为 Lightship。Lightship 公司致力于使用最佳实践的软件开发方法,为客户提供先进的、面向对象的、多层次的解决方案。在 Lightship 的工作期间,Jon 作为开发 IBM 下一代制造执行系统的首席架构师和建模师,为公司做出了巨大的贡献。除却在团队中应用UML之外,Jon 对体系架构也极为看重。他认为, 首要目标是要帮助团队构建一种能够实现有效实践以及可靠的体系结构的环境,最终达到高效地交付业务价值。因此,他着力从 人员、 过程、 技术等角度为团队寻找更好的方法来实现团队目标。

Jon 对团队以及客户的看法赢得了许多人的认可,这其中也包括他的好友 Peter Coad。1999年,Jon 受邀加入 Peter 创建的 TogetherSoft 公司,帮助团队进一步推广UML建模工具。与他共事的团队成员和客户都说,Jon是一个非常有远见的人。当然,这种远见在他的日常工作中淋漓尽致地体现了出来:他重视同团队、客户进行互动,并指导团队成员进行交付和反馈流程,使用技术实践和工具等。在此工作的将近三年的时间里,TogetherSoft 在 UML 建模/ IDE(集成开发环境)产品以及他所组建的专业导师团队的支持下取得了骄人的成就。任职结束后,Jon 留下了一个对 TogetherSoft 更有价值的团队。

2001年,一个新的概念被提出:MDA。MDA(Model Driven Architecture, 模型驱动体系架构)把建模语言用作一种编程语言而不仅仅是设计语言,并以一种全新的方式将 IT 技术的一系列新的趋势性技术整合到一起。这些技术包括基于组件的开发、设计模式、中间件、说明性约束、抽象、多层系统、企业应用整合以及契约式设计等。模型驱动体系架构(MDA)的出现,为如何提高文档编制的便利性指明了解决之道。Jon 在接触到 MDA 之后,发现 MDA 极佳的同步特性也能够为轻量型方法论提供有力支持,随后,Jon 开始了 MDA 之旅。

三、“Agile UML/MDA”

同样在2001年,Jon Kern 与其他十六位软件开发领域的杰出代表共同编写了“敏捷宣言”。在这一会议上,敏捷联盟成立,他们通过激发群智,将原本零零散散的“轻量”方法整合起来,形成包容度更大的概念,以满足不同团队、不同项目的实际需要。由此, Jon 转向了 Agile MDA/UML 方向。

在之后的几十年间,Jon Kern 以 Agile MDA 的传道者的身份践行软件开发实践,同时也从事敏捷培训等业务。他有过多种身份,例如敏捷顾问、Web 开发人员和架构师,甚至自己创立了几家小型公司。无论过去、现在还是未来,也无论 Jon 的身份、角色发生了什么样的变化,他对敏捷的初心、对面向对象编程的坚持都没有发生改变。

回忆起2001年的那场会议,Jon 说,他们中没有一个人想到,这场聚会竟然会在软件开发领域掀起如此大的波澜。因为在当时,轻量型的方法在软件开发的实践中所占的比重非常小。站在几十年后的今天,我们不难看出,敏捷运动已形成了不可抵挡的形势,仍在浩浩荡荡地向前发展。现如今的敏捷在最初的敏捷基础上衍生出了新的分支和新的内容,对于这些新的内容,Jon 持支持态度,无论如何, 新鲜血液的涌入都能激发敏捷的活力。

而当被问起当年聚会中有什么遗憾的时候,Jon 的回答既出人意料又在情理之中。他是这样回答的,“ 我应该早几天过去,这样在会议开始之前就有更多的时间去那里滑雪了。”

对他来说, 无论是在工作中还是在生活里,细节都是一项至关重要的因素。Jon 不仅善于从长远角度看问题,更善于发现细节,并促使团队或公司完善每一个细节处,从而推动业务成功。自始至终,Jon 都坚持认为,建立起一个持久的、历经检验的过程,以解决具有挑战性的业务问题,并让团队受到面向对象和敏捷方法论的指导,是最有意义的事情,这也正是他一直坚持 Agile MDA/UML 的理由。

现如今,一方面,工作中的 Jon Kern 会在名为“technicaldebt”的博客上分享相关的技术性内容;另一方面,日常中的 Jon Kern 在闲暇时间不仅会与妻子及家人一起出门旅行摄影、滑雪、登山、攀岩,还会去品尝各地的美食,品鉴不同种类的啤酒、葡萄酒……Jon Kern 赋予了生活新的意义,那就是不断地寻求“新知”。

敏捷史话(十):我牺牲了滑雪时间,参加了一场软件革命——Jon Kern相关推荐

  1. 质量管理14条原则、敏捷开发宣言、敏捷开发十二原则

    一.质量管理大师爱德华·戴明博士经典的质量管理14条原则 1. Create constancy of purpose toward improvement of product and servic ...

  2. 高效敏捷的十大经验法则

    摘要:敏捷是一种应对快速变化的需求的一种软件开发能力,文中Robert总结了这十年来的敏捷软件开发经验,缩减成十条经验法则,比如:敏捷就是纪律.把自己当做统观大局的人.持续规划.简单至上等等. 敏捷是 ...

  3. 敏捷宣言和敏捷的十二原则

    敏捷宣言和敏捷的十二原则 1.为什么需要敏捷 在我们的项目实施的过程常常会使用不同的开发模型,例如瀑布型:"项目立项-需求分析-软件设计-软件开发-软件测试-项目验收",前一个工作 ...

  4. 如何选择适合你的兴趣爱好(三十六),滑雪

    围城网的摇摇今天给大家带来了"如何选择适合你的兴趣爱好"系列专辑的第三十六讲--滑雪.滑雪是一件深受人们喜爱的冬季运动,一旦学会滑雪很多人都会深深的爱上它.所以有人甚至把滑雪比作是 ...

  5. 湖南长郡2021高考成绩查询时间,2021年湖南新高考六校、长郡十五校联考时间公布...

    2021年湖南新高考六校.长郡十五校联考时间公布 导读:距离2021年高考时间仅剩不到一百天,各个省份都的高三学子都进入紧张阶段.开始了各种模拟考试.2021届湖南省炎德英才大联考的考试时间也已经公布 ...

  6. 【学术相关】海外博士一般朝九晚五,国内博士动辄十几个小时科研时间。为什么普遍认为海外博士水平比较高?...

    有同学问:海外博士一般朝九晚五,国内博士动辄十几个小时科研时间.为什么普遍认为海外博士水平比较高? 本文来源:https://www.zhihu.com/question/430471502 回答一 ...

  7. php 时间戳 星座,十二个星座的时间划分与性格总括

    十二个星座的时间划分与性格总括 编辑:小编22 星座屋官网 [导语]我们平时所说的十二星座指的就是太阳星座,太阳星座只要知道出生的(阳历)月日就可以推算出,不需要知道年份.那么十二个星座的时间具体在哪 ...

  8. 回望2001年的雪鸟城:引发全球软件革命的“敏捷宣言”是如何诞生的?

    将人们置于流程之上.专注于开发可以工作的软件,而不是软件的文档.和你的客户一起工作,而不是为一份合同而争吵.在此过程中,要对改变持开放态度. 编者按:"敏捷"(Agile)这个对于 ...

  9. 花了我很长时间整理出来的绿色软件[小蓉整理]

    花了我很长时间整理出来的绿色软件[小蓉整理] 葵花宝典 V1.0 Build 7.0115 绿色版 金山毒霸2007杀毒套装 正式免费版 无须序列号 搜狗拼音输入法 V2.0 Final 去LOGO纯 ...

最新文章

  1. clevo风扇调速软件_YVP变频调速电机
  2. 【PC工具】更新win10关闭更新工具及注意事项
  3. 为什么-1的补码是全1(11111111)?-128的补码是10000000?
  4. python socket.socket()函数 套接字详解及TCP、UDP程序示例(粘包等)
  5. Knowledge Graph Alignment Network with Gated Multi-Hop Neighborhood Aggregation-学习笔记
  6. 关于移动端 1px 像素问题
  7. java cache教程_Java 中常用缓存Cache机制的实现
  8. linux成为管理员_成为系统管理员需要知道的
  9. maven build时报错Failed to execute goal org.apache.maven.plugins......
  10. Visual Studio 跨平台開發實戰(2) - Xamarin.iOS 基本控制項介紹 (转帖)
  11. 总结一下linux中的分段机制
  12. type python django models_django新版本(2.x)踩坑记录
  13. 虚拟机怎样使用代理服务器上网,VMware虚拟机使用NAT模式上网的方法
  14. c语言转义字符总结,C语言转义字符总结
  15. 上位机软件开发项目案例(一)_C#开发
  16. 个人博客系统功能展示
  17. JAVA导入/导出EXCEL文件,自定义校验,错误回写excel,使用简单快捷
  18. B站收藏备份工具设计和实现 Bilibili Memory 哔哩哔哩记忆
  19. HitPaw Photo Enhancer v1.0.1 照片清晰放大
  20. 计算机开机没有找到引导设备,电脑开机显示没有可以引导的设备

热门文章

  1. 工程总承包理念方法适用于所有施工总承包项目
  2. C语言数据结构学习(4):静态链表
  3. 神华整体上市图景:一体化模式指向海外并购
  4. 11.4 实施定量风险分析
  5. 接口自动化测试:mock server之Moco工具
  6. 诗配画—泰戈尔情诗欣赏(转载)
  7. Hibernate的游离态与持久态转换
  8. 零基础自学Python编程从入门到精通基础教程《从零开始学Python》
  9. python编写一个登陆验证程序,python自动化实现验证码登录过程
  10. DVWA靶场01-系统命令执行漏洞利用及防护(Low/Medium/Hight)