敏捷的核心:消除浪費,走向精益

heying1229發表於2007-09-25
敏捷的核心:消除浪費,走向精益[@more@]來自:infoq中文站

 企業級敏捷敏捷的核心是什麼?敏捷給軟體企業(以及軟體開發者個人)帶來的好處究竟在哪裡?這個問題有很多不同的答案。例如“重視個人和交流”,軟體開發者喜歡這樣的態度,這是毫無疑問的。例如“重視可工作的軟體”,它的價值是顯而易見的。但在這一切的背後,敏捷的核心是什麼?時下流行的觀點是:敏捷就是軟體行業裡的精益(lean)生產,它的核心是消除浪費。ThoughtWorks中國公司的高層在近日接受採訪時明確指出了這一點。

  首先考慮質量問題。一些軟體企業為了降低成本而忽視質量,但質量低下的軟體會造成返工的浪費,反而提高成本。相反,在日常工作中投入更多的精力來保證質量,反而能夠為企業節約成本。ThoughtWorks中國公司技術總監Michael Robinson用軟體工程的經典理論來分析這個問題:

  任何一本軟體工程教材都會告訴你:假設在分析階段找到並解決一個錯誤的成本為1,在設計階段解決同一個錯誤的成本就變成10,在實現階段就變成100,在維護階段就變成1000。敏捷軟體開發中的眾多實踐正是為了避免低質量和返工的浪費。儘管它們一開始看起來似乎有些麻煩,但它們帶來的收益是實實在在的。另一種常見的浪費則是“為將來準備的投資”。例如為了應付將來可能出現的需求變化而提前引入的靈活設計,如果需求沒有發生變化,這些靈活設計就會成為浪費:不僅浪費了將它設計出來的成本,而且浪費了繼續維護它的成本。製造業為了降低庫存成本而創造出“Just In Time”的生產和決策方法,ThoughtWorks中國公司總經理郭曉認為這些方法同樣適用於軟體行業:

  如何消除預測錯誤的浪費?避免預測錯誤的根本辦法就是推遲決策:決策下得越晚,就越不容易因為預測失準而造成浪費。當然也不能晚到錯過了時機、耽誤了工作才下決策,這就像豐田製造的Just In Time,決策也要Just In Time。過早的、含有太多預測成分的決策也會造成浪費,其危害絲毫不亞於過晚的決策。在最近的兩篇Blog裡,我談到了一些從更深層次思考敏捷的心得。在我看來,敏捷的、精益的、實用主義的決策往往是符合中庸之道的:它們往往是各種因素、選擇權衡之後的結果。敏捷方法極端重視提升客戶價值,為了達到這個目標而採取的手段通常都不可能是極端的。

  中庸之道常常有效的深層原因是邊際效用遞減律:對一個方面的東西重視到一定程度以後,再加入更多的重視,收到的邊際效用遞減;同樣的重視度放到另一個方面上,能夠收到更大的邊際效用。讓每一分投入收到最大的回報,儘可能地消除浪費,這是精益的追求。在另一篇Blog裡我談到了如何進行精益設計。設計方案的選擇說到底應該是一次成本與收益的計算,而不是個人審美取向的衡量——當然,優秀的程式設計師能夠把這種計算變成本能,我認為這就是“軟體開發的藝術”所在。敏捷方法強調“簡單設計”,同樣是經過計算的結果。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10172717/viewspace-972127/,如需轉載,請註明出處,否則將追究法律責任。

相關文章