一.軟件團(tuán)隊(duì)
自軟件危機(jī)爆發(fā)以來,人們開始用軟件工程來試圖解決這個(gè)問題,提出了各種各樣的開發(fā)理論, 開發(fā)模式。軟件開發(fā)的藝術(shù)性,和不可預(yù)知性,使得各種開發(fā)理論,開發(fā)模式,總是有其局限性,終始無法精確的用工程的手段來量化開發(fā)過程。
軟件是科學(xué)與藝術(shù)的結(jié)合,理論與實(shí)踐的結(jié)合。作為一種智慧產(chǎn)品,軟件開發(fā)基本上是一種智能的投入,是軟件開發(fā)團(tuán)隊(duì)的智慧結(jié)晶。在軟件中凝結(jié)的智能愈高,軟件的價(jià)值愈高,能被市場(chǎng)接受的價(jià)格愈高。完全按工程組織來完成軟件開發(fā),基本是不可能完成的任務(wù)。
在看似平靜的表面下面,軟件開發(fā)其實(shí)是充滿著各種風(fēng)險(xiǎn),不可預(yù)知,和躁動(dòng)不安的。按開發(fā)計(jì)劃完成軟件是世界上困難的事情之一。雖然你有著那么多的開發(fā)經(jīng)驗(yàn),技術(shù)資源,開發(fā)模式,但是你不能完全的依賴它們,每一個(gè)軟件都有它的獨(dú)特性,都需要你特別的付出和關(guān)注。你不要指望事情能按你預(yù)想的那樣一帆風(fēng)順的進(jìn)行。你需要關(guān)注,特別的關(guān)注,直到它的誕生。因此有人說:與其說軟件的開發(fā)是可依進(jìn)度或功能切割的項(xiàng)目,不如說是一種第六感。有時(shí)候它的確是這樣。
也正因?yàn)檐浖Q生的艱辛,所以它的誕生也具有震撼性。一個(gè)偉大的軟件產(chǎn)品,總是震撼著市場(chǎng),震撼著心靈,將是人們?nèi)康慕裹c(diǎn)所在,顧客將帶著鈔票搶著購買。公司也將因此成為行業(yè)中的個(gè)中翹楚。這是軟件的魅力。一個(gè)高效率的開發(fā)團(tuán)隊(duì)會(huì)將這一切變?yōu)榭赡堋?/p>
微軟的成功,促使人們更多的開始關(guān)注小的開發(fā)團(tuán)隊(duì)的使用。
軟件開發(fā)團(tuán)隊(duì)是為一個(gè)軟件產(chǎn)品,或者一個(gè)項(xiàng)目的開發(fā)而組合在一起的組織. 軟件開發(fā)團(tuán)隊(duì)首先是為目標(biāo)的存在而存在的.
對(duì)一個(gè)軟件開發(fā)團(tuán)隊(duì)首先要解決的問題是: 應(yīng)該由那些角色來組成團(tuán)隊(duì).在傳統(tǒng)上組建一個(gè)開發(fā)團(tuán)隊(duì)時(shí),習(xí)慣上是找一個(gè)主管,幾個(gè)主力程序員,加從其他部門調(diào)來,或者現(xiàn)招幾個(gè)程序員,算做是一個(gè)開發(fā)團(tuán)隊(duì),期望他們能按時(shí)按質(zhì)的拿出東西,運(yùn)氣好的話,他們可以搞定,大多數(shù)時(shí)候,項(xiàng)目不是嚴(yán)重超期,是永無出頭之日,后只有下馬的命運(yùn).
一個(gè)先天不足的團(tuán)隊(duì),很難期望他們能按時(shí)按質(zhì)的拿出產(chǎn)品。
參照微軟項(xiàng)目團(tuán)隊(duì)組成,一個(gè)軟件開發(fā)團(tuán)隊(duì)?wèi)?yīng)該由如下角色組成:項(xiàng)目經(jīng)理,系統(tǒng)設(shè)計(jì)師,程序員,測(cè)試人員,用戶教育培訓(xùn)人員。項(xiàng)目經(jīng)理對(duì)整個(gè)項(xiàng)目的成敗負(fù)責(zé),需要關(guān)注項(xiàng)目的進(jìn)度,與客戶的溝通交流,理解客戶需求,項(xiàng)目經(jīng)理更多的是作為用戶和開發(fā)人員之間溝通的橋梁.因此對(duì)項(xiàng)目經(jīng)理,不僅要求在技術(shù)上能夠解決項(xiàng)目中發(fā)生的各種問題,也能預(yù)見到項(xiàng)目的各種潛在風(fēng)險(xiǎn),并規(guī)避風(fēng)險(xiǎn),更重要的是做為產(chǎn)品的代言人,能闡述清楚產(chǎn)品的用途,特色給潛在客戶,也能明白,清晰的理解客戶的需求描述,并和客戶在需求問題上達(dá)成一致或折中.系統(tǒng)設(shè)計(jì)師和主力程序員一起對(duì)整個(gè)產(chǎn)品的架構(gòu),設(shè)計(jì)負(fù)責(zé),確認(rèn)開發(fā)語言,制定開發(fā)規(guī)范,預(yù)先架構(gòu)中的潛在問題,解決開發(fā)中遇到的技術(shù)問題和測(cè)試問題.程序員分為主力程序員和一般程序員,主力程序員將承擔(dān)更多的責(zé)任,協(xié)助系統(tǒng)設(shè)計(jì)師的設(shè)計(jì)工作,并具體指導(dǎo)一般程序員的開發(fā)工作,主力程序員一般由有多年項(xiàng)目經(jīng)驗(yàn)的程序員擔(dān)任.測(cè)試人員負(fù)責(zé)產(chǎn)品的測(cè)試工作,從方案設(shè)計(jì)開始參與并撰寫測(cè)試計(jì)劃,測(cè)試人員也應(yīng)包括幾種:能寫測(cè)試代碼的,完全不懂計(jì)算機(jī),只做用戶測(cè)試的.其測(cè)試的側(cè)重點(diǎn)不同。
用戶教育培訓(xùn)人員撰寫用戶使用文擋,產(chǎn)品說明書等,用戶教育培訓(xùn)人員是一個(gè)項(xiàng)目很容易被忽視的角色,但事實(shí)上,在一個(gè)大項(xiàng)目中,他們的身影重要,這部分工作,沒有專人來做,必然的分?jǐn)偟匠绦騿T身上.程序員很難有時(shí)間,有心情來完成這些東西,不但會(huì)影響程序員的專注,也使文擋的質(zhì)量很差.特別是在項(xiàng)目的后期,程序員的專注是非常重要的.我們看微軟的項(xiàng)目管理,角色可以重疊,合并,但程序員與其他角色是不會(huì)重疊,合并的。
將團(tuán)隊(duì)劃分為幾種角色,目的是要他們各司其職,相互倚重,共享前景.一個(gè)團(tuán)隊(duì)如果沒有明確的職責(zé)分工,沒有規(guī)劃,沒有分工合作,只會(huì)讓事情亂做一團(tuán),遇到問題,人人推委,終導(dǎo)致團(tuán)隊(duì)信譽(yù)整體下降。項(xiàng)目經(jīng)理雖然對(duì)項(xiàng)目的成敗負(fù)責(zé),但是項(xiàng)目經(jīng)理不可能面面俱到. 因此保持出了問題有人負(fù)責(zé)處理的原則,是非常重要的.懂得分工與授權(quán),項(xiàng)目經(jīng)理才能"解放"自己,團(tuán)隊(duì)成員也才會(huì)遇事不躲,主動(dòng)承擔(dān)并處理問題。
二.人員建設(shè)
團(tuán)隊(duì)劃分出各種角色后,應(yīng)明確各個(gè)角色的素質(zhì)要求和技能要求,一個(gè)不適合的人處于一個(gè)不合適的職位上,是一個(gè)雙輸?shù)倪x擇。團(tuán)隊(duì)建設(shè)上應(yīng)避免把團(tuán)隊(duì)建設(shè)成為一個(gè)大籮筐,什么東西都可以裝。開發(fā)團(tuán)隊(duì)要進(jìn)人,應(yīng)該嚴(yán)格的按照崗位要求,招合適的人。在嚴(yán)把進(jìn)人關(guān)的基礎(chǔ)上,團(tuán)隊(duì)還應(yīng)該逐步的,有計(jì)劃的把不合適的人員替換掉.這個(gè)崗位不適合他,應(yīng)該還有更適合他的崗位,而勉強(qiáng)呆在原位,不僅對(duì)團(tuán)隊(duì),也對(duì)他不公平.當(dāng)然在中國(guó)這個(gè)人情化社會(huì)里,要做到這一點(diǎn)很不容易.特別是工作多年的同事,同時(shí)可能也是朋友,要做做這一點(diǎn)更難。管理者也要克服掉人情關(guān)。過不了人情關(guān),很難成為一個(gè)合格的管理者。
大家聽說過木桶理論:一個(gè)木桶所能裝的水不是由長(zhǎng)的那根木條決定的,而是由短的那根木條決定的。對(duì)這個(gè)理論應(yīng)用到軟件開發(fā)領(lǐng)域是:一個(gè)軟件開發(fā)團(tuán)隊(duì)開發(fā)出的產(chǎn)品品質(zhì)差是由能力差的人決定的,所能開發(fā)出來的好的產(chǎn)品品質(zhì)是由能力強(qiáng)的人決定的。通俗的理解是,一個(gè)開發(fā)團(tuán)隊(duì)開發(fā)出來的產(chǎn)品品質(zhì)是由差和好的人來決定的,也是團(tuán)隊(duì)成員決定的。一個(gè)產(chǎn)品的現(xiàn)狀往往能很準(zhǔn)確的反映出一個(gè)團(tuán)隊(duì)的現(xiàn)狀。產(chǎn)品的品質(zhì)也是團(tuán)隊(duì)的品質(zhì)。這是為什么有的產(chǎn)品叫好又叫座,而有的產(chǎn)品缺無人問津,甚至中途夭折,產(chǎn)品品質(zhì)終是由人來決定的。而當(dāng)某個(gè)團(tuán)隊(duì)請(qǐng)到一個(gè)牛人指導(dǎo)時(shí)候,其產(chǎn)品品質(zhì)往往有大幅度的提升。而某個(gè)產(chǎn)品很糟糕的時(shí)候,回頭看看他的開發(fā)團(tuán)隊(duì),通常是整體表現(xiàn)為能力欠缺。
因此軟件開發(fā)團(tuán)隊(duì)想要開發(fā)出好的軟件產(chǎn)品,首先要做的是挑戰(zhàn)團(tuán)隊(duì)成員自身的局限。團(tuán)隊(duì)成員的自大,高傲,拒絕合作,敵視,盲目自信都不利于團(tuán)隊(duì)的成長(zhǎng),更不利于自身的成長(zhǎng)。而一個(gè)開放的心態(tài),虛心的態(tài)度,崇尚交流的風(fēng)氣將更利于團(tuán)隊(duì)成員相互接受,互助合作,更容易完成任務(wù)。當(dāng)團(tuán)隊(duì)形成注重成長(zhǎng)的風(fēng)氣后,產(chǎn)品品質(zhì)將會(huì)得到不斷的提升,團(tuán)隊(duì)成員在自身成長(zhǎng)的同時(shí),也會(huì)帶動(dòng)其他成員的成長(zhǎng),這是有示范效應(yīng)的。當(dāng)短的木條和長(zhǎng)的木條都在開始長(zhǎng)長(zhǎng)的時(shí)候,木桶能裝的水是在增加,而對(duì)于開發(fā)團(tuán)隊(duì)來說,是能開發(fā)出品質(zhì)更高的產(chǎn)品,他所能解決的問題域更廣,經(jīng)驗(yàn)更豐富,更懂得如何去開發(fā)出一個(gè)好的產(chǎn)品。
團(tuán)隊(duì)是不停的發(fā)展變化的,成員的新增,辭職是不可避免的。對(duì)于新進(jìn)員工,應(yīng)有一個(gè)"入模子" 的過程。聯(lián)想柳總總結(jié)出來的"入模子"過程,很形象的說明我們是要把新進(jìn)員工的身上打上自己的標(biāo)記,讓大家有共同的語言,共同的行事規(guī)則,共同的理念,共同遠(yuǎn)景。團(tuán)隊(duì)文化,氛圍如果不能影響新進(jìn)員工進(jìn)入共同頻道,這個(gè)團(tuán)隊(duì)建設(shè)是失敗的,不能延續(xù)的,遲早會(huì)出問題。要形成自己的氛圍,理念不是一早一夕能作到的,團(tuán)隊(duì)建設(shè)者應(yīng)更多的關(guān)注到這個(gè)問題上來。這是形成團(tuán)隊(duì)?wèi)?zhàn)斗力的關(guān)鍵。也是凝聚團(tuán)隊(duì)的關(guān)鍵。對(duì)不能溶入共同頻道的人,應(yīng)堅(jiān)決的予以清除。
三.職業(yè)生涯規(guī)劃
堡壘往往是從內(nèi)部被攻破的,軟件開發(fā)團(tuán)隊(duì)也會(huì)在發(fā)展過程遇到因?yàn)閮?nèi)部問題而邦分崩離兮。重要的內(nèi)部問題,我認(rèn)為是團(tuán)隊(duì)成員的職業(yè)生涯規(guī)劃問題。一個(gè)團(tuán)隊(duì),其管理者職位總是少數(shù),而目前各個(gè)公司沒有明確的職業(yè)生涯規(guī)劃,只有走上管理之路,才能有大的發(fā)展,也造成了千軍萬馬過管理這條獨(dú)木橋。人的趨利性使人們只向升職一條獨(dú)木橋上鉆。聰明的人開始團(tuán)結(jié)領(lǐng)導(dǎo),能干的人尋找其它機(jī)會(huì), 程序員開始投簡(jiǎn)歷,終團(tuán)隊(duì)走向沒落。因此員工的職業(yè)生涯規(guī)劃不能走千軍萬馬過管理這條獨(dú)木橋之路,而是要條條大路通羅馬。在國(guó)外的一些軟件開發(fā)企業(yè)里,程序員一樣可以拿到相當(dāng)于副總裁,高級(jí)管理人員才能拿到的薪水, 這樣程序員才能安心的解決計(jì)算機(jī)問題,而不是去解決人際問題。軟件開發(fā)團(tuán)隊(duì)不同其他團(tuán)隊(duì),軟件開發(fā)中有越多的老戰(zhàn)士在第一線作戰(zhàn),產(chǎn)品成功的概率越大。而我們往往做的是把一個(gè)技術(shù)好手提升為管理者,再招上十個(gè)八個(gè)人,來開發(fā)一個(gè)漏洞百出的產(chǎn)品,導(dǎo)致技術(shù)得不到延續(xù),管理也是一塌糊涂的結(jié)果。
團(tuán)隊(duì)成員都能專注于做自己的事情,則這個(gè)團(tuán)隊(duì)的開發(fā)效率將越來越高,產(chǎn)品品質(zhì)越來越好。我認(rèn)為微軟軟件開發(fā)的成功,也在于此,一個(gè)有著數(shù)十年軟件開發(fā)經(jīng)驗(yàn)的團(tuán)隊(duì)和一個(gè)剛剛建立的團(tuán)隊(duì)開發(fā)出來的產(chǎn)品當(dāng)然是不可同日而語!盾浖_發(fā)的科學(xué)與藝術(shù)》一書中提到,微軟NT4前的產(chǎn)品經(jīng)常會(huì)導(dǎo)致無故重啟,死機(jī),但是現(xiàn)在微軟的產(chǎn)品越來越少看到這種現(xiàn)象,主要原因是微軟大量的程序員開發(fā)經(jīng)驗(yàn)越來越豐富,測(cè)試經(jīng)驗(yàn)越來越豐富的結(jié)果。可見團(tuán)隊(duì)的延續(xù)性是多么重要;團(tuán)隊(duì)成員的專注是多么重要。而這種專注取決于管理者如何來解決團(tuán)隊(duì)成員的"前途"問題。
團(tuán)隊(duì)成員的發(fā)展途徑,我認(rèn)為可以有如下幾個(gè):行業(yè)專家,技術(shù)專家,設(shè)計(jì)師,架構(gòu)師,系統(tǒng)分析師,高級(jí)程序員,項(xiàng)目經(jīng)理, 產(chǎn)品經(jīng)理。團(tuán)隊(duì)每個(gè)人都將有足夠的選擇機(jī)會(huì)。完全可以根據(jù)自己的特色選擇。喜歡管理的可以向項(xiàng)目經(jīng)理,產(chǎn)品經(jīng)理看齊,喜歡技術(shù)的可以專注于技術(shù),走技術(shù)專家,設(shè)計(jì)師,分析師之路。終形成百花齊放的格局。在技術(shù)上也可保持連續(xù)性,并可不斷的加深技術(shù)底蘊(yùn)。終技術(shù),管理都將得到大的發(fā)展。