孫圣領
(中海網絡科技股份有限公司,上海 200135)
精益思想(Lean Thinking)來源于20世紀80年代的日本豐田生產方式(即精益生產),其核心價值是用整體優化的觀點合理地配置和利用企業擁有的生產要素,消除生產過程中一切不產生附加價值的勞動和資源,提高經濟效益,也即減少浪費,以盡可能少的投入創造出盡可能多的價值。精益思想包括精益生產、精益管理、精益設計和精益供應等,精益制造是其核心,精益思想應用的目的是實現公司和客戶的雙贏。
現在軟件項目越來越大,合同金額大,項目周期長,投入的人力和物力也逐漸增長。軟件項目也是一個系統工程,它不僅僅是軟件的開發,更是一個創造過程。軟件技術日新月異,客戶的需求瞬息萬變,傳統的管理思想和開發模式已經不能適應現實的需求,所以有必要引入精益思想,創新管理模式,改變以前的需求管理,開發流程,變更管理以及員工管理等,從而提高了工作效率,降低成本,節省項目管理人員和開發人員的時間同時提高軟件質量和客戶的滿意度。
精益管理的目的是降低投入,提高產出,實現雙贏。實現雙贏的首要條件是觀念的轉變。以前的觀念是我為客戶開發軟件,客戶付錢,我們開發,開發完成后交給客戶,收款然后項目結束。因為一個軟件項目往往服務多個部門的員工,有些需求是在軟件的應用過程中才發現或者是隨著時間的推移又有新的需求。所以在設計產品的時候要有主人翁的精神,就當這個產品是為自己設計,扮演一個領域專家的角色,不僅滿足客戶提出的需求同時和客戶探討將來可能用到的功能并提供解決方案。這樣不僅能提高公司的收入同時也能提高客戶的滿意度。實現客戶利益最大化,贏得客戶的信賴。
軟件設計和開發不僅是腦力勞動同時也是體力勞動,軟件工程師加班加點是司空見慣的事情。現在軟件技術還不能實現自動化生產,代碼需要一行一行的寫,頁面還是需要前端工程師一個像素一個像素的調試達到賞心悅目。如何減少工程師的勞動,提高工作效率是引入精益思想要實現的目標。有句話是‘工欲善其事,必先利其器 ’,也就是說為了做好事情,必需做好準備。一個軟件項目涉及項目管理人員,需求分析師,開發工程師和測試工程師等。公司要建議一個軟件開發的生態系統,比如項目經理要負責整個項目,他需要全面的了解項目的各個方面,遇到問題應該被及時的通知到并且及時的反應。達到這個目的,必要的工具不可少,比如BurnDown圖,Agile.zn等敏捷開發工具可以及時的了解項目的進展及項目中出現的問題。在項目開始之前,圍繞項目需要的技術對工程師進行培訓是行之有效的提高效率的方法。軟件開發需要用到非常多的技術,遺憾的是工程師不可能精通所有的技術,所以培訓可以讓工程師快速的熟悉用到的技術。再者,要有一套開發工具。它包括代碼規范工具、代碼重構、集成工具、快速開發代碼的工具和自動測試工具等。“工具文化”在美國硅谷非常盛行,一個公司最優秀的工程師經常是設計和開發工具,利用便捷的工具可以極大的提高程序員的開發速度和質量。
精益制造在軟件項目中的應用就是要細化開發流程,關注每個具體步驟的質量來達到軟件的高質量。首先,把項目分成不同的功能模塊,把這個功能切分成不同的小的模塊,逐個實現。在實現一個小的模塊的時候,可以把它分成不同的階段。比如一個現金存取功能,其中有個匯率轉換模塊。如果把這個任務給一個工程師同時他還沒開始做,可以設置它的狀態為考慮中(thinking);當這個工程師開始做的時候,可以設置為工作中(working);工程師開發完成并通過單元測試,可以設置為檢驗中(verifying);這個模塊通過了集成測試,可以認為開發結束(Archived)。這個過程看似繁瑣,但是對保障項目質量是非常必要的。特別是一些公共模塊,設計上的不足往往導致項目后期的大規模的代碼更改,也是導致項目不能按時交付或者失敗的罪魁禍首。正所謂細節決定成敗。
代碼審查是軟件項目管理的重要環節,尤其需要應用精益思想管理。一個項目組有不同層次的工程師組成,高級工程師有豐富的經驗同時也經歷過非常多的失敗教訓。有這些高級工程師檢查項目代碼,不僅可以很快的發現代碼的不足,同時也可以給初級工程師一些建議。代碼審查是一個很好的互相學習,培養團隊合作精神和提高團隊凝聚力的的途徑,也必然會改善代碼質量,提高開發效率。
在項目開發過程中,我們可以積累經驗,同時因為技術或者客觀原因,也一定有做的不盡人意的地方。精益管理中主張自我反省,這個反省不僅包括團隊中每個成員,同時也包括團隊本身的自我反省。通過定期的自我反省,總結好的方面和差的發面,繼續發揚優點,摒棄不足,團隊成員可以不斷成長,項目可以順利推進。
精益思想在歐美企業里得到有效的宣傳和推廣,有遠見的國內企業家也積極的倡導精益思想,把精益制造應用于企業的生產經營中,并且取得不俗的效果。近年來云計算、移動互聯網的迅速崛起也加速了IT行業的變革,這次變革也使得軟件項目管理更加復雜,把精益思想應用于軟件項目的管理中一定會起到事半功倍的效果。
[1]閔永慧,蘇振民.精益建造的優越性分析[J].經濟師,2006(10).