上禮拜參加了Agile 臭皮匠聚會,會中討論到 Planning Poker 的相關議題,讓我想到之前在閱讀《再想一下:好決策的關鍵思考術》看到「數大即不同」的觀念,覺得很有趣。後來同人在 Scrum Community in Taiwan 看到有關管理層遇上敏捷的討論,我看到一句話讓我想到《領導的技術》這本書談到領導力量與組織關係的觀點。這兩個事件讓我意識到有趣的關連,想到可以寫這篇文章來分享我看開發者集體智慧的觀點。
上禮拜在 Agile 臭皮匠聚會討論在 Planning 過程預估 Task 的 Story Point,在 IBM 擔任 PM 的 Simon 學長分享自己的心得,提到 Planning Poker 並不是那麼容易推行,因為開發者通常不擅長估計 Story Point,而是希望由管理者來指定適當的 Story Point。不過,在場 Sam Ku 以自己 Planning Poker 的經驗提出反對的意見,他表示從統計數據顯示,由開發者集體預估的 Story Point 很接近 Task 實際花費的時間。雖然每個人都可能不知道該如何估計 Story Point,但他們卻會參考別人的意見來修正他們的預估,於是乎可以降低個人主觀估計的誤差。
Sam Ku 說他的 Team 有 6 ~ 8 人參與 Planning Poker,同人想到《再想一下:好決策的關鍵思考術》提到「數大即不同」的觀念,顯示出個體的平凡行為,在集體之後可造就出不凡的智慧。就如同在這本書提及的例子,觀察一隻螞蟻或蜜蜂的行為,我們不會認為牠會有什麼特別之處,但蟻群和蜂群的集體行為,卻表現出高度的智慧。
書中提出「數大即不同」的觀點,它指出人的思考看待集體行為常出現三項錯誤。首先,第一項錯誤是不恰當地推論個別行為來解釋集體行為。例如在投資決策上來說,股價關鍵在每股盈餘還是現金流量?前者著眼於組成部分,後者則在意整體表現,但很多人卻常因為每股盈餘而忽視現金流量。
其次,第二項錯誤是忽略針對體系之中某個組成分子著手處理,會對整體造成意想不到的後果。人們早已察覺,就算是出於最大善意的動機,個體的行動還是會對體系造成意想不到的後果。但是決策面臨的挑戰因為兩個原因而依然存在。首先,現代世界有比以前更互相聯結的系統。因此,我們會更常遇到這些系統,且更可能產生嚴重的後果。第二,我們依然憑藉對因果關係的幼稚理解,企圖在複雜系統內解決問題。
最後,第三項錯誤是孤立個別的表現,沒有適當考慮個別周邊的體系。明星的表現,在某個程度上是依賴圍繞在他身旁的人、結構和規範-也就是體系。我們在分析結果時,需將個人和制度的相對貢獻加以區分,但我們對此並不擅長。當我們犯錯時,往往會誇大個體的角色。
書中提到這三個繆誤源於同樣的癥結:在一個複雜的適應體系中,只看獨立的部分,無法了解整個體系的動態。而且還強調有鑑於技術、社會和環境正加速變化,人肯定會愈來愈常碰到複雜的系統。因此書中建議三項幫助我們處理在複雜的適應體系做好決定的想法:
- 在正確的層次下思考體系的行為
- 留意緊密的耦合系統
- 利用模擬打造虛擬世界
將近40年前,系統動力學之父佛睿斯特(Jay Forrester)曾寫道:「當人們面對複雜和高度的互動系統時,在產生判斷和直覺的過程中,有條不紊的進程會引人走向錯誤的決定」我們天生渴望掌握因果關係,導致我們在錯誤的水平下理解系統,造成可預見的錯誤。當個人出於善意、試圖管理系統,以達到特定目標時,卻可能因為意想不到的後果而導致失敗。因此處理複雜的適應系統,要小心謹慎設定系統的目標層級,接著小心進行代理人層級的變更,以達到目的。
從「數大即不同」的觀點我們理解到在集體行動中,個體的偏誤能夠相互抵削而呈現出更大的智慧。這代表在軟體開發團隊中,團隊成員應該具備足夠的必要多樣性,這樣才能夠運用集體智慧來解決複雜問題,而不是依賴明星或英雄的表現來提昇團隊績效。尤其是敏捷開發注重的並非計劃與預測的能力,而是強調在複雜體系的適應性與演化的執行能力。因此管理者即使是出於善意,預測個體無法表現出色的行為而壓抑團隊的多樣性,不讓成員參與甚至是影響決策的過程,就無法發展出集體智慧以解決問題,因為管理缺乏彈性,單靠個體的單獨表現將難以駕馭複雜系統的多變性。
從來在 Scrum Community in Taiwan 的某一則主題的討論中,同人看到一句話說「Agile 打破管理者(通常也是既得利益者)之權力」,這句話讓人想到溫伯格在《領導的技術》提到「力量來自於關係」的觀點,還有一段關於顧問、工程師、管理階層之間的對話,其中提到「如果不知道權力用來做什麼,就不要盲目追求權力,不然就會喪失自己的力量」。
同人從這邊聯想到 Agile 重視的是關係,一種整體大於總和的關係,才能讓團隊產生一加一大於二的綜效。如同「全像圖組織」把整體織入系統的所有部分一樣,團隊績效不是仰賴成員單一個體的出色表現或是管理者的權力,而是成員在簡單的互動過程之中,相互刺激與回饋而產生出有脈絡的節奏。團隊的自我組織,乃是開發者的集體智慧的創造呀。