- 精益軟件度量——實踐者的觀察與思考
- 張松
- 988字
- 2019-01-01 23:46:32
推薦序一
管理學大師彼得·德魯克曾經說過“你如果無法度量它,就無法管理它”(“It you cant measure it, you cant manage it”)。要想有效管理,就難以繞開度量的問題。
可實際上人們總是傾向于關注容易度量的元素,而忽略難以度量的元素。容易度量的不一定是重要的,難以度量的反而可能是重要的。
軟件開發的過程中就是這樣。
Martin Fowler曾經說過,軟件行業至今還沒有找到一個可以有效度量軟件開發生產效率(Productivity)的方法。想要度量生產效率,首先需要有可以量化的產出物。而軟件的產出物是什么呢?人們最直觀的結論是一行行的代碼。可實際上代碼行數的多少并不代表價值的多少,甚至代碼產生的功能都不一定是。這些功能運行起來產生的業務價值才是真正的產出,而這又是難以度量的。Standish Group Study的一份報告就指出:45%的代碼在運營當中是從來不會被使用到的。最簡單直接地對代碼行數進行度量實際上是舍本逐末。
度量也是一把雙刃劍。度量具有極強的引導性。它會激勵你重視并改善能夠度量的元素,但也可能使你忽視無法度量的元素并使之惡化。
我曾經在有些軟件開發的組織里看到過用代碼行數的度量來考核開發人員。結果是產生了很多副作用,大量的復制,不舍理的設計,產生了大量冗佘的代碼,不但難以理解和維護,甚至沒有在實際運行中運營起來。這在造成大量浪費的同時,也造成了軟件質量的嚴重惡化。
軟件開發方法,尤其是敏捷開發方法,正在越來越多地借鑒精益生產中的管理理念,其中主要的核心就是持續改進。要想持續改進,除了對改進方向的經驗性認識以外,可以量化的改進目標也是一個無法回避的環節。在大規模實施精益管理的過程中,如何找到舍理的度量,并舍理利用這些度量,始終是一個難題。
國內外的很多企業在實施敏捷精益軟件開發方法的過程中,在不同的情況下使用了不同的方法嘗試解決這個難題,也產生了很多有效的和創造性的解決方案。可惜的是,很多優秀的想法只是在很小的范圍內產生了影響,并沒有被提煉出來,并廣為人知。
很高興終于看到本書能夠提煉匯總這些實踐,形成一個比較完整的精益度量體系。
張松有著國內外軟件行業的從業背景,十幾年來一直沉浸在敏捷精益實施的第一線,參與了眾多大小企業的轉型實踐,作為許多CIO和CTO的專家顧問,在這個領域積累了大量實戰經驗。我想不出有更舍適的人來寫這本書了!
感謝張松在忙碌的工作中抽出時間來完成這項工作,相信所有讀到這本書的人都能從精益度量體系和這些實踐案例中有所借鑒。
ThoughtWorks大中國區董事總經理 郭曉