「在場有多少人曾參與過軟體專案,而在專案進行期間需求有大幅變更?」
您會在這個網站上找到許多文章,但我知道很多人喜歡觀看影片。我沒有從事影片製作,這是一項困難的工作,而且我不覺得這是有價值的。但我會演講,而且這些演講通常都會被錄製成影片。所以我整理了這個頁面,彙整我參與的所有演講和其他影片素材。
我會重複演講,所以有幾場演講有提供多個影片版本供您選擇。我也在這個頁面上放了有用的連結,幫助您進一步探索演講本身。
「在場有多少人曾參與過軟體專案,而在專案進行期間需求有大幅變更?」
敏捷軟體開發的基本要素,以及您在學習時如何獲得流暢度
英國曼徹斯特
阿姆斯特丹
曼谷
為什麼敏捷方法能如此有效地運作?
與 Neal Ford 合作
Neal Ford 和我在巴黎的 USI(2010 年)上發表了一場演講,探討敏捷方法為何有效(相對於如何有效)的一些面向。這深入探討了讓敏捷方法發揮成效的一些核心力量,而不是著重於技術。特別是,我們探討了溝通和回饋的角色,以及它們如何在敏捷環境中相互作用。
遺憾的是,影片似乎被截斷,在演講中段就結束了。我無法找出如何發布完整影片。
巴黎
拉斯維加斯
我們是否應該終結敏捷軟體開發?
與 Dave Thomas、Jez Humble、Katherine Kirk 和 Tatiana Badiceanu 共同發表
2014 年,人稱「務實主義者」的 Dave Thomas 對敏捷軟體世界的現況感到不滿,並表示 敏捷已死。在奧胡斯舉行的 goto 會議組織者長期以來一直積極探索敏捷風格,他們認為這是一個讓他和身為宣言作者之一的我,與一些長期使用和推廣敏捷方法的人齊聚一堂的好機會。
奧胡斯
軟體開發中最重要的因素是使用者和開發人員之間的溝通
與 Daniel Terhorst-North 共同發表
我在 2007 年的 QCon 大會上與同事 Daniel Terhorst-North 共同發表演說。我們都認為開發人員與其客戶/使用者之間的鴻溝是軟體開發中最大的問題。(我們稱之為鴻溝,但這個詞用得太濫了。)在這裡,我們討論這個鴻溝、為何它很重要,以及我們需要採取哪些措施來跨越它。我們特別提出論點,認為傳統的中介業務分析師角色扮演著渡輪的角色,而我們真正需要的是一座橋樑,讓開發人員和他們的客戶能夠直接聯繫(分析師可以建立和維護這座橋樑)。這是我們最喜歡的聯合主題演講之一,原因是我認為這個主題非常重要,而且 Dan 是一位非常有啟發性的共同演講者。
倫敦
Daniel Terhorst-North 幫助我解釋了為什麼橋樑比擺渡人更好
在 Craft Conf 上與 Birgitta Böckeler 共同演講
架構就是重要的事情,無論它是什麼。
自敏捷方法開始以來,對於軟體架構應該在敏捷專案中扮演什麼角色(如果有)一直存在著深入的辯論。這在很大程度上取決於你認為架構應該是什麼。
架構是什麼以及它為什麼重要
我被要求在 OSCON 上做一個 14 分鐘的主題演講,說明為什麼架構很重要。我決定最好的方法是從探討這個尷尬術語的含義開始,並以 Ralph Johnson 最喜歡的郵件清單文章為指導。一旦我完成這項工作,我就轉向探討它為什麼重要,方法是專注於設計耐力假說的經濟論點。
俄勒岡州波特蘭
在自主團隊的世界中,架構扮演什麼角色,我們如何實現它?
與 Birgitta Böckeler 共同演講
布達佩斯
投入設計工作的重點是提高生產力 - 快速交付功能
人們經常藉由指出對更精湛的工藝和品質的需求來證明軟體設計工作的合理性。我的觀點是,這種道德論證是錯誤的,我們應該專注於經濟學。隨著糟糕的設計決策的負擔拖慢我們的團隊,大多數軟體工作會隨著時間而變慢。注重設計可以減少甚至逆轉這種情況。
我發現技術債務的比喻是一種思考不良設計後果的好方法 - 我們是支付利息還是償還本金。有些人認為技術債務並非草率設計的結果,但我指出技術債務來自於各種原因,即使是最好的團隊也會產生一些債務。
拉斯維加斯
舊金山
架構師應在敏捷專案中扮演重要但不同的角色。
與 Rebecca Parsons
在 2008 年的舊金山 QCon 大會上,Rebecca Parsons 和我發表了一場關於敏捷方法如何與企業架構群組合作的演講。目前,敏捷專案團隊與架構群組之間存在許多不信任和衝突。我們深入探討其原因,並探討這些群組可以如何合作。
舊金山
Rebecca 是 Thoughtworks 的技術長。我們在多場演講、各種著作、Thoughtworks 雷達 和我們公司的技術方向上進行了合作。
六角形架構,選擇如何與資料庫互動,以及如何使用 Ruby on Rails 等架構進行設計
與 Badri Janakiraman
什麼是架構,為什麼它很重要,我們如何確保它發生?
與 Molly Dishman
軟體架構是一個定義不清的概念,它不適當地借用了建築產業的術語。我們認為架構是選擇系統最重要的屬性,重點在於那些難以改變的事物。架構是隨著系統成長而演變的事物,但只有透過努力和關注才能確保它受到照顧。我們可以透過結合最初的願景和持續的努力來做到這一點。
(達拉斯影片包含問答,總長 65 分鐘。)
波士頓
達拉斯
建構軟體,以便你隨時都能部署目前的程式碼,降低風險並獲得更快的回饋
英國曼徹斯特
架構既重要,又不需要傳統的軟體架構師
與 Erik Dörnenburg
軟體架構師的稱號有很多涵義,而且通常不是好的。開發人員認為他們是住在象牙塔裡、忘記如何撰寫程式碼的空談家。專案經理認為他們是追求技術目的不明確的計畫中追求完美的技術人員。然而,對於任何軟體專案的成功來說,架構至關重要,特別是目前對微服務架構的興趣。
我們認為,我們可以在沒有傳統架構角色的情況下支援良好的架構,並介紹技術以取得良好的設計和永續的應用程式。
布達佩斯
微服務成為 2014 年最熱門的軟體架構
柏林
雪梨
英國曼徹斯特
我們對 SOA 主流進行不敬的批判性審視,並提出替代方法
與 Jim Webber 合作
我的同事 Jim Webber 在企業整合中以輕量級且以業務為導向的方法建立了良好的聲譽。他也以健談且幽默風趣的演講者聞名。因此,我既緊張又興奮地與他同台在 2008 年 QCon 大會上發表演說。他準備了一場非常有趣的簡報,其中穿插了一些嚴肅的要點。然後,我們就開始進行,也許是受到演講前的啤酒幫助。我們討論了企業整合的歷史、那些自以為強大但其實只是肥胖的系統的成長、敏捷思考的角色、網路的影響(包括 Jim 關於網路發明原因的獨特理論),以及這如何導致游擊隊 SOA。
倫敦
使用可執行程式碼定義基礎設施設定
雪梨
在我的職業生涯中,我遇到過被描述為「事件驅動」的架構。但我發現這個詞組有許多不同的含義,我將其歸納為四種模式的組合。
2016 年底,我參加了 Thoughtworks 高級開發人員的架構高峰會,以探討我們在「事件驅動」標題下所做的各種工作。我們確認這個詞組導致了截然不同的結果,而且經常混淆在一起。相反地,我們發現專注於四種模式很有幫助,我們可以用更精確的方式來定義它們
芝加哥
David Heinemeier Hansson 在 2014 年的 RailsConf 中發表了一場引人深思的演講,這導致了一系列 Hangouts,他和 Kent Beck 以及我討論了 TDD 在軟體開發中的作用。
與 Rebecca Parsons
倫敦
以我們使用版本控制的方式處理所有資料
雪梨
通常當人們說資料結構是無模式時,他們是錯的。模式是存在的,只不過是隱含的模式。
阿姆斯特丹
舊金山
NoSQL 資料庫簡介,涵蓋資料庫類型、一致性問題以及它們在資料儲存中扮演的角色。
「NoSQL」一詞的起源是 Twitter 聚會的標籤,但它們已成為對關係式資料庫二十年霸權最嚴峻的挑戰。由於它們名稱的偶然性,它們涵蓋的範圍很廣,沒有太多定義 - 但將它們中的許多歸類在 聚集導向資料庫 的標籤下是有用的。
NoSQL 資料庫引入了與一致性相關的問題,但值得記住的是,即使使用 ACID 交易,我們仍然經常必須在應用程式中管理並發更新。許多 NoSQL 資料庫支援分散式資料的能力進一步複雜化了一致性,導致 CAP 定理在一致性和可用性(以及回應時間)之間進行權衡。這種權衡從根本上來說是一個商業決策,而不是技術決策。
NoSQL 資料庫是現代資料需求的嚴肅選擇,但不是唯一的選擇。我們現在正處於 多語持久性 的時期,我們必須根據特定的資料存取需求來選擇資料儲存技術。
這是我的最熱門演講(原先的 Aarhus 影片有超過 75 萬次觀看次數)。
奧胡斯
Köln
什麼是 NoSQL,它是否是資料庫的未來?
NoSQL 資料庫如何改變我們必須思考資料庫一致性的方式?
大多數 NoSQL 資料庫都強迫人們以不同於關係世界的方式思考一致性。聚集導向資料庫自然消除了關係系統中對交易的一些需求。資料庫交易並不能阻止我們處理並發更新中的問題。將分散式加入我們的資料會增加我們需要處理的一致性問題類型。CAP 定理主要關於分散式系統中一致性和可用性(實際上是延遲)之間的權衡 - 這種權衡主要是一個商業決策。
(這個演講是我 NoSQL 簡介演講 的一致性部分,並重複了該演講中的材料。)
舊金山
敏捷軟體開發上我最大的問題,以及由此衍生的問題。
這場演講很難描述。通常我會用標題和摘要來說明演講內容,但這場演講是一趟旅程,我不想告訴你我要去哪裡,而是希望你和我一起探索。我要說的是,這場演講的開頭是我對大多數敏捷軟體開發採用方式最大的問題,也就是使用者、分析師和程式設計師之間互動的本質。接著探討這些角色,提出程式設計師與使用者的關係、我們對他們的責任,以及最後我想程式設計師必須面對的兩大挑戰。
慕尼黑
墨爾本
柏林
軟體開發人員有義務維護網路上的隱私
與 Erik Dörnenburg
軟體專業人員不能認為自己只是聽命行事,做金主要求我們做的事,我們有責任為我們的軟體如何影響我們的使用者和更廣泛的社會負責。即使我們認為自己沒有什麼好隱藏的,我們的隱私對於保護那些令人討厭的人是必要的,他們可以防止貪腐並讓社會進步。電子郵件轉移到線上服務導致電子郵件供應商的集中令人擔憂,這使得大規模監控我們重要的通訊形式變得更容易。即使看似無害的攔截也可能導致嚴重的問題,因為這些關於我們的資訊對公司來說是有價值的,即使對政府來說是無害的。
我們需要透過努力擴大電子郵件加密的使用來減少這些問題,這樣大規模監控的成本就會變得過高。這方面的挑戰主要是使用者體驗和軟體封裝的挑戰,而不是需要對密碼學有深入了解的事情。
(這場演講的前 12 分鐘是我「不只是寫程式的人」演講的濃縮版。)
奧胡斯
多年來,我和 Erik Dörnenburg 談論軟體架構、TDD,以及現在我們開發人員在維護網際網路隱私方面所扮演的重要角色。
與 Erik Dörnenburg、Ola Bini 和 Tim Bray
奧胡斯
我的大多數演講都是會議主題演講,在過去的十幾年裡,我一直在以 21 世紀的軟體開發 為題進行主題演講。這個標題故意模糊,讓我可以在當天自由地談論任何我想談論的話題。近年來,我將這些主題演講架構為 演講套件,在主題演講時段中進行兩到三次 20 分鐘的演講。由於這些演講會以影片方式呈現,我鼓勵會議將影片分段並分別發布個別演講,而不是將它們捆綁在整個套件中。在此頁面中,我將分別描述這些簡短的演講。並非所有影片都會分開這些演講片段,因此對於將它們合併的影片,我已連結到影片中間,以便盡可能接近影片允許我進入實際演講片段的開頭(這些已標記為「✂」)。
使用可執行程式碼定義基礎設施設定
雪梨
以我們使用版本控制的方式處理所有資料
雪梨
非決定論測試是一種疾病,可能會破壞測試中的所有價值。
拉斯維加斯
投入設計工作的重點是提高生產力 - 快速交付功能
人們經常藉由指出對更精湛的工藝和品質的需求來證明軟體設計工作的合理性。我的觀點是,這種道德論證是錯誤的,我們應該專注於經濟學。隨著糟糕的設計決策的負擔拖慢我們的團隊,大多數軟體工作會隨著時間而變慢。注重設計可以減少甚至逆轉這種情況。
我發現技術債務的比喻是一種思考不良設計後果的好方法 - 我們是支付利息還是償還本金。有些人認為技術債務並非草率設計的結果,但我指出技術債務來自於各種原因,即使是最好的團隊也會產生一些債務。
拉斯維加斯
舊金山
通常當人們說資料結構是無模式時,他們是錯的。模式是存在的,只不過是隱含的模式。
阿姆斯特丹
舊金山
慕尼黑
墨爾本
NoSQL 資料庫如何改變我們必須思考資料庫一致性的方式?
大多數 NoSQL 資料庫都強迫人們以不同於關係世界的方式思考一致性。聚集導向資料庫自然消除了關係系統中對交易的一些需求。資料庫交易並不能阻止我們處理並發更新中的問題。將分散式加入我們的資料會增加我們需要處理的一致性問題類型。CAP 定理主要關於分散式系統中一致性和可用性(實際上是延遲)之間的權衡 - 這種權衡主要是一個商業決策。
(這個演講是我 NoSQL 簡介演講 的一致性部分,並重複了該演講中的材料。)
舊金山
微服務成為 2014 年最熱門的軟體架構
柏林
雪梨
英國曼徹斯特
敏捷軟體開發的基本要素,以及您在學習時如何獲得流暢度
英國曼徹斯特
阿姆斯特丹
曼谷
建構軟體,以便你隨時都能部署目前的程式碼,降低風險並獲得更快的回饋
英國曼徹斯特
敏捷軟體開發上我最大的問題,以及由此衍生的問題。
這場演講很難描述。通常我會用標題和摘要來說明演講內容,但這場演講是一趟旅程,我不想告訴你我要去哪裡,而是希望你和我一起探索。我要說的是,這場演講的開頭是我對大多數敏捷軟體開發採用方式最大的問題,也就是使用者、分析師和程式設計師之間互動的本質。接著探討這些角色,提出程式設計師與使用者的關係、我們對他們的責任,以及最後我想程式設計師必須面對的兩大挑戰。
慕尼黑
墨爾本
柏林
建立可支援敏捷專案的程式碼庫之關鍵實務。
當人們談論敏捷方法時,他們通常會專注於產品和專案管理方面。透過提供小版本,並從每個版本中學習,團隊可以隨著我們了解使用者的需求而快速改變方向。這讓我們可以在不確定的環境中快速建置提供價值的軟體。
這種工作方式很有價值,但為了讓它發揮作用,我們需要一個支援快速變更的程式碼庫,不只針對其細節,也針對其整體架構。為了建置這樣的程式碼庫,我們需要幾項技術實務,這些實務支撐著敏捷流暢度模型的提供區域。
曼谷
奧胡斯
與 Scott Shaw
Thoughtworks 經常舉辦「季度技術簡報」 - 在我們設有辦公室的城市中舉辦的開放式社區演講。在多倫多的這場 QTB 中,Scott Shaw 和我談論如何建立 IT 和企業之間的新關係。它說明了我們為何認為應該解散 IT 部門。
多倫多
倫敦
與 Zack Exley
倫敦
與 Giles Alexander
行動裝置仍比傳統網路佔較小的流量,但其佔有率正在成長,因此我們需要思考我們的策略,以開發有效的行動應用程式。我們討論思考產品願景、將使用者參與的風格區分為「前傾」、「後傾」和「俯視」風格,同時將其整合到跨媒體應用程式中。我們討論為何專注於價值比流量更重要,雷射和涵蓋所有基礎的平台策略,並認為 Android、iOS 和網路是三種可行的平台選擇。Giles 以我們與一家主要航空公司合作的案例研究作為結尾。
倫敦
與 Jez Humble
墨爾本
要讓現代數位業務成功,您需要一個熟練的技術組織。文化、人才和技術如何結合才能創造出這一點?
人們談論將企業轉型為數位組織,這一切都很美好,但除非您有一個能做好工作的技術組織,否則這是不可能發生的。
Nicole Forsgren 進行了一項研究,將 IT 績效與組織績效相關聯,以及她的 DevOps 研究如何找出 IT 績效的三個重要指標:部署頻率、部署前置時間和平均復原時間。彩券的簡單範例說明了快速週期時間的貨幣價值。
我們觀察到高績效技術團隊的特性包括:使用持續傳遞、以業務為導向、技術領先,並在信任的氛圍中運作。要走得遠,你需要朝正確的方向前進,同時也要照顧好你的車輛。
墨爾本