對于軟件公司而言,不論是做項目還是做產(chǎn)品,不可否認(rèn)的是研發(fā)經(jīng)理,架構(gòu)師和程序員都屬于公司的一線員工。他們的產(chǎn)出都將會或多或少的為公司帶來一定的收益,因此這些一線開發(fā)團(tuán)隊在公司受到的重視程度自然也會高于其他性質(zhì)的公司。
在過去的十多年中,我曾就職的公司多為中小型公司,有美資、金融和國內(nèi)股份制等多種不同性質(zhì)的企業(yè),唯一的一家大型公司還是軟件外包公司,而我在這個公司的職位則是架構(gòu)師,不是研發(fā)經(jīng)理。我想,在做具體闡述和分析之前,還是先亮明我的觀點,即軟件團(tuán)隊的構(gòu)建過程首先要考慮的是公司性質(zhì)和企業(yè)文化,再者是我們的交付物,如特定的軟件項目、軟件產(chǎn)品、運營平臺,或者說干脆就是公司內(nèi)部使用的軟件平臺或工具,最后需要考慮的才是人員成本。由于本人更多的時間都是工作在軟件公司,所以該篇博客將主要針對如何在軟件公司中構(gòu)建研發(fā)團(tuán)隊進(jìn)行分析和經(jīng)驗分享。
1. 產(chǎn)品研發(fā)團(tuán)隊:
相比于為了某個項目組建團(tuán)隊,構(gòu)建一支產(chǎn)品研發(fā)團(tuán)隊就應(yīng)該有更多的問題有待提前考慮和解決。因為軟件產(chǎn)品的盈利來源并不僅限于賣出一套產(chǎn)品所獲得的實際收入,因為軟件產(chǎn)品基本都是可持續(xù)更新的,所以除了可以每年向客戶收取一定比例的產(chǎn)品維護(hù)費之外,還可以在產(chǎn)品不斷成熟之后,收取更為可觀的咨詢費。
由此可以看出,構(gòu)建軟件產(chǎn)品團(tuán)隊,不能僅僅單純的依照產(chǎn)品的技術(shù)特征去物色適合的開發(fā)人員,同時也需要在組建團(tuán)隊的伊始,就要將人員梯度建設(shè)等問題考慮進(jìn)來。比如,團(tuán)隊中的成員分為高、中、低和專項技能專家,對于高端的技術(shù)人員自始至終都會承擔(dān)最核心、最關(guān)鍵的開發(fā)任務(wù),然而對于中級技術(shù)人員來說,除了要保證產(chǎn)品開發(fā)的順利實施之外,在產(chǎn)品的不斷迭代和完善的過程中,還需要將一些已經(jīng)突破的技術(shù)難關(guān)和沉淀下來的一些可復(fù)用基礎(chǔ)功能進(jìn)行有效的封裝,從而大大降低之后的產(chǎn)品升級成本和維護(hù)難度。
在經(jīng)過若干年之后,隨著產(chǎn)品的日臻成熟和穩(wěn)定,當(dāng)年的初級開發(fā)者已經(jīng)成為這個團(tuán)隊中的重要技術(shù)骨干,而中級開發(fā)人員中的佼佼者則成功躍升為高級技術(shù)人員,高級開發(fā)者可以進(jìn)一步升級為專項技術(shù)專家或高級咨詢?nèi)藛T。此刻,公司便可以充分利用現(xiàn)有的人員和技術(shù)優(yōu)勢,繼續(xù)深度挖掘和規(guī)劃現(xiàn)有的軟件產(chǎn)品并最終形成自己的解決方案。
2. 運行平臺研發(fā)團(tuán)隊:
如果你所在的公司是非常有錢且知名的軟件或互聯(lián)網(wǎng)公司,他們往往都是在看好某一平臺之后,不計成本的招人并快速組件團(tuán)隊,以便能夠成為第一個吃螃蟹的人,在此種情況下,最好的方式還是能夠和獵頭合作,有的放矢的找到合適的高端技術(shù)人員,而對于中級開發(fā)者,由于給出的薪水將會明顯高于市場行情,因此說快算組建將不會是什么難事兒。然而更多的問題卻留在了后面,如果平臺快速開發(fā)完畢同時也能達(dá)到預(yù)期,這樣問題將不會立刻凸現(xiàn),否則這些人的薪資與能力的匹配度失衡問題將會給公司其他團(tuán)隊的技術(shù)人員帶來一定的負(fù)面影響。
那么對于那些沒有如此充裕預(yù)算的公司又該如何呢?其實這也是我現(xiàn)在在面臨的問題,我的做法是,在產(chǎn)品沒有完全啟動之前,先尋找一些可以幫助我們突破核心技術(shù)的高級技術(shù)人員,與此同時,挖掘公司內(nèi)部可能用到該項技術(shù)的熱身性項目,前提是這種項目或者說小的產(chǎn)品仍然可以給公司帶來一定的收益。由此研發(fā)經(jīng)理不僅可以爭取到更多時間、鍛煉隊伍,而且也會因每個成員都能快速對號入座而減輕了壓力。一旦這些熱身性項目實施成功,我們的研發(fā)團(tuán)隊就會有效的提升在直接上級和產(chǎn)品經(jīng)理心中的信任度。因此即便在今后核心產(chǎn)品的實施中遇到一些問題,他們也仍有可能給予這個團(tuán)隊足夠的信任和理解。
3. 項目團(tuán)隊:
這個相對比較簡單,一般而言都會根據(jù)項目的技術(shù)特征去尋找合適的開發(fā)人員,比如說,先挑選一位有經(jīng)驗的,最好是有相關(guān)項目經(jīng)驗的開發(fā)人員作為這個項目的Tech Leader,之后再根據(jù)技術(shù)特點,項目總額和開發(fā)周期去尋找適當(dāng)數(shù)量和能力的開發(fā)者。如果再往深一層考慮,倘若該公司比較看好這個項目,甚至有可能在一段時間之后將其逐漸過渡為自己的產(chǎn)品,那么就需要在組建之初即刻考慮項目中技術(shù)人員的梯度建設(shè)問題。
最后需要說明的是,多年以來我始終都會堅持一個理念,任何困難、挫折和暫時的失敗,在主義面前都是浮云。該篇博客主要是以陳述的方式介紹自己的經(jīng)驗和想法,并沒有進(jìn)行更多的論述,因此對于一些失敗的場景并沒有給出具體的解決方法。