探討和使用Mob編程的人不是很多。盡管這樣,他們的經驗大部分都很有參考價值,因為他們對編程和團隊都有不同的見解。
Llewellyn Falco在第一屆Mob編程大會上展示了一個有關Mob編程的keynote,叫做《理解Mobbing的科學之處》。Mob編程大會在2016年5月1日-2日在馬薩諸塞州坎布里奇舉行。InfoQ通過Q&A和文章對其進行了跟蹤報道。
根據Llewellyn所說,Mob編程不是一項科學,而且計算機科學也幾乎不算是一項科學。盡管如此,至于一個團隊如何開發軟件,在此有一些常用的實踐方法:
獨立編程是現在最常用的實踐方法,不管是好的還是壞的,所有的東西都進入到了代碼里, 結對編程是第二最為人熟知的方法,兩個人的更好的想法會進入到代碼里, Mob編程可能是最無人知道的開發方式,但是根據Llewellyn所說——它不是獲取人們的大部分想法,而是選擇了最好的想法其中的科學又在哪呢?Llewellyn將它與系統理論聯系在了一起:一個團隊就是一個系統。而且它是一個很復雜的系統。人們很難將其中的一部分獨立出來,或引用Dan North的一句話就是“一只手擊掌會是什么聲音?”。
在系統中開始任何東西就像是點燃一團營火。團隊中如果全都是獨立編程的程序員,即使是最好的程序員,當一個人落后了,他或她(大部分時候)都是獨自解決問題,然后還是陷在問題中。為了產生新的想法,一個人需要讓想法發散出去,越發散越好。而這正是mobbing所做的:讓許多人試圖一起增強一個已有的思想火花。使用Llewellyn所做的另一個比喻,這就是豪斯醫生的劇集里(或硅谷第一季最后一集里)正好相反的事情:一個人有一個頓悟,或者引發了一個想法,然后團隊的其他人有助于使它成為一個更好的想法。這種影響就像記憶和群體記憶的關系。群體記憶一般都比一個人的頭腦更好,mob編程則可以驅動多人記憶。這和解決問題是一樣的:你有一個鼓勵Takeuchi和Nonaka稱之為“多元化”的系統狀態。而且一旦事情越來越糟時多元化就十分有用。
Llewellyn提出了下面一個顯然很簡單的問題:
你如何構建一個團隊?
在他的回答里,有兩個先決條件:
在mob中,你不知道想法會從哪里冒出,但是那真的不是重點。相反地,很多時候我們為生存傾向所折磨:一個人在觀察帶來成功的東西,而那正是你應該逆向分析的地方。舉個例子,因為高級管理人員的想法被采用了,所以通常人們會認為他們所說的是更好的想法。然而,大多數時候這和想法本身無關,特別是在一個會議中。這都與HiPPO有關:當一個高級人員只是與團隊交流而不是與團隊一起工作時,成功的機制是不同的。更直接一點地說,如果一個項目是成功的,是多虧了高級人員的想法;否則的話就是歸咎于團隊。 這引發了另一個Llewellyn解釋的現象:本杰明·富蘭克林效應。當我們認為我們對別人很友好、體貼和尊敬時,事實往往相反:其實是那個人對你很友好、體貼和尊敬。所以這個簡單的問題的完整答案是:
作為一個團隊一起工作。你和什么樣的人待的時間最久,你也會變成這樣的人。
現在我們回到人文主義:如果一個團隊的樣子不僅僅取決于團隊成員是什么樣的人,并且作為成員的我們會影響到我們周圍的人,那我們必須很友好、體貼和尊敬他人。這才能讓以身作則的精益原則生效。
Llewellyn最后與大家分享的一點是技術負債和技術資產的區別。只考慮負債而遺忘資產是不公平的(在你尋求降低成本而不是創造價值時很容易這樣)。
很難阻止10倍開發者的神話的流傳。但是10倍開發者看起來是什么樣的呢?根據一些基于數學的例子,我沒能理解很多,但是Llewellyn的結論是通常10倍看起來并不像你期望的那樣。它和看問題的角度有關,并且10倍的速度可能看起來很慢但是可以非常有效。
為了將這一點更加具體,他介紹了兩個陌生概念的差別:
無限的任務,例如將一塊蛋糕分成兩半直到時間結束。 超級任務,根本上來說是一個在有限的時間內完成的無限任務。例如在兩分鐘內持續將一塊蛋糕分成兩半,并不斷把留下的部分也分成兩半。你將在兩分鐘內結束切蛋糕的過程。從這點來說,并且回到執行的角度,沒有人可以說引進一個人1%的學習時間后是什么樣的。另外一個方面,如果你在一個大公司(或古老的公司)工作,你有機會來理解十年不學習會變成什么樣!
為了對mob編程進行總結,主要的關注點在于文化:為了獲得改變,它應該是開放的并且是一個邀請。這真的是對他的演講作為一個紋心結構的總結:你們應該作為一個團隊去參加大會,并帶著開放和邀請的文化。否則當你帶著新概念回來時,你的團隊無法與你保持同步(還會在大部分時間推開你)。
查看英文原文:Understanding the Science of Mobbing