敏捷史話(十五):我發明了敏捷估算撲克牌 —— James Greening

雪鳥會議

 

雪鳥會議前夕,James Grenning 在 Object Mentor 與 Robert C. Martin 一同工作,彼時,組織雪鳥會議的 Bob 大叔向 James 發出了邀請。在得知會議地點後,James 毫不猶豫地接受了邀約,並在腦海中踊躍歡呼“我要去滑雪!”畢竟,“雪鳥是世界上最好的滑雪場之一”,沒有人會拒絕雪鳥的誘惑。當然,除了滑雪,更吸引他的是,在雪鳥會議中,他能夠與曾經共事、合作的 Kent BeckRon JeffriesMartin FowlerWard Cunningham等人探討對軟件開發的看法。

不過,他並未覺得這次會議能對自己的工作產生任何有利影響,他也從未預料到這會對軟件開發行業產生如此巨大而深遠的影響。“我們很確定沒有人會在乎這次會議,但至少我們做了一些事情: 找出我們有什麼共同點,以及共同點在哪裏。”
 

估算撲克

 

在一定程度上,《敏捷宣言》是在大家聚在一起找出分歧,再找到共同點的過程中產生的。James 認爲,這與估算撲克很相似,二者的共同點是: 一個團隊需要在某一部分達成共識
 

估算撲克的靈感來源於 一次失敗的計劃會議。當時的參會人員包括作爲敏捷教練的 James,以及一個8個人的團隊。會議由其中的兩位高級工程師主持召開,但在會議進行中,兩位工程師對如何構建用戶故事展開了反覆討論。在一片混亂的情況下,James 用了半小時甚至一小時的時間才意識到,兩人在會議開始時談論的工時數與 在會議結束時談論的工時數完全一致,他們只是在爭論用什麼方法去做。而此時其他參會的六個人由於沒有參與討論、估算,已經昏昏欲睡。正巧,當時 James 手上正好有索引卡片,於是在會議結束中場休息後,他 給每個人都發了卡片,並要求提出某項工作後,所有人只能出牌,不能講話,以達成一致決定。

 

James 在 Object Mentor 網站上寫下了這個故事,並提出估算撲克。隨後,Mike Cohn 發現了這一方法,在未改變使用方式的前提下,介紹了斐波那契數列及其他方法,同時決定將估算撲克在大範圍內推廣使用。發佈後,這副特殊的撲克在程序員中廣受歡迎。

 

 

估算撲克能通過以牌面朝下的方式隱藏數字,讓團隊避免“錨定”的認知偏差,提高估算效率。這是一種既能起到羣策羣力效果又有效避免衆口難調造成混亂的好方法, 當然,估算並不只依賴於這一副撲克牌,所以 James 的客戶們對估算撲克進行應用推廣,由此產生了 風險撲克 價值撲克等類型。雖然這兩種撲克並未推向市場,但團隊想要借鑑的話,實現起來並不困難。
 

測試驅動開發

 

1999年,James 開始學習極限編程,從事嵌入式諮詢工作。當時一直在爲客戶編寫用例並搭建體系架構的 James 在 Object Mentor 進行了第一次極限編程沉浸式學習,也開始接觸一些此前未了解過的事。當他看到當時名爲“測試優先於開發”(現在的測試驅動開發)的演示時,他發出驚歎:“哇!我們可以打破對我們沒有的東西的依賴。”因此,如果需要構建某個系統,並且處於無法與硬件交互的情況下,仍然可以創建軟件,並 通過存根和模擬對象等來開發尚不存在的事物

激動興奮之餘,受到啓發的他產生了爲做嵌入式開發的程序員介紹測試驅動開發的念頭,也開始做敏捷應用於嵌入式軟件的演講,希望 將敏捷介紹給嵌入式開發的 羣體。除此之外,James 也出版了一本以測試驅動開發爲主題的書籍:《測試驅動的嵌入式 C 語言開發》。

從這顆被點燃的火花開始,再到他把敏捷、測試驅動開發的火花帶給更多的嵌入式開發工程師,他就已經意識到,語言是不同的,而且不僅是編程語言,人們相互交流的方式本質上也是不同的,因爲他們談論的是不同的東西。不同的整體擁有不同的世界,所以遊走於不同的羣體間就可以學到不同羣體的知識,比如他通過與 Bob 的合作瞭解到了許多非嵌入式的知識。不論是面向對象、極限編程還是測試驅動開發,他希望把這些知識帶給更多的程序員。

敏捷本身不是目標,而是尋找誠實而高效的方法來交付有價值的產品,這是 James 一直強調的觀點。在2011年敏捷宣言十週年的訪談中,他認爲自己與十年前的自己相比初心不變,一直擁有自我學習和進步的自主意識,不斷地嘗試、驗證、完善一個又一個想法。所以,敏捷帶給 James 的是一種前進的方式,而不是可以在此停滯的目的地。如今又是新的十年走過,通過他不斷更新的網站和活躍的動態,我們相信他一直在前進,從未停滯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章