敏捷史话(十四):敏捷之峰的攀登者 —— Jim Highsmith
“我们希望,一起组成的敏捷联盟能够帮助到其他同行,帮他们用新的更‘敏捷’的方式去思考软件开发、方法论和组织。做到这一点,我们就得偿所愿了。”Jim Highsmith 在雪鸟会议结束后,发出了这样的感叹。
这位出生于1945年的软件工程师,是一位登山狂热爱好者。在 Jim 看来,无论是工作还是娱乐,所做的事情其实都是在登山。
Jim 拥有电气工程学士学位和管理硕士学位。他在工科学校毕业后的第一份工作就接触到了阿波罗载人航天计划。因此,可以说他的第一个项目是成功的,尽管当时他的工作职责微乎其微。
“自适应软件开发”倡导者
除软件工程师外,Jim 还是一位“自适应软件开发”的倡导者。他推崇着一个原则:即流程不断适应当前的工作是正常的事务状态。1999年12月,也就是在 Kent 的《极限编程》问世大约一个月之后,Jim 所著的《自适应软件开发:一种管理复杂系统的协作方法》出版了。这本书的原始标题其实是“RADical Software Development”,但 Jim 总觉得这个名字好像缺少点什么——复杂自适应系统理论,所以 Jim 用“Adaptive”代替了“RADical”。自此,自适应软件开发(ASD)发展成型。
在《自适应软件开发:一种管理复杂系统的协作方法》一书中,这本书的大部分内容是关于管理理论而不是软件开发的。也是在这本书中,登山爱好者 Jim 使用了很多爬山的类比来说明他所持有的,关于团队合作、计划和适应快速变化条件的观点。

《敏捷宣言》之旅
征服了“自适应软件开发”这一座山峰之后,Jim 又将目光投向了轻量级方法领域。
2000年春,肯特·贝克(Kent Beck)在俄勒冈州的罗格里夫酒店组织了一次“极端编程领导会议”。参会者包括 Bob 、Martin Fowler 等极限编程的支持者们,以及包括 Jim 和 Alistair Cockburn 在内的一些有助于推动 XP 革命的“边缘人士”。这次会议主要讨论的是如何创建组织来推动 XP 的推广。
这次会议中,还发生了一个小插曲。这天 Jim 和 Kent Beck 沿着河岸散步交谈,聊到“极限编程”的名字的时候,Kent 纠结用“极限”这个词会不会显得太极端,Jim 则打趣道:“那你要叫它什么呢,'适度编程'吗? ”
这次会议对 XP 的推广起到了重大作用,在 Bob 等人看来,倡导创建一个诸如 XP 之类的轻量级方法思想的组织,将使整个行业受益。Bob 坚信,不同的人都终将会推动这样一个组织的创建。但是,许多其他参会者对此并没有太高热情,或许是因为这次会议更多的是局限在 XP 上。所以,Martin Fowler 在会议休息时间找到 Bob 做了简要的讨论,二人决定将提议的组织范围扩大到所有各种“轻量级方法”(例如 Scrum 和自适应软件开发),他们认为这样不仅可以提高所有人的积极性,同时还能促使拥护这些方法的人们进行更多更全面的补充。
于是,2000年9月,Bob 用一封电子邮件吹响了下次会议的集合哨,并提出了“轻量级方法峰会“的口号,向 Jim Highsmith 在内的多名专家发出了邀请,邀请函阐明了创建宣言的目标,该宣言将描述各种轻量方法的共同点。Jim 表达了对这次会议主题的浓厚兴趣,因为除了自适应软件开发, Jim 也了解 Scrum、DSDM、功能驱动开发等其他“轻量级方法”,Jim 认为这些方法有很多相似之处,所以花几天时间讨论这些方法是非常值得的。Jim 很期待接下来会产生怎样的火花。

为了保证会议的正常进行,Jim 和 Alistair Cockburn 包揽了会议的所有外勤跑腿工作,包括安排每人的房间、用餐和娱乐活动等,准备工作进展得很快且很顺利。
会议中,大家一致提议起一个新的名字来取代“轻量级”这个概念,因为没有人喜欢“轻量级”这个词。这时,Jim 提出了“Adaptive”的建议方案,但 Mike Beedle 等人对此提出了异议,因为大家知道 Jim 是 ASD 方法的创建者,并在之前已编著了《Adaptive Software Development》一书,如果使用 Adaptive,这听起来更像是 Jim 自己的一个作品了。所以 Jim 的建议最终未被采纳。除此之外,其他人也提出了很多其他建议,如 Essential、Lean 和 Lightweight 等,经过一番讨论, Mike Beedle 提出的“敏捷”一词得到了大家的一致赞同。
这次“雪鸟会议”的成果是大家共同签署的《敏捷软件开发宣言》,并将这个宣言挂到了网站首页(http://agilemanifesto.org/),同时,“敏捷联盟”由此诞生。
制定《相互依赖声明》
《敏捷宣言》发布后,许多人表示有兴趣探索将《敏捷宣言》扩展到软件之外的 项目管理和产品开发的过程。
应 Jim 的邀请,Alistair Cockburn、David Anderson 等15人,在2004年的敏捷开发大会上举行了第一次会议,探讨了该主题。之后又经过多次会议,最终在2005年2月,合作制定了《相互依赖声明 (DOI)》。
《相互依赖声明》是连接人员、项目和价值的敏捷和自适应方法。与 《敏捷宣言》的思路不同,《相互依赖声明》是专门面向管理者的宣言,目的是用来协助管理者们跨过敏捷管理的门槛,助推敏捷转型或改进。
Jim 提到,“《相互依赖声明》这个标题具有多种含义。这意味着项目团队成员是相互依存的整体的一部分,而不是一群没有联系的个体。同时,项目团队、客户及其利益相关者也是相互依存关系。”这之后,人们将在《相互依赖声明》所定义的敏捷环境中不断探索如何管理敏捷项目。
多产的作家
在内容创作上,Jim 可谓是一位多产的作家,除了前面提到的自适应软件开发,他还撰写了多本关于敏捷的书籍,这些书籍都对敏捷运动产生了巨大的影响。其中包括:《 敏捷项目管理:快速交付创新产品》《自适应领导力:加速企业敏捷性》以及《EDGE:价值驱动的数字转型》,也与 Alistair Cockburn 合作撰写的《敏捷软件开发丛书》等作品。

Jim 经常在世界各地的会议上演讲,不仅为主要行业出版物撰写了《敏捷项目管理与项目创新》《敏捷软件开发的生态系统》以及获得“震撼奖”的《弹性软件开发——一种管理复杂系统的协作模式》等数十篇文章,还是2005年“史蒂文斯国际系统开发杰出贡献奖”的获奖者。
哈佛商学院教授罗伯·奥斯汀(Rob Austin)曾这样评价他:“Jim Highsmith 是帮助我们了解知识经济中工作的新性质的少数现代作家之一。”
敏捷史话(十四):敏捷之峰的攀登者 —— Jim Highsmith的更多相关文章
- 敏捷史话(四):敏捷是人的天性 —— Arie van Bennekum
敏捷是人的天性,是你与生俱来的东西.面对敏捷,Arie van Bennekum 下了这样一个结论. 但这并不意味着人们只能通过天赋获得敏捷,对于想要学习敏捷的人来说,敏捷绝不是仅仅靠学习僵化的框架. ...
- 敏捷史话(十五):我发明了敏捷估算扑克牌 —— James Greening
雪鸟会议 雪鸟会议前夕,James Grenning 在 Object Mentor 与 Robert C. Martin 一同工作,彼时组织雪鸟会议的 Bob 大叔盛情邀请 James,告知他会议的 ...
- 【小梅哥FPGA进阶教程】第十四章 TFT屏显示图片
十四.TFT屏显示图片 本文由杭电网友曾凯峰贡献,特此感谢 学习了小梅哥的TFT显示屏驱动设计后,想着在此基础上通过TFT屏显示一张图片,有了这个想法就开始动工了.首先想到是利用FPGA内部ROM存储 ...
- 201671010447 杨露露 实验十四 团队项目评审&课程学习总结
项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 总结这学期软件工程学习获得 一 ...
- 实验十四 团队项目评审&课程学习总结
项目 内容 这个作业属于哪个课程 2016计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 团队名称 快活帮 作业学习目标 (1)掌握软 ...
- 201671030128周琳 实验十四 团队项目评审&课程学习总结
项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 掌握软件项目评审会流程:反思 ...
- 201671030117 孙欢灵 实验十四 团队项目评审&课程学习总结
项目 内容 作业所属课程 所属课程 作业要求 作业要求 课程学习目标 (1)掌握软件项目评审会流程:(2)反思总结课程学习内容 任务一:团队项目审核已完成.项目验收过程意见表已上交. 任务二:课程学习 ...
- 201671030108后新莉+实验十四 团队项目评审&课程学习总结
项目 内容 这个作业属于哪个课程 代老师博客主页 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 作业学习目标 (1)掌握软件项目评审会流程:(2)温故知新自己的所得:(3)反思总 ...
- 201671030122 杨凡亿 实验十四 团队项目评审&课程学习总结
项目 内容 课程名称 2016级计算机科学与工程学院软件工程(西北师范大学) 作业要求 实验十四 团队项目评审&课程学习总结 课程学习目标 (1)掌握软件项目评审会流程(2)反思总结课程学习内 ...
随机推荐
- 基于NGK发行的稳定币USDN如何撼动市场?
近日,基于NGK发行的稳定币USDN在各大社区的热度越来越高,很多人都说USDN将会撼动市场,那么USDN究竟有怎样的优势,能引起这么大的轰动呢?今天我们就一起来分析一下USDN. USDN是基于公链 ...
- 星盟全球投资副总裁DENIEL SOIBIM:如何激发创造力
丹尼尔·索比姆毕业于加州理工大学,2005年通过创建投资俱乐部对潜力公司进行天使投资,获得了美国Blue Run高层的重视,任营收专家评估师,为Blue Run项目提案做风险评估,09年与泰勒·亚当斯 ...
- PAUL ADAMS ARCHITECT:爱丁堡的房屋价值创历史新高
近日,英国知名房产公司保罗·亚当斯公司根据一组调查报告表示,今年第三季度,爱丁堡的房价再创历史新高,并向大家分析了原因. 保罗·亚当斯公司(公司编号:07635831)是英国一家著名的房地产公司,总部 ...
- Python数据结构与算法_删除排序数组中的重复项(06)
给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成. ...
- Django Admin 图片路径设置显示为图片(imageField显示方法设置)
一 使用环境 开发系统: windows IDE: pycharm 数据库: msyql,navicat 编程语言: python3.7 (Windows x86-64 executable in ...
- Java8 关于stream.foreach()和stream.peek()的区别解析
该思考来源于日常工作中,特记此心得. 思考:如何快速将list中的每个item内部属性值改变并进行其他流体操作呢? 下面做个测试:如何先在list中统一改变某属性的值,然后再根据某个属性取出该属性值最 ...
- Nearby Service新特性:Wi-Fi分享
PART 1: Wi-Fi分享功能介绍 朋友来家里做客.顾客到店里用餐-当他们想要给自己的手机链接Wi-Fi时,总免不了询问Wi-Fi名称和密码..这种问密码和给密码的过程十分麻烦,常常还会有听错或者 ...
- 纯生js实现Element中input组件的部分功能(慢慢完善)并封装成组件
现在实现的有基础用法.可清空.密码框,参考链接:https://element.eleme.cn/#/zh-CN/component/input HTML代码:想要测试哪个组件,直接将对应组件解开注释 ...
- selenium之元素定位的方法(一)
WebDriver 对象有多种方法用于在页面中寻找元素.他们被分成find_element_*和find_elements_*方法.find_element_*方法返回一个WebElement对象,代 ...
- C++对象的生存期笔记
下面随笔记录了C++对象的生存期知识 静态生存期 这种生存期与程序的运行期相同. 在文件作用域中声明的对象具有这种生存期. 在函数内部声明静态生存期对象,要冠以关键字static . 动态生存期 块作 ...