敏捷史话(十四):敏捷之峰的攀登者 —— 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)反思总结课程学习内 ...
随机推荐
- HTML+CSS+JS速查手册下载
下载链接:https://files.cnblogs.com/files/waterr/HTML_CSS_JS%E9%80%9F%E6%9F%A5.zip
- Example之selectOneByExample方法和selectByExample的使用
selectOneByExample示例如下: Example userExample = new Example(User.class);userExample.createCriteria().a ...
- sql if else 用法
语法: case when 条件1 then 结果1 when 条件2 then 结果2 else 结果N end 可以有任意多个条件,如果没有默认的结果,最后的else也可以不写, select c ...
- SpringBoot读取配置文件的内容
1.@Value读取 在springboot项目中,如果要读取配置文件application.properties或application.yml文件的内容,可以使用自带的注解@Value.以prop ...
- Django-1.11中文文档-模型Models(一)
官方文档链接 模型是数据信息的唯一并明确的来源.它包含了我们储存的数据的基本字段和行为.通常,每个模型映射到一张数据库表. 基本概念: 每个模型都是django.db.models.Model的一个子 ...
- .NET并发编程-数据并行
本系列学习在.NET中的并发并行编程模式,实战技巧 内容目录 数据并行Fork/Join模式PLINQ 本小节开始学习数据并行的概念模式,以及在.NET中数据并行的实现方式.本系列保证最少代码呈现量, ...
- 探索 .NET Core 依赖注入的 IServiceProvider
在上一篇文章中,我们学习了Microsoft.Extensions.DependencyInjection中的IServiceCollection,包括服务注册转换为ServiceDescriptor ...
- ios打包的IDP证书的创建方法
在我们打包ios应用的时候,需要一个IDP证书. 那么我们如何生成这个IDP证书呢?网上介绍的方法都是需要使用mac电脑,然后用mac电脑的钥匙串访问的功能先生成csr文件,然后去苹果开发者生成,然而 ...
- [00]数字图像处理-matlab速成
原本听的是mooc武汉大学的数字图像处理课程,但是无奈老师读ppt的能力太强,不太适应,后面的课程对于实验方面的要求甚低,无奈之下到处找课程,终于找到了一个适合自己的教程<王伟强-数字图像处理& ...
- 使用jsoup十分钟内掌握爬虫技术
对,就是十分钟,没有接触过爬虫的你,肯定一脸懵逼,感觉好高深的样子,一开始我也有点懵,但用了以后发现还是很简单的,java爬虫框架有很多,让我有种选择困难症,通过权衡比较还是感觉jsoup比较好用些, ...