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