标签: 演讲视频
重构的工作流程(2014 年面向对象编程大会)
在过去十多年中,重构已成为一种广泛使用的技术,用于保持代码库的高内部质量。然而,大多数团队并没有充分利用重构,因为他们没有意识到可以使用它的各种工作流程。在慕尼黑举行的 2014 年面向对象编程大会的主题演讲中,我探讨了其中一些工作流程:例如,清理重构、理解重构和准备重构。我还提醒人们,重构的常见理由会破坏你最大的努力。(本次演讲还以信息卡的形式呈现。)
不仅仅是程序员(2014 年面向对象编程大会)
这是我在慕尼黑举行的 2014 年面向对象编程大会主题演讲的第二部分,这是一个难以描述的演讲。通常我喜欢用标题和摘要来描述演讲的内容,但这次演讲是一次旅程,我不想告诉你我要去哪里,而是想和你一起探索这片土地。我想说的是,它始于我对大多数敏捷软件开发采用方式的最大问题——用户、分析师和程序员之间交互的性质。它继续探讨了这些角色,提出了程序员与用户的关系、我们对用户的责任,以及我认为程序员需要面对的两大挑战。
2018 年敏捷软件的状态
从表面上看,敏捷软件开发的世界是光明的,因为它现在已经成为主流。但现实令人担忧,因为所做的大部分工作都是伪敏捷的,无视敏捷的价值观和原则。我们应该关注的三个主要挑战是:打击敏捷工业联合体及其将流程强加于团队的习惯,提高技术卓越性的重要性,以及围绕产品(而不是项目)组织我们的团队。尽管存在这些问题,但社区最大的优势在于其学习和适应能力,能够解决我们最初的宣言作者无法想象的问题。
我们有责任战胜大规模监控
在我们 2014 年 goto 大会上的主题演讲中,Erik 和我考虑了软件专业人员对其软件如何影响社会承担责任的一个方面。目前最主要的问题之一是隐私,而大规模监控正在破坏隐私。电子邮件目前存在问题,因为电子邮件向服务的转移导致电子邮件提供的集中化,这使得监控更容易。我们需要通过努力扩大电子邮件加密的使用来改善隐私,从而使大规模监控的成本变得令人望而却步。这方面的挑战主要是用户体验和软件打包方面的挑战,而不是需要对密码学有深入了解的挑战。
我在 YouTube 上的演讲播放列表
我的许多演讲都可以在 YouTube 上找到。这是我在 YouTube 上的演讲播放列表,我会尽力保持更新。
NoSQL 简介
在奥胡斯 goto 大会上,我们有一个关于 NoSQL 实践经验的专题讨论。我被要求做一个初步的演讲,解释 NoSQL 数据存储的基本原理。我谈到了 NoSQL 的起源、NoSQL 数据模型的形式、许多 NoSQL 数据库考虑一致性问题的方式,以及多语言持久化的重要性。
制定移动实施战略
移动设备在流量中所占的比例仍然小于传统网络,但其份额正在增长,因此我们需要考虑制定有效的移动应用程序开发战略。我们讨论了产品愿景,将用户参与风格分为“前倾”、“后仰”和“低头”三种风格;同时将它们整合到跨媒体应用程序中。我们讨论了为什么关注价值比关注流量更重要,激光和全面覆盖的平台战略,并认为 Android、iOS 和 Web 是三种可行的平台选择。Giles 最后以我们与一家大型航空公司合作的案例研究结束了演讲。
关于无模式、NoSQL 中的一致性和软件设计经济学的演讲
我在旧金山举行的 Thoughtworks 活动上发表了演讲,采用了通常的系列演讲风格。这次演讲的内容包括如何以及何时使用无模式数据结构、为什么 NoSQL 数据库中的一致性不仅仅是 ACID 与 BASE 之间的区别,以及精心设计的软件的经济理由。
不断变化的数据全景
我们在 2012 年伦敦 QCon 大会上的主题演讲着眼于数据在我们生活中所扮演的角色(它所做的不仅仅是变得越来越大)。我们首先来看看数据世界是如何变化的:它正在增长,变得更加分散和互联。然后,我们转向行业的反应:NoSQL 的兴起、向服务集成的转变、事件溯源的出现、云的影响以及可视化发挥更大作用的新分析。我们快速了解了数据目前的用途,Rebecca 特别强调了发展中国家的数据。最后,我们考虑了所有这一切对我们作为软件专业人员的个人责任意味着什么。
持续交付
我们对持续交付进行了长达一小时的概述。主题包括持续交付的理由、部署流水线、持续集成、DevOps 和部署策略。最精彩的是 Jez 将候选版本拟人化为希腊神话中的英雄。
敏捷开发大会主题演讲
三个演讲部分:测试中的非确定性、软件开发的经济学、敏捷宣言发布 10 年。
为什么,而不是怎么做
Neal Ford 和我在巴黎举行的 USI 大会(2010 年)上发表了关于敏捷工作原理(而不是如何工作)的演讲。这探讨了使敏捷有效的一些核心力量,而不是关注技术。我们特别研究了沟通和反馈的作用,以及它们在敏捷环境中的相互作用。
三年真实的 Ruby 世界
在 2009 年伦敦 QCon 大会上的一次演讲中,我调查了 Thoughtworks 在 2006 年至 2008 年期间对 Ruby 的使用情况,在此期间我们完成了 41 个项目。我的演讲涵盖了我们对 Ruby 的生产力、速度和可维护性的看法。我的结论是,应该认真对待 Ruby 作为一种开发环境。如果你喜欢阅读而不是观看,我还有一篇文章涵盖了相同的材料。
民主政治技术革命
我的同事 Zack Exley 和我谈论了 2008 年奥巴马总统竞选活动中使用的软件。我发现特别有趣的一点是,软件是如何支持和互动竞选活动的组织方式的。
领域特定语言的元介绍
这是我通常的 DSL 介绍性演讲,但这次有所不同,因为我面对的是比平时更了解 DSL 的人群。所以,本质上,我把它变成了一个关于我如何向人们介绍 DSL 的演讲。
Google I/O 大会关于云的演讲
Rebecca Parsons 和我谈论了 Google App Engine 和云计算的总体情况。在第一部分中,我谈到了 Thoughtworks 的各个团队从 App Engine 实验中学到的东西,重点介绍了测试、持久性和并发性方面的问题。在第二部分中,Rebecca 谈到了企业在迁移到云计算时将面临的更广泛的问题。
我的巴士看起来大吗?
我的同事 Jim Webber 以其在企业集成方面采用轻量级和面向业务的方法而闻名。他还以其健谈和有趣的演讲风格而闻名。因此,我很荣幸也很紧张能在 2008 年 QCon 大会上与他一起做主题演讲。他做了一个非常有趣的演讲,其中穿插了一些严肃的内容。然后我们就直接开始了——也许是演讲前的啤酒起了作用。我们谈论了企业集成的历史、那些自以为强大但实际上只是臃肿的系统的增长、敏捷思维的作用、网络的影响(包括 Jim 关于网络为何被发明出来的独特理论),以及这如何导致游击 SOA。
厄运的深渊
我和我的同事 Dan North 在 2007 年 QCon 大会上做了一个主题演讲。我们都认为开发人员与其客户/用户之间的差距是软件开发中最大的问题。(我们本想称之为鸿沟,但这个词被过度使用了。)在这里,我们谈论这个差距,为什么它很重要,以及我们需要做什么来跨越它。我们特别指出,传统的业务分析师中介角色就像一艘渡轮,而我们真正需要的是一座桥梁,使开发人员能够直接与他们的客户联系(分析师可以建造和维护这座桥梁)。这是我最喜欢的联合主题演讲之一,因为它所讨论的话题非常重要,而且 Dan 是一位非常有启发性的联合演讲者。
revitalizing enterprise software
AMP 是一家澳大利亚金融服务公司,他们举办了一场名为 Amplify 的内部会议。他们邀请我谈谈敏捷软件开发。我考虑了如何使这次演讲最适合会议的整体流程,特别是因为我预计很大一部分听众不是 IT 人员。我决定谈谈 IT 项目如何可以是基础设施型的或战略型的。这种分类改变了你处理项目的方式,特别是 IT 人员和业务人员应该如何协作。
面向语言的编程和语言工作台
我和 Neal Ford 在 The Server Side Java Symposium 上发表的主题演讲。我们着眼于领域特定语言的日益增长的趋势,探讨了存在哪些类型的语言以及它们为何有趣。如果您正在寻找关于该主题的演讲,我更推荐 JAOO 视频,但这次演讲扩展了一些主题,并且由于 Neal 的参与而更具娱乐性。如果您能找到提取音频流的方法,它也可以仅作为音频使用。
敏捷主义者和架构师:盟友而非对手
在 2008 年旧金山 QCon 大会上,Rebecca Parsons 和我发表了一个关于敏捷方法如何与企业架构团队合作的演讲。目前,敏捷项目团队和架构团队之间存在很多不信任和冲突。我们深入探讨了为什么会这样,并探索了这些团队如何协同工作。
建立新的联盟
Thoughtworks 经常组织“季度技术简报”——在我们设有办事处的城市为社区举办的公开演讲。在多伦多举行的这次季度技术简报中,Scott Shaw 和我谈论了如何建立 IT 和业务之间的新关系。它解释了为什么我们认为应该解散 IT 部门。
RailsConf 2006 主题演讲
与我的大多数主题演讲一样,这是一个 即兴演讲。鉴于会议的主题,这次演讲的主题是 Rails 如何影响软件开发。