靈活的核心:消除浪費,走向精益[@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/,如需轉載,請注明出處,否則将追究法律責任。
轉載于:http://blog.itpub.net/10172717/viewspace-972127/