Fred George談程序員的無政府主義
在 Agile India 大會的第一天,Fred George 談到自己對目前超越敏捷運動的思考,他將這種狀態稱為“程序員的無政府主義”。他分享了自己在 Forward Technology 公司的一些個人經歷,并指出這種方式可以形成非常高效的環境,解決復雜問題,同時帶來實打實的重要業務成果。
演講伊始,Fred 先提到 Cynefin 框架,將重點放在復雜問題上,然后他對比了傳統軟件開發方法與這種相對較新的敏捷方法在解決問題上的不同。傳統方法規定:客戶定義好項目,然后轉到軟件開發公司實現;在敏捷中,客戶與軟件開發公司之間是合作伙伴關系,以此推動項目前進。不過,“程序員的無政府主義”將之推向極致,客戶只需向開發團隊說明業務問題,開發團隊會接手項目,推動項目,并負責創建業務價值。
他應用了一個例子:
在 Forward 公司中,有一次,我們必須重寫一個之前由 .NET 和 SQL Server 開發的系統。團隊最后使用了多種技術,包括 Ruby、Clojure、Node.js、MySQL、MongoDB 等等。系統的核心是能源使用賬單計算邏輯,包括多種復雜條件和檢查。在原來的 .NET 系統中,該邏輯散布在整個系統中。作為重寫練習的一部分,我們用 Ruby 重新開發了這個核心邏輯,用了大概 600 行代碼。然后我們用 Clojure 再次重寫,用了 300 行代碼。同樣的幾個程序員又用 Clojure 重寫,用了 200 行代碼,而且比上次的實現更清晰。最后,這塊代碼完成了老系統很多想做而從沒有做的事情!什么樣的管理人員會允許你把系統核心重寫三次呢?沒有。這就是為什么我們沒有管理人員!
Fred 解釋說:這樣激進的環境是可行的,因為開發人員理解業務價值的來源,而且業務度量體系是惟一被檢驗的度量體系。如果他們犯錯,業務度量體系會告訴他們,他們就會調整、修復錯誤。持續交付推動持續反饋,改正措施會馬上落實。開發人員在各個方面都會進行自組織,包括招聘和工作分配。
從傳統的瀑布式方式轉向敏捷,需要思維方式上的重要轉換,以及在客戶與開發團隊之間建立信任。轉向“程序員的無政府主義”需要客戶更多信任,因為他們失去了對項目所有表面上的控制,而且完全依賴開發團隊交付業務價值。同時,這個例子里面的公司 Forward Technology 也承擔了很多風險,因為失敗被看做常事,但也有機會快速學習。說到另一家有這種開發人員驅動、承擔風險文化的公司,就是 非死book。
您可以在這里看到 Fred 的演講文稿。
查看英文原文:Fred George On Programmer Anarchy