撰寫敏捷宣言
2001 年 2 月,一群 17 位軟體專家齊聚猶他州 Snowbird,討論當時稱為輕量化方法的領域。我們決定使用敏捷一詞來描述這一類新型的敏捷方法。我們也撰寫了敏捷軟體開發宣言,說明這些敏捷流程的價值觀與原則。我是這些自封先驅者之一,從那時起,我遇到許多關於這個團體起源和隨後成立敏捷聯盟的問題。以下是我對這些事件的回憶。
2006 年 7 月 9 日
起源
我可以相當準確地將敏捷聯盟聚會的起源歸因於 2000 年春季為極限程式設計社群中的各個領導者舉辦的閉門會議。Kent 邀請了一群活躍的 XP 人士到他位於奧勒岡州的鄉村地區,討論 XP 中的各種議題。除了確認的 XP 人士外,他也邀請了一些對 XP 感興趣但並非 XP 人士的人,例如 Alistair Cockburn、Jim Highsmith 和 Dave Thomas。
在會議中,我們討論了 XP 與其他類似方法之間的關係,當時稱為輕量化方法。我們同意 XP 最適合作為一個特定的流程:「立竿見影」。我們也同意 XP 和其中一些其他方法之間有許多共同點。因此,(Uncle)Bob Martin 決定嘗試召集對這類更廣泛的方法感興趣的人舉行會議。
我們聯繫了許多人,基本上就是我們認為對這個領域感興趣且活躍的人。我確定我們錯過了某些人,如果他們來的話,他們會很有興趣且有價值,但我們確實盡量涵蓋我們所能涵蓋的廣泛領域。經過許多討論,我們決定在 2001 年 2 月 11 日至 13 日在猶他州 Snowbird 舉行會議。幾個很想來的人無法參加,最後參加的人是 17 位,他們的姓名出現在宣言上。
Snowbird 會議與宣言
我們帶著有限且不同的期望來到 Snowbird。我的期望非常有限,我只希望我們能更深入地了解彼此,而更多的溝通將帶來一些有趣的事情,儘管我對那次會議沒有抱太大期望。我參加過類似的小型閉門會議(例如 90 年代中期在 Snowbird 舉行的 WOOD 系列會議),並且發現它們非常有價值。建立的聯繫會變成各種各樣的東西。事實上,我第一次在那些 WOOD 閉門會議上認識許多人,沒有他們,我可能不會發現自己參與了 XP 的誕生。
我們實際上發現我們很快就有許多共同點,並同意軟體開發的許多重要面向。因此我們決定進一步採取行動,而不僅僅是討論。我們喜歡撰寫一份文件的想法,這份文件將同時捕捉我們發現的共同點,並作為軟體產業的號召。
這的第一部分是要找到一個好名稱。非正式地,我們使用的各種方法被稱為「輕量級方法」。我們當中很少人覺得這是一個好名稱。有些人認為這有點侮辱性,但我們所有人都認為這錯失了重點。這些方法的重點不在於輕量級,這只是一個症狀,正如我在新方法中所爭論的。我們考慮了一堆名稱,最後同意使用「敏捷」,因為我們覺得這捕捉了我們認為對我們方法非常重要的適應性和應變能力。
重要的是要記住,我們對「敏捷」一詞沒有版權。我看到一些人寫文章說,根據敏捷一詞的某個定義,敏捷方法並非真正敏捷。這當然是真的,就像 Humpty Dumpty,我們挪用了敏捷這個名稱來描述我們所做的事情,而這肯定不是敏捷一詞的唯一用法。但我們需要一些詞來描述我們所持有的共同觀點,並認為敏捷可能是最好的選擇。
接下來的部分是撰寫文件。我們決定稱它為宣言,因為它是一個號召和我們信念的陳述。我們在會議期間主要針對我們的價值觀陳述進行討論,我對結果非常滿意。我認為這些價值觀確實捕捉了我們在會議期間分享的思想核心。
在會議的後段和接下來的幾個月中,我們致力於原則。一旦我們分開,進度就慢得多,但我們確實找到了電子郵件和 wiki 的良好組合來完成這項工作。我不認為這些原則與價值觀有相同的衝擊力,但它們仍然很好地記錄了我們所代表的立場。
由於 Ward(wiki 的發明者)在網路伺服器方面做了很多工作,他自願為宣言建立一個網路形象。他取得了網域名稱 agileAlliance.org,我們用來最初發布宣言,儘管它後來被交給了敏捷聯盟。宣言網站只保留宣言本身、Jim Highsmith 的一篇簡短文章,提供了一些背景、作者連結,以及讓人們註冊支持的地方。
宣言是一個號召:它說明了我們所代表的立場,以及我們所反對的立場。多項條款的措辭清楚地區分了我們的觀點和軟體產業中許多其他人的觀點。我認為這對於克服過去幾年讓許多事情變得模糊不清的模糊性非常重要。我看到增量和迭代這些術語被濫用於各種奇怪的專案形式。我希望宣言能清楚說明什麼是敏捷,什麼不是敏捷。
持續進行的組織
我們 17 位剛好身處 Snowbird 的人沒有什麼特別之處。我們並非唯一認同我們在宣言中寫下的價值觀和原則的人。我們都預期在未來幾年會努力推廣這些原則和價值觀,無論是透過特定流程或更廣泛的議程。然而,我們在這個運動中並沒有任何特殊地位,也沒有想要建立這樣的特殊地位。
17 位成員中有大部分人在 2001 年的 OOPSLA 大會上第一次有機會再次聚首。這次會議有許多其他對敏捷開發有興趣的人參與,清楚地表明這 17 位宣言作者「讓船隻下水」,但認為沒有理由對敏捷軟體的未來有任何特別發言權。
然而,這 17 位成員和新加入的幾個人都希望看到一個更永久的組織成立。因此,他們在 2001 年底成立了 敏捷聯盟,作為一個非營利組織,以促進敏捷方法為中心。您不會驚訝地發現敏捷聯盟的安排非常混亂。聯盟中的所有工作都是由非常獨立運作的計畫所執行。有一個董事會每季監督一次計畫,但除了這個檢查機制之外,計畫在執行內容上擁有很大的獨立性。
從那時起,敏捷聯盟已發展成一個穩定的持續組織,組織了一系列工作來推廣和了解這個新領域。這項工作的展示是年度敏捷大會。任何人都可以加入聯盟,但須繳納會費,而會員資格允許您選舉出經營組織的董事會。我曾(未經選舉)在第一屆董事會任職,以協助啟動計畫,但從那時起就一直保持距離——我對董事會過敏。事實上,敏捷聯盟的一大優點是,領導權已經遠遠超出了這 17 位作者——這很好地證明了我們「讓船隻揚帆」的決定。
敏捷與 Thoughtworks
你可能會好奇敏捷性如何融入我們在 Thoughtworks 的工作。我的看法是,敏捷性的基本精髓從一開始就深深植根於 Thoughtworks 的企業文化中。這也是吸引他們我的地方,反之亦然。宣言在 Thoughtworks 獲得好評,因為它公開說明了這些價值觀。多年來,我們的敏捷 DNA 不斷加強,因為我們自然而然地吸引了想要以敏捷方式工作的人。就像我常說的,我們也累積了更多使用敏捷方法的經驗,我們犯的錯誤比大多數人都多。我們希望以敏捷的方式完成所有工作,儘管客戶經常限制了這項渴望,但我們越來越傾向於嘗試並只在客戶讓我們使用我們發現成功的做法時才工作。我們也有許多客戶特別聘請我們,因為我們的敏捷專業知識,通常是因為他們希望我們教導他們敏捷工作。
話雖如此,我們不喜歡將自己視為「敏捷顧問」。對我們來說,敏捷方法是我們喜歡的工作方式,但並非我們所追求的精髓。如果我們發現更好的工作方式,我們會採用它。只是到目前為止,敏捷方法似乎是我們建構有用軟體的最佳方式。
其他回憶
其他參與者的部分備註:Alistair Cockburn、Dave Thomas、Jim Highsmith 和 Robert Martin
敏捷起義播客在 2016-17 年進行了一系列採訪宣言作者的播客,名為 敏捷起義敏捷宣言回顧。我的採訪 在此。
Caroline Mimbs Nyce 在 The Atlantic 雜誌(2017 年)撰寫了 讓軟體世界天翻地覆的冬季度假。根據我與她的互動,她仔細採訪了我們幾個人,並整理出一篇不錯的敘述。
Jeff Sutherland 在會議二十年後,上傳了一段 他回憶的影片
重大修訂
2006 年 7 月 9 日:將標題變更為「撰寫敏捷宣言」,新增連結至其他帳戶和其他小幅變更。
2006 年 7 月:一些小幅更新
2002 年 2 月:討論成立 Agile Alliance 非營利組織。
2001 年 11 月:更新未來章節
2001 年 8 月:更新未來章節
2001 年 6 月:以「敏捷宣言:起源與未來」為標題首次發布。