這些天,你老是聽到“敏捷開發”這個詞。使用敏捷方法,團隊能比用傳統方法更快把事情做好。它也能讓顧客更快樂。它還能讓人們更喜歡自己的工作。毫無疑問,敏捷開發已經改變了軟件開發的歷史,而且,有許多專家相信,這種方法已經蓄勢待發,即將從IT業延伸到其他行業中去。
這就很諷刺了。它本來就不是在IT業誕生的。
有人認為敏捷原則起源于佛郎西斯·培根在1620年發表的關于科學方法的論述。更可靠的起源或許是20世紀30年代,當時,貝爾實驗室的物理學家和統計學家沃特·休哈特(Walter
Shewhart)開始將PSDA循環(計劃-執行-檢查-處理)應用于改善產品和工作流程。休哈特將這種循環增長的改善方法教給了他的實習生威廉·愛德華茲·戴明。后者在二戰后持續幾十年的時間里在日本大力推廣這種理念。豐田公司聘用戴明培訓了數百名經理,最終將他的理念發展成為著名的“豐田生產方式”,而這正是今天“精益思考”的主要思想來源。這種循環增長的改善方法也是20世紀50年代X-15高超音速飛行器項目成功的一個主導因素。
1986年,我們一位成員(Takeuchi)與合著者Ikujiro Nonaka在《哈佛商業評論》上發表了文章《The New New Product Development Game》。通過研究比競爭對手更快實現成功創新的那些企業,兩位作者發現了一種團隊取向的工作方法,正是這種方法改變了很多產品的設計和改進,比如富士施樂(Fuji-Xerox)的復印機、本田的汽車引擎和佳能的相機。產品改進的傳統方法是“接力賽模式”,一群專家完成一個階段的內容,再將它移交給另一群專家。而這些成功的公司采用的是“橄欖球模式”,這是由Takeuchi和Nonaka命名的,在這種模式下,團隊以整體的方式進行改進,問題會在團隊內部得到解決。
1993年,我們的另一位成員(Sutherland)接受了一向看似不可能的任務:一家軟件公司(Easel
Corporation)需要在六個月內用一款新軟件替換他們的老產品。Sutherland已經掌握很多改善的方法,例如快速應用改進、產品導向設計、PDSA循環和臭鼬工廠。他希望在公司中級管理層中營造出像臭鼬工廠那樣的企業文化,將組織分工和整體合作的好處結合起來。所以,他開始竭盡全力學習一切能最大化組織效率的知識。在讀了很多論文、聽了無數生產管理專家的演講后,他發現,自己被一些刺激的想法吸引了。
貝爾實驗室在《Borland Quattro Pro team》上發表的文章說,更短的團隊日常會議能顯著提高效率。不過,對于Sutherland來說,最重要的是他發現了Takeuchi和Nonaka的橄欖球原則,盡管它的應用領域是工業生產,而不是軟件。Sutherland借鑒了很多篇《哈佛商業評論》文章的核心思想,再加上實際應用經驗,他就創造了一種新的軟件開發方法。為了向橄欖球原則致敬,他將這種方法命名為爭球原則。爭球原則使他按時完成了這項看似不可能的項目,并且沒有超出預算,BUG比先前發布的任何一個版本都更少。之后,他和長期共事的Ken
Schwaber合作將這種方法系統化,并在1995年第一次將爭球原則公布于眾。
當然了,并不是只有Sutherland和Schwaber在尋找創新方法。當前正值創新時代,翻天覆地的新技術使慢節奏的競爭者岌岌可危。創業者和守成者都要在這個陌生而動蕩的環境下找到比對手更好的適應措施。軟件正在成為幾乎每一個商業功能都不可或缺的一部分,眾多富有創新精神的軟件開發者都在尋找更優秀的編程方法,用以加強軟件的通用性。
2001年,17位自稱“無組織主義者”的開發者聚集在猶他州的Snowbird分享各自的想法。Sutherland和爭球原則的其他支持者們也在其中。不過,這群人中還有很多人支持其他創新法則,包括終極編程(XP)、水晶法(crystal)、通用軟件開發(ASD)、特征驅動開發(FDD)和動態系統開發法(DSDM)。所有這些方法都被認為是輕量級的,因為它們的規則更少、更簡單,能做出快速適應,改進編譯環境。沒有幾個與會者發現“輕量級”這個術語有多漂亮。
盡管他們共識很少,但最后還是為這項運動起了一個新名字:敏捷。這個詞由一位與會者提議,此人讀過《Agile
Competitors and Virtual Organizations: Strategies for Enriching the Customer》。這本書列出的100家公司都用創新方法適應了更多的新市場,包括ABB,Federal
Express,Boeing,Bose和Harley-Davidson。敲定下名字后,與會者接著又達成一致意見,發表了《敏捷軟件開發宣言》,列出了四條獲得公認的核心規則。在這項會議的后續議程和之后的幾個月里,他們又發展出12條操作性規則,稱為《迅捷宣言規則補遺》。從2001年開始,所有符合這些規則的軟件開發方法,都被叫做敏捷手段。
Snowbird會議公布了敏捷開發的綱領后,這項運動迅速傳播開來了。他們將文件發布到網上,并邀請其他人簽名支持。這一年稍后的時間里,該組織的大部分創始人和一批新擁躉又開了一次會,討論如何宣傳敏捷開發。所有人都同意為這個話題寫作或發言。一些與會者希望能有一個更長久的工作組織,于是他們成立了非營利組織“敏捷聯盟”來支持這項運動?,F在,敏捷聯盟已經擁有接近3萬會員和定期捐款人。
與此同時,敏捷開發原則依然在發展。在19世紀80年代晚期和90年代早期,來自MIT的研究者就已經開始研究日本的工業生產系統,尤其是豐田公司的生產體系。為了描述該系統提升效率的方法,他們提出“精益”這個概念,指通過盡量避免非平衡工作流和破壞性過載來減少浪費。盡管精益原則沒有出現在Snowbird的敏捷開發系統中,但正式的精益和看板軟件開發系統還是在20世紀初期出現了。最初,一些激進的敏捷主義者拒絕承認這些方法也屬于敏捷開發手段。但是精益原則的支持者們將他們的注意力集中在客戶合作上,最終,使用敏捷原則的人也開始接受精益原則、看板系統及混合方法(比如爭球看板系統和精益爭球原則),并將這些方法看作是正式的敏捷開發原則應用方法。
成功總有很多前因,而敏捷發開也留下了豐富的遺產。盡管敏捷開發原則的使用者會為各自流派激情辯論,有兩點卻毋庸置疑:第一,敏捷開發已經應用到信息技術以外的領域了;第二,敏捷開發的衍生版本將提升每個行業每個方面的創新進程。