视频

你在这个网站上看到的大部分是写作,但我知道很多人喜欢视频体验。我还没开始视频制作,这是件困难的工作,我觉得没有什么值得做的。但我确实会说,而且这些谈话通常都是通过视频记录下来的。所以我把这个页面放在一起,把我参与过的所有谈话和其他视频材料放在一起。

我会重复谈话,因此,几次会谈有多种视频版本可供选择。我也在这个页面上放置了一些有用的链接,以帮助您比谈话本身更深入地探索。

我的大部分演讲都是会议主题演讲,在过去的十年或二十年里,我一直在做主题演讲。21世纪的软件开发.标题故意含糊不清,让我自由地谈论我白天想说的任何事情。近年来,我组织了这些主题演讲会谈套间,在主题演讲时段做两三次20分钟的演讲。当他们接受视频治疗时,我鼓励会议将视频分解并单独发布单独的谈话,而不是将其打包到整个套件中。在这一页中,我分别描述了这些简短的谈话。不是所有的视频都将这些谈话片段分开,因此,对于那些将它们结合在一起的人,我已经链接到视频中间,以尽可能接近视频允许我进入实际谈话部分的开头(这些部分标有“”)。

敏捷软件的艺术

本质,流利,自宣言以来的思考,浩瀚的厄运决口

软件体系结构

敏捷架构,微服务

21世纪的软件开发

我在主题演讲中使用的所有片段

敏捷软件的艺术

“这个房间里有多少人参与过一个软件项目,在项目过程中需求发生了重大变化?”

开发软件的艺术是我们正在学习的。我最感兴趣的是软件系统,它支持那些既重要又不确定的需求。这导致了我对敏捷方法的兴趣,我是早期极限编程的先驱。

敏捷的本质和流畅性

敏捷软件开发的基本要素以及如何在学习过程中获得流畅性

展开…

我们写敏捷软件开发宣言已经十多年了,敏捷的模因比我们想象的更成功。但就像任何成功一样,语义扩散有规律的危险。我试图通过描述敏捷软件开发的本质来对抗这种疾病:倾向于适应性规划而不是预测性规划,并且偏爱人而不是过程。

然后我描述敏捷流畅模型,我发现了一种有效的方法来思考敏捷团队如何变得熟练,当你成为敏捷技术的更熟练的用户时,你通常要经历的步骤。

进一步阅读

为什么敏捷软件有效

和Neal Ford

为什么敏捷方法如此有效地工作?

展开…

NealFord和我在巴黎的USI(2010)做了一个演讲,讨论了为什么敏捷工作(而不是如何工作)的一些方面。这将探讨使敏捷有效的一些核心力量,而不是看技术。我们特别关注沟通和反馈的作用,以及它们在敏捷环境中的相互作用。

可悲的是,视频似乎被截断,并在谈话中被切断。我还没弄清楚怎么把完整的视频贴出来。

敏捷宣言:10年后

展开…

我在我们写了敏捷宣言.我阐述了我们写宣言的历史背景,解释为什么语义扩散从那以后,我们经历了它成功的必然结果,认为那些不关心敏捷的人通常是错误的,并强调两个领域,我们在敏捷思维中看到了一些有趣的新活动。

进一步阅读

重新发表敏捷宣言

戴夫·托马斯,杰兹谦卑,Katherine Kirk&塔蒂亚娜·巴迪塞安努

我们应该终止敏捷软件开发吗?

展开…

2014年,Dave“务实的”Thomas对敏捷软件世界的现状感到恼火。敏捷已死.奥胡斯Goto会议的组织者,长期以来积极探索敏捷风格的人认为这是一个让他和我团结在一起的好机会,作为宣言的两位作者,与一些一直处于接收端的人一起,使用和扩展该领域中的敏捷方法。

进一步阅读

巨大的厄运裂缝”

和Dan North

软件开发中最重要的因素是用户和开发人员之间的通信

展开…

2007年QCON的主题演讲,我和同事一起做的。丹北.我们都认为开发人员和他们的客户/用户之间的差距是软件开发中最大的问题。(我们称之为鸿沟,但是这个词被滥用了。)这里我们讨论这个差距,为什么重要,我们需要做什么来跨越它。特别是,我们认为,中间业务分析师的传统角色扮演着渡船的角色,虽然我们真正需要的是一个能够在开发人员和客户之间直接联系的桥梁(分析师可以构建和维护这座桥梁)。这是我最喜欢的联合主题演讲之一,都是因为我觉得这个话题很重要,因为丹是如此令人兴奋的共同演讲者。

丹·诺斯帮我解释了为什么桥比渡船更好。

软件体系结构

“建筑是重要的东西,不管发生什么事”

自从敏捷方法诞生以来,对于软件架构在敏捷项目中应该扮演什么角色(如果有的话)一直存在着激烈的争论。这很大程度上取决于你认为架构应该是什么。

使架构变得重要

什么是架构,为什么它重要

展开…

我被要求在奥森做一个14分钟的主题演讲,解释为什么建筑是重要的。我觉得最好的办法是从探索这个尴尬术语的含义开始,以我最喜欢的拉尔夫·约翰逊的邮件列表为指导。一旦我做到了这一点,我就开始关注设计耐力假设的经济论据,来解释为什么它很重要。bet188足球

进一步阅读

敏捷架构

和莫莉·迪斯曼在一起

什么是建筑?为什么很重要?我们如何确保这种情况发生?

展开…

软件架构是一个定义不清的概念,这使得从建筑业借用了一个不恰当的术语。我们认为架构是系统最重要属性的选择,关注那些难以改变的事情。体系结构可以随着系统的发展而发展,但只有通过努力和关注来确保它得到照顾。我们可以通过结合最初的愿景和持续的努力来做到这一点。

(达拉斯视频包括问答,总共65分钟。)

软件设计经济学bet188足球

在设计上花费精力的重点是提高生产力-快速提供功能bet188足球

展开…

人们常常通过指出对更高的工艺和质量的需求来证明软件设计的努力是合理的。bet188足球我的观点是这样的说教论点是错误的,相反,我们应该把重点放在经济学上。大多数软件工作都会随着时间的推移而变慢,因为糟糕的设计决策会减慢我们团队的速度。bet188足球注意设计可以减少甚至扭转这bet188足球种情况。

我发现,技术债务的比喻是一种思考不良设计后果的好方法——我们是支付利息还是还清本金。bet188足球有人认为技术债务不是草率设计的结果,bet188足球但我指出,技术债务来自各种原因,即使是最好的团队也会产生一些。

进一步阅读

丽贝卡·帕森斯和莫莉·迪什曼和我一起分享了这个舞台,讨论敏捷性和架构。

敏捷者和架构师:盟友而非对手

和丽贝卡·帕森斯在一起

建筑师应该发挥重要作用,如果不同,在敏捷项目中的角色。

展开…

在QCON旧金山2008中,Rebecca Parsons和我讨论了敏捷方法如何与企业架构组一起工作。目前,敏捷项目团队和架构团队之间存在着很多不信任和冲突。我们深入研究为什么会这样,并探索这些团队合作的方式。

关于六角形轨道的讨论

与Badri Janakilaman一起

六边形建筑,选择如何与数据库交互,以及如何使用Rubyobet188足球nRails等框架进行设计

展开…

我和ThoughtWorks最资深的开发人员之一Badri Janakiraman讨论了Rails应用程序的体系结构。我们首先讨论六边形架构的概念以及数据库在企业应用程序中的作用,尤其是Ruby on Rails应用程序。这些原则在使用活动记录或数据映射器模式组织与数据库的协作之间为决策着色。然后我们继续讨论如何使用像Rails这样的完整堆栈应用程序框架,可以选择将其视为平台或组件套件。

进一步阅读

连续交货

构建软件以便始终部署当前代码,降低风险并获得更快的反馈

展开…

持续交付现在正成为有效软件交付组织的中心实践。这篇演讲解释了它的工作原理,部署管道的作用,持续交付和持续部署的区别,还有一些重要的成分。它还涵盖了连续交付的三个主要好处:降低部署风险,令人信服的进展,以及用户反馈。

进一步阅读

没有建筑师的建筑

和埃里克·德恩伯格在一起

建筑学很重要,以及一些不需要传统软件架构师的东西

展开…

“软件架构师”这个名字有很多含义,而且这些通常都不好。开发人员想到了居住在象牙塔上却忘记了如何编写代码的弃权书。项目经理会想到那些在那些服务于模糊技术目的的计划中追求完美的技术专家。然而,对于任何软件项目架构的成功都至关重要,尤其是当前对微服务体系结构的兴趣。

我们认为,如果没有传统的体系结构角色,我们可以支持好的体系结构,介绍获得良好设计和可持续应用的技术。bet188足球

(微型)服务和架构

微服务

微服务成为2014年的热门软件架构

展开…

关于微服务的20分钟介绍性演讲。我介绍了微服务的定义,将其与更单一的方法进行比较,并概述在部署微服务应用程序之前必须完成的重要事项。

进一步阅读

我的车在这里面看起来大吗?

和Jim Webber

我们对SOA主流进行了不敬的批评,并提出了一种替代方法。

展开…

我的同事吉姆韦伯以采用轻量级和面向业务的方法在企业中集成而闻名。他也有一个非常健壮和有趣的演讲者的名声。所以我很紧张,因为我很兴奋能和他一起在2008年的QCON大会上发表主题演讲。他做了一个非常有趣的演讲,其中穿插了一些肉的小道消息。然后我们就加入进来,做了这件事——可能是在谈话前的品脱中有所帮助。我们讨论企业集成的历史,认为自己很强大但实际上很胖的系统的增长,敏捷思维的作用,网络的影响(包括吉姆的独特理论对其发明原因的影响)。这是如何导致游击队SOA的。

基础设施代码

使用可执行代码定义基础结构配置

展开…

我在铁器时代长大,新服务器必须作为物理机器订购,但现在我们生活在云时代,新服务器可以在几分钟内按需启动。为了利用云时代的速度和灵活性,我们必须重新考虑如何管理基础设施。

基础结构作为代码将基础结构定义保持为可执行的形式,然后可以像其他代码工件一样进行管理,并保存在版本控制中。这提供了更准确的文档,和基础设施,它们可以和应用程序代码一样遵循相同的构建和测试规程。这使我们能够扩展到更大的基础架构配置,同时保持更大程度的一致性,降低变化的风险,使我们能够迅速支持新的需求。

进一步阅读

事件驱动架构的许多含义

在我的整个职业生涯中,我都遇到过被描述为“事件驱动”的跨体系结构。但我发现这个短语有很多不同的意思,我把它分解成四种模式的组合。

展开…

2016年末,我参加了一个由高级思想工程开发人员组成的架构峰会,探讨我们在“事件驱动”标题下所做的各种工作。我们证实这个短语导致了很多不同的事情,他们经常混淆在一起。相反,我们发现专注于四种模式很有帮助,我们可以更精确地定义:

  • 事件通知:通过事件通信的组件
  • 基于事件的状态传输:允许组件在不调用源的情况下访问数据。
  • 事件溯源:使用事件日志作为系统的主记录
  • CQRS:具有用于从存储区的任何读卡器更新存储区的单独组件

进一步阅读

TDD死了吗?

大卫·海因梅耶尔·汉森于2014年在Railsconf做了一次挑衅的演讲,导致了一系列的外出活动。肯特·贝克我还讨论了TDD在软件开发中的作用。

巢穴

二千零一十四

5个视频加起来长达3.25小时

数据的变化面

NoSQL简介

介绍NoSQL数据库,包括数据库的类型,一致性问题,以及它们在数据存储中的作用。

展开…

术语“nosql”的起源是twitter meetup的hashtag,但它们成为关系数据库二十年霸权面临的最严峻挑战。由于他们名字的偶然性,它们涵盖的范围很广,没有太多的定义,但是将它们中的许多分组在面向聚合的数据库.

NoSQL数据库引入了关于一致性的问题,但是值得记住的是,即使使用ACID事务,我们仍然必须经常管理应用程序中的并发更新。许多NoSQL数据库支持分布式数据的能力使一致性更加复杂,导致cap定理在一致性和可用性(以及响应时间)之间进行权衡。这种权衡从根本上说是一种商业决策,不是技术性的。

NoSQL数据库是满足现代数据需求的重要选择,但不是唯一的选择。我们现在处于多语言坚持我们必须根据特定的数据访问需求选择数据存储技术。

这是我最受欢迎的演讲(原版Goto Aarhus视频的浏览量超过300000次)。

进一步阅读

NoSQL是什么?它是数据库的未来吗?

NoSQL和一致性

NoSQL数据库如何改变我们对数据库一致性的思考?

展开…

大多数NoSQL数据库迫使人们对一致性的思考与关系世界中的不同。面向聚合的数据库自然会消除关系系统中事务的一些需求。数据库事务并不妨碍我们处理并发更新中的问题。将分布添加到数据中会增加我们需要处理的一致性问题。cap定理主要是关于分布式系统中一致性和可用性(实际上是延迟)之间的权衡,这是一个主要是业务决策的权衡。

(这次谈话是我NoSQL Talk简介,从谈话中复制材料。)

进一步阅读

不断变化的数据全景图

和丽贝卡·帕森斯在一起

展开…

我们在2012年伦敦Qcon大会上的主题演讲着眼于数据在我们生活中所扮演的角色(它所做的不仅仅是变得更大)。我们从观察数据世界的变化开始:它的增长,变得更加分散和连接。然后我们转向业界的回应:nosql的兴起,向服务集成转变,事件源的出现,云和新的分析对可视化的影响更大。我们快速了解一下现在的数据使用情况,丽贝卡特别强调发展中国家的数据。最后,我们考虑所有这些对我们作为软件专业人员的个人责任意味着什么。

进一步阅读

图式

通常,当人们说数据结构没有模式时,他们错了。有一个模式,它只是一个隐式模式。

展开…

最近有很多关于无模式数据库的讨论,但几乎总是有一个模式。隐式模式似乎很灵活,但通常情况更糟,因为这样更难弄清楚如何使用数据。当人们想要无图式的时候,他们通常需要的是可变状态,这对于自定义字段和非均匀数据结构很有用。

进一步阅读

事件溯源

以使用版本控制的方式处理所有数据

展开…

事件源是一种通过存储描述更新的事件,然后处理该事件以更改当前应用程序状态来处理更新的方法。然后事件日志成为信息的权威存储,允许您删除任何应用程序状态并从事件存储中重建它们。本质上,这是版本控制系统采用的方法。使用事件寻源可以在审计中发挥多个优势,能够查询历史状态,调试,和分配。

进一步阅读

  • 文章我2005年的文章更详细地解释了这种技术

软件开发应该对世界产生什么影响?

不仅仅是编码猴子

我对敏捷软件开发最大的问题,以及由此产生的问题。

展开…

这是一个很难描述的话题。通常我喜欢用标题和摘要来描述谈话的内容——但这次谈话是一次旅行,我不想告诉你我要去哪里,而是和我一起探索地面。我要说的是,它从我最大的问题开始,我对大多数敏捷软件开发的采用——用户之间交互的本质,分析家,以及程序员。继续探索这些角色,提出关于程序员与用户关系的问题,我们对他们的责任,最后,我认为程序员需要面对的两大挑战。

我们战胜大规模监视的责任

和埃里克·德恩伯格在一起

软件开发人员有义务保护互联网上的隐私。

展开…

软件专业人士不能认为我们仅仅是一个接受订单的人,他们可以按照我们的投资者的要求做任何事情,我们对我们的软件如何影响我们的用户和更广泛的社会负责。即使我们认为我们没有什么可隐瞒的,我们的隐私权对于保护那些防止腐败和让社会进步的烦人的人是必要的。电子邮件向在线服务的转移导致人们担心电子邮件供应的集中,这使得我们更容易对重要的通信形式进行大规模监视。即使看似无害的拦截也会导致严重的问题,因为这些关于我们的信息对公司很有价值,即使对政府无害。

我们需要通过扩大电子邮件加密的使用来减少这些问题,因此,大规模监视的成本变得令人望而却步。这方面的挑战主要是用户体验和软件打包方面的挑战,不需要对密码学有很大的了解。

(本次演讲的前12分钟是我的“不仅仅是代码猴子”演讲的压缩版本。)

进一步阅读

多年来,我与Erik D_rnenburg就软件架构进行了会谈,TDD,现在,我们开发人员在维护互联网隐私方面必须发挥重要作用。

访谈:互联网隐私

和埃里克·德恩伯格在一起,Ola BiniTim Bray

21世纪的软件设计bet188足球

以下是我在“21世纪的软件设计”主题演讲中用到的所有演讲片段bet188足球

敏捷的本质和流畅性

敏捷软件开发的基本要素以及如何在学习过程中获得流畅性

展开…

我们写敏捷软件开发宣言已经十多年了,敏捷的模因比我们想象的更成功。但就像任何成功一样,语义扩散有规律的危险。我试图通过描述敏捷软件开发的本质来对抗这种疾病:倾向于适应性规划而不是预测性规划,并且偏爱人而不是过程。

然后我描述敏捷流畅模型,我发现了一种有效的方法来思考敏捷团队如何变得熟练,当你成为敏捷技术的更熟练的用户时,你通常要经历的步骤。

进一步阅读

连续交货

构建软件以便始终部署当前代码,降低风险并获得更快的反馈

展开…

持续交付现在正成为有效软件交付组织的中心实践。这篇演讲解释了它的工作原理,部署管道的作用,持续交付和持续部署的区别,还有一些重要的成分。它还涵盖了连续交付的三个主要好处:降低部署风险,令人信服的进展,以及用户反馈。

进一步阅读

软件设计经济学bet188足球

在设计上花费精力的重点是提高生产力-快速提供功能bet188足球

展开…

人们常常通过指出对更高的工艺和质量的需求来证明软件设计的努力是合理的。bet188足球我的观点是这样的说教论点是错误的,相反,我们应该把重点放在经济学上。大多数软件工作都会随着时间的推移而变慢,因为糟糕的设计决策会减慢我们团队的速度。bet188足球注意设计可以减少甚至扭转这bet188足球种情况。

我发现,技术债务的比喻是一种思考不良设计后果的好方法——我们是支付利息还是还清本金。bet188足球有人认为技术债务不是草率设计的结果,bet188足球但我指出,技术债务来自各种原因,即使是最好的团队也会产生一些。

进一步阅读

事件溯源

以使用版本控制的方式处理所有数据

展开…

事件源是一种通过存储描述更新的事件,然后处理该事件以更改当前应用程序状态来处理更新的方法。然后事件日志成为信息的权威存储,允许您删除任何应用程序状态并从事件存储中重建它们。本质上,这是版本控制系统采用的方法。使用事件寻源可以在审计中发挥多个优势,能够查询历史状态,调试,和分配。

进一步阅读

  • 文章我2005年的文章更详细地解释了这种技术

基础设施代码

使用可执行代码定义基础结构配置

展开…

我在铁器时代长大,新服务器必须作为物理机器订购,但现在我们生活在云时代,新服务器可以在几分钟内按需启动。为了利用云时代的速度和灵活性,我们必须重新考虑如何管理基础设施。

基础结构作为代码将基础结构定义保持为可执行的形式,然后可以像其他代码工件一样进行管理,并保存在版本控制中。这提供了更准确的文档,和基础设施,它们可以和应用程序代码一样遵循相同的构建和测试规程。这使我们能够扩展到更大的基础架构配置,同时保持更大程度的一致性,降低变化的风险,使我们能够迅速支持新的需求。

进一步阅读

微服务

微服务成为2014年的热门软件架构

展开…

关于微服务的20分钟介绍性演讲。我介绍了微服务的定义,将其与更单一的方法进行比较,并概述在部署微服务应用程序之前必须完成的重要事项。

进一步阅读

NoSQL和一致性

NoSQL数据库如何改变我们对数据库一致性的思考?

展开…

大多数NoSQL数据库迫使人们对一致性的思考与关系世界中的不同。面向聚合的数据库自然会消除关系系统中事务的一些需求。数据库事务并不妨碍我们处理并发更新中的问题。将分布添加到数据中会增加我们需要处理的一致性问题。cap定理主要是关于分布式系统中一致性和可用性(实际上是延迟)之间的权衡,这是一个主要是业务决策的权衡。

(这次谈话是我NoSQL Talk简介,从谈话中复制材料。)

进一步阅读

非确定性与测试

非确定性测试是一种可以破坏测试中所有值的疾病。

展开…

非确定性测试是有时通过的测试,有时失败,基本代码没有任何变化。未经处理,它们使您的整个测试套件毫无用处。首先你需要隔离它们,然后修复它们。常见原因包括缺乏测试隔离,异步,和远程服务通话

进一步阅读

不仅仅是编码猴子

我对敏捷软件开发最大的问题,以及由此产生的问题。

展开…

这是一个很难描述的话题。通常我喜欢用标题和摘要来描述谈话的内容——但这次谈话是一次旅行,我不想告诉你我要去哪里,而是和我一起探索地面。我要说的是,它从我最大的问题开始,我对大多数敏捷软件开发的采用——用户之间交互的本质,分析家,以及程序员。继续探索这些角色,提出关于程序员与用户关系的问题,我们对他们的责任,最后,我认为程序员需要面对的两大挑战。

图式

通常,当人们说数据结构没有模式时,他们错了。有一个模式,它只是一个隐式模式。

展开…

最近有很多关于无模式数据库的讨论,但几乎总是有一个模式。隐式模式似乎很灵活,但通常情况更糟,因为这样更难弄清楚如何使用数据。当人们想要无图式的时候,他们通常需要的是可变状态,这对于自定义字段和非均匀数据结构很有用。

进一步阅读

重构工作流程188足球比分直播

展开…

188足球比分直播重构是维护代码库健康的重要技术。通常是在测试驱动开发,但是在开发人员的工作流程中有许多地方可以使用重构。188足球比分直播使用它特别重要机会主义的,这样问题一出现就可以解决。定期重构的价值不在于对工艺的要求,188足球比分直播但出于业务原因,要确保未来有价值的软件流。

进一步阅读

其余的…

3.年(:ruby)

展开…

在2009年伦敦Qcon的一次演讲中,我调查了2006-2008年ThoughtWorks对Ruby的使用情况,当时我们做了41个项目。我的演讲涵盖了我们对鲁比创造力的看法,速度,以及可维护性。我的结论是Ruby应该作为一个开发环境来认真对待。

进一步阅读

面向语言编程导论

使用特定领域语言的早期介绍

展开…

进一步阅读

连续交货(2011年8月)

Jez谦逊

展开…

我们提供一小时连续交货的概述。主题包括持续交付的理由,部署管道,持续集成,德沃普斯以及部署策略。最引人注目的是,杰兹把一个获释的候选人拟人化为希腊神话中的英雄。

进一步阅读

制定移动实施战略

和吉尔斯·亚历山大

展开…

与传统的网络相比,移动仍然是流量的一小部分,但其份额在不断增长,因此,我们需要考虑开发有效移动应用程序的策略。我们讨论如何考虑产品愿景,将用户参与的风格分为“前倾”,“向后倾斜”,以及“俯视”风格;将它们集成到跨媒体应用.我们讨论了为什么关注价值比关注交通更重要,激光和掩护你的基地平台战略,安卓认为,网间网操作系统,网络是三种可行的平台选择。吉尔斯以我们与一家主要航空公司合作的案例研究结束。

进一步阅读

建立新的联盟

和Scott Shaw

展开…

thoughtworks经常组织“季度技术简报”——在我们有办公室的城市里为社区举行公开讨论。在多伦多的这个季度,斯科特肖和我讨论了如何在IT和业务之间建立新的关系。它解释了为什么我们认为应该解散IT部门。

奥巴马竞选中的技术

和Zack Exley

展开…

我的同事扎克·埃克斯利和我讨论了2008年奥巴马总统竞选时使用的软件。我发现一个特别有趣的方面是软件启用的方式以及与活动的组织方法的交互。

进一步阅读

技术卓越是什么样子的?

为了在现代数字商务中取得成功,你需要一个熟练的技术组织。文化如何,人才,技术融合创造了这一点?

展开…

人们所说的将企业转变为数字组织的一切都很好,但是,除非你有一个技术组织能够很好地完成它的工作,否则这是不可能发生的。

Nicole Forsgren做过将IT绩效与组织绩效相关联的研究,她对DevOps的研究如何确定IT性能的三个重要指标:部署频率,部署提前期,平均恢复时间。彩票的一个简单例子说明了快速周期时间的货币价值。

我们观察到的高绩效技术团队的特点包括:使用连续交付,以业务为导向的方式组织,技术主导,在信任的氛围中运作。为了走得更远,你需要朝正确的方向走,但也要注意你的车。