不久前在廣州,筆者參加了一家軟件公司主辦的關(guān)于軟件項(xiàng)目開發(fā)的高層研討會(huì),其間有兩個(gè)問題討論非常熱烈,值得與大家分享。第一個(gè)問題是:“有多少人的工作跟項(xiàng)目開發(fā)管理相關(guān)?”大部份的人舉起了手。但第二個(gè)問題是:“有多少人了解軟件項(xiàng)目開發(fā)精益管理的方法?”舉手的人寥寥無幾了。
精益管理的思想起源于豐田公司,歸納起來精益思想是在創(chuàng)造價(jià)值的目標(biāo)下,通過改良流程不斷地消除浪費(fèi),F(xiàn)已被廣泛用于生產(chǎn)制造管理,但用于IT軟件項(xiàng)目產(chǎn)品開發(fā)的實(shí)踐尚屬鳳毛麟角。我們看到這個(gè)討論的話題時(shí),許多人發(fā)出了一種會(huì)心的微笑,在笑容的背后感到這又可能是一個(gè)外行人指導(dǎo)和領(lǐng)導(dǎo)內(nèi)行人的炒作話題吧。但經(jīng)過大家的研討,發(fā)現(xiàn)在做IT軟件項(xiàng)目開發(fā)的時(shí)候,也應(yīng)該跳出本行業(yè)局限的眼光,看看外面其它行業(yè)的思想和方法,從中吸收有益的精華。
精益,是一種思想,一種哲學(xué),一個(gè)方法論,其精髓是拒絕浪費(fèi)。我們IT項(xiàng)目開發(fā)學(xué)習(xí)的不是“精益生產(chǎn)”的形式,而是其精髓思想。這種思想,不僅可以用于生產(chǎn),也可以滲透到IT軟件項(xiàng)目開發(fā)中。在研究會(huì)上,我們討論到一個(gè)借鑒了精益思想的IT項(xiàng)目開發(fā)是一個(gè)系統(tǒng)的觀念。一般來說,IT軟件項(xiàng)目精益開發(fā)系統(tǒng)包括三個(gè)要素,即人、流程和技術(shù)。以借鑒到IT軟件項(xiàng)目精益開發(fā)來說,是需要為IT項(xiàng)目的開發(fā)提出一系列的流程,培養(yǎng)技術(shù)隊(duì)伍,運(yùn)用有效的技術(shù)和工具。同時(shí),必須注意要把這三個(gè)方面整合在一起,成為一個(gè)協(xié)調(diào)發(fā)展的系統(tǒng)。
例如在人的方面,精益思想強(qiáng)調(diào)如何將每個(gè)員工的能力發(fā)揮到極限,認(rèn)為不應(yīng)該只是簡單的管理人,而應(yīng)該去培訓(xùn)人。如果不能將管理的重點(diǎn)放在員工的培養(yǎng)上,不能理解精益生產(chǎn)的真理。同時(shí),精益生產(chǎn)的另一個(gè)精髓是管理過程,精益思想不是著眼于結(jié)果,而是強(qiáng)調(diào)過程。“只對結(jié)果管理”的管理思路的結(jié)果是員工對找借口、為結(jié)果辯護(hù)很在行,對數(shù)據(jù)、報(bào)告很在行,但軟件項(xiàng)目成果的質(zhì)量只有在全過程都有效控制下才能得到根本的保證。
一. 建立順暢的開發(fā)流程
確定高效的IT軟件開發(fā)流程,是精益思想開發(fā)的第一個(gè)精髓。
如何創(chuàng)建一種高效、順暢的軟件項(xiàng)目開發(fā)流程?首先,精益思想提出強(qiáng)調(diào)“建立健全研發(fā)流程“。所謂精益軟件開發(fā)思想包含了一整套的方法論和實(shí)施方法。精益軟件開發(fā)將精益生產(chǎn)中持續(xù)改進(jìn)的概念引入到軟件開發(fā)過程之中,實(shí)現(xiàn)對軟件開發(fā)過程進(jìn)行精益管理。實(shí)現(xiàn)精益軟件開發(fā)的核心在于:建立一套完整的開發(fā)流程,然后建立一套測量流程的手段,不斷持之以恒地改善流程,不斷優(yōu)化,堅(jiān)持不懈。
不同的企業(yè)因定位不同,對于研發(fā)的價(jià)值理解也是不一樣的,他們的流程和實(shí)現(xiàn)流程的工具肯定是完全不一樣的。但我認(rèn)為軟件開發(fā)人員應(yīng)當(dāng)向豐田公司的產(chǎn)品開發(fā)流程學(xué)習(xí)和借鑒。目前,豐田內(nèi)部的精益開發(fā)步驟是這樣的:首先,在客戶需求的基礎(chǔ)上,對工作進(jìn)行分辨,區(qū)分出哪些部分是能夠滿足客戶需求的有效部分。如果工作中的某些流程生產(chǎn)出的結(jié)果并不能滿足客戶的需求,便是一種浪費(fèi),不是增值的流程和操作。因此,精益開發(fā)首先需要了解客戶需求。此后,需要對工作流程進(jìn)行細(xì)化分割,把流程分成更細(xì)微的步驟,并保證每個(gè)步驟都能滿足客戶的需求,增加價(jià)值。
其次是流程的標(biāo)準(zhǔn)化和可操作化,這是精益思想流程的基礎(chǔ)之一。在軟件開發(fā)過程中,每個(gè)企業(yè)的現(xiàn)狀不同,因此產(chǎn)品開發(fā)的方式也不同。但精益思想提到如何關(guān)注研發(fā)流程,讓管理流程“落地”,并要讓流程規(guī)范起來,不再是像過去把好流程放在紙上,靠人去管理。固化和標(biāo)準(zhǔn)化開發(fā)流程是一個(gè)方式。
二.引入首席項(xiàng)目主管負(fù)責(zé)制
精益軟件開發(fā)的第二個(gè)精髓,是將合適的人員安排在合適的崗位上,建立一個(gè)有效的軟件項(xiàng)目開發(fā)組織。首席項(xiàng)目主管負(fù)責(zé)制度是精益軟件在人員安排上的核心方式之一。每個(gè)項(xiàng)目的開發(fā)團(tuán)隊(duì)的都心須確立核心領(lǐng)頭人,并要突出了首席項(xiàng)目主管的角色和地位。
首席項(xiàng)目主管必須非常清楚,他們接手任務(wù)之后,他要開始考慮自己的設(shè)計(jì)思路,并把這個(gè)思路和團(tuán)隊(duì)交流。他的思路有兩部分:一是勇于面對困難和挑戰(zhàn),當(dāng)遇到挑戰(zhàn)時(shí)可以這么做,也可以那么做,終希望能在這些方案中達(dá)成平衡,而不是做退縮;二是要找到問題的根源。
首席項(xiàng)目主管應(yīng)該具備三個(gè)能力,這也是豐田的標(biāo)準(zhǔn):首先是很高的技術(shù)水平,是一個(gè)能力非常出色的總工程師,而且要對產(chǎn)品有整體意識和遠(yuǎn)見卓識。第二,要有項(xiàng)目管理能力,要代表客戶,理解客戶的需求。第三,要有出色的領(lǐng)導(dǎo)能力。
對于一個(gè)企業(yè)來講,如果需要做軟件精益開發(fā),公司的結(jié)構(gòu)也要做一些改組。精益思想建議采用的是一種矩陣式的組織架構(gòu)。在這種架構(gòu)中,團(tuán)隊(duì)按照具體項(xiàng)目和功能來劃分,大程度地使兩者的優(yōu)勢結(jié)合在一起。比如說,首席項(xiàng)目主管整體負(fù)責(zé)一個(gè)項(xiàng)目,不同項(xiàng)目有不同的首席主管,他們可以組成首席主管團(tuán)隊(duì)。而對于各種不同的項(xiàng)目功能需求,又按軟件不同的功能部分分組,負(fù)責(zé)每個(gè)功能小組的是職能部門經(jīng)理,如某些不同項(xiàng)目可能用到共用的功能模塊,各職能部門的工程師向該部門的經(jīng)理報(bào)告,以實(shí)現(xiàn)按功能優(yōu)化和同類經(jīng)驗(yàn)共享。
其次,精益思想除了強(qiáng)調(diào)首席主管負(fù)責(zé)制度外,還提到一個(gè)重要的關(guān)于人的因素是:團(tuán)隊(duì)是推進(jìn)精益管理的關(guān)鍵。通過推行精益管理,建立一個(gè)基業(yè)常青的團(tuán)隊(duì),調(diào)動(dòng)起每一個(gè)員工的積極性,只有這樣才能推動(dòng)開發(fā)項(xiàng)目各項(xiàng)工作持續(xù)發(fā)展。建立一個(gè)良好的團(tuán)隊(duì)則是企業(yè)能否有效實(shí)施精益管理的關(guān)鍵。
后,精益管理的推進(jìn)要以人為本,精益管理雖然有各種流程作為基礎(chǔ),但是運(yùn)行這些體系和流程的是人。熟悉豐田精益方式的人都知道,豐田方式中一個(gè)很重要的內(nèi)容是人員管理,即“育成”。育是培育,成是成功,強(qiáng)調(diào)人才培養(yǎng),把人才看作是人“財(cái)”。 一項(xiàng)針對包括豐田在內(nèi)的50家具有百年歷史的全球500強(qiáng)企業(yè)的調(diào)查顯示,這些企業(yè)的共同之處,是擁有共同的理想、共同的價(jià)值觀、共同的行為準(zhǔn)則的一支強(qiáng)大團(tuán)隊(duì)。
三.有效技術(shù)和工具的支持
精益思想軟件項(xiàng)目開發(fā)的第三個(gè)精髓,是用工具和技術(shù)來支持流程和人的工作。在引進(jìn)新技術(shù)方面,豐田奉行的原則不是積極倡導(dǎo)新技術(shù),而是使用可靠的、已經(jīng)過充分測試的技術(shù)。工具和技術(shù)的意義在于支持流程,而不是驅(qū)動(dòng)它;是加強(qiáng)人的工作,而不是替代人。
無效的軟件項(xiàng)目開發(fā)技術(shù)和工具會(huì)糟糕的在計(jì)劃進(jìn)度,成本和質(zhì)量等方面帶來失敗,這將終導(dǎo)致整個(gè)項(xiàng)目的失敗。同時(shí),沒有有效的工具來支持會(huì)使項(xiàng)目開發(fā)處于非持續(xù)性和不完備狀態(tài)。很多失敗的項(xiàng)目中的教訓(xùn)揭示了能夠充分地支持項(xiàng)目開發(fā)的工具簡直太少了。很多時(shí)候,軟件項(xiàng)目在沒有監(jiān)督和跟蹤時(shí)都會(huì)變得失控。因此,要很好地完成項(xiàng)目,必須要有好的項(xiàng)目管理工具,進(jìn)行有序的項(xiàng)目管理才能夠?qū)崿F(xiàn)。
精益軟件開發(fā)在這里提到兩個(gè)觀念,一是軟件開發(fā)應(yīng)用到的技術(shù)平臺,二是開發(fā)過程所使用的工具。軟件開發(fā)應(yīng)用到的具體技術(shù)平臺,由于每個(gè)項(xiàng)目的需求和資金預(yù)算不一樣,所使用軟件開發(fā)技術(shù)平臺也是各式各樣,不能一言而簡之。但精益思想重點(diǎn)提到的開發(fā)過程中工具的選擇和使用。工具不一定要追求新的,高科技,昂貴的工具。反而應(yīng)該不斷發(fā)揮團(tuán)隊(duì)的智慧,結(jié)合開發(fā)的具體情況,不斷探討實(shí)用的工具,減少浪費(fèi)。
這里與大家分享一個(gè)有趣的例子,工具并不一定是新的高科技的東西,有時(shí)它可以是很直觀的方法。“大屋”是豐田普銳斯首席工程師想出來的一個(gè)工程合作方式。他把各個(gè)職能部門的工程師聚集在一個(gè)大房間里。在這里,他們把產(chǎn)品開發(fā)狀態(tài)的信息打印出來,包括種種數(shù)據(jù)、成本、質(zhì)量、進(jìn)度等關(guān)鍵問題,貼在墻上,每個(gè)人都可以方便地查看、討論。當(dāng)他們在一個(gè)房間開會(huì)和溝通的時(shí)候,他們更加融洽,交流得更好,更容易做出決定,從而縮短產(chǎn)品開發(fā)時(shí)間。“大屋”聽起來很簡單,甚至有點(diǎn)可笑,但是它支持了流程和人的工作,是正確的工具和技術(shù)。
所以精益思想強(qiáng)調(diào),首先正確設(shè)計(jì)你的流程,然后再去找合適的工具讓這個(gè)流程開動(dòng)起來。不管是軟件開發(fā)用到工作工具,還是別的工具,只要能夠支持這個(gè)流程,是合適的工具。