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