2015 年,我加入特贊,帶領了一支 5 人的研發團隊。那時公司還在天使輪,團隊最大的目標是能讓產品上線,並證實咱們的商業模式是可行的。三個月後,咱們實現了這個目標,看到公司第一筆訂單產生。隨後咱們拿到了 A 輪融資,開啓了公司新的征程。在接下來的兩年中,咱們不斷開發新的產品功能,不斷優化現有產品特性,但彷佛老是很難感覺到研發和業務之間發生的直接影響。前端
不久前咱們拿到了 B 輪融資,今年是公司的重要轉折點,也是公司業務和規模同步增加的重要時期。我認爲有必要將團隊中一些有價值而有意義的工做作一些總結,但願能給業界朋友們一些幫助,或者給你們帶來一種新的思考。面試
我將從組織架構、研發流程、績效考覈、團隊文化這幾個方面,與你們探討如何打造一支高效的研發團隊。首先從搭建團隊組織架構開始,咱們如今就一塊兒出發吧。後端
矩陣式組織架構設計模式
若是研發團隊規模大於 10 人,而且但願團隊以最高效的方式實現項目交付,不妨採用如下「矩陣式」組織架構(如圖 1 所示)。該架構能讓團隊更加專一,並且整個架構的擴展性也很是強。架構
十年軟件架構的從零開始搭建輕量級研發團隊運維
咱們將橫向的「職能團隊」比喻爲「虛線團隊」,將縱向的「項目團隊」比喻爲「實線團隊」。以實線項目團隊爲主,以虛線職能團隊爲輔。橫縱交錯,造成一個優雅的矩陣,橫向可擴展,縱向可延伸。分佈式
橫向的職能團隊測試
根據團隊成員專業技能的不一樣,可劃分爲多個職能團隊,也稱爲「小分隊」,例如:前端小分隊、後端小分隊、測試小分隊、運維小分隊等。固然,可根據咱們所面臨的實際環境,靈活劃分出合理的職能團隊。優化
須要注意的是,每一個職能團隊必須有一名負責人,也就是說,不要讓同一人擔任多個小分隊的隊長。由於劃分職能團隊的目的就是爲了將專業技能聚焦,隊長的職責之一就是幫助隊員們在專業技能上獲得成長,爲職能團隊賦能。spa
除了前端、後端、測試、運維這類職能團隊之外,也能夠搭建更有意思的職能團隊,好比:技術委員會。
咱們須要讓團隊們都知道的是,可以加入技術委員會的人,都是團隊中技術水平最高的人,須要讓他們有一種至高無上的榮譽感。技術委員會的成員可能來自於前端、後端、測試、運維,但技術委員會的人數必定是很是精簡的。
技術委員會中有一名「技術主席」,也可稱爲「技術委員長」,他是整個技術委員會的權威,擁有最高的技術決策權,其餘成員統稱爲「技術委員」,他們都是「技術專家」,而技術主席是「首席技術專家」。
隨着團隊規模的擴展,若是團隊中其餘隊員但願申請加入技術委員會,此時必須獲得委員們的一致承認,主席擁有最終決策權。加入的過程可能須要筆試或面試,或者也能夠增長一些投票環節,咱們能夠把這個過程設計得更好玩一些。
除了技術委員會之外,還有產品委員會和設計委員會。產品委員會中的成員每每都是產品經理,固然也能夠歡迎具有產品思惟能力的工程師們加入,決定權仍是交給產品委員會主席來定奪。設計委員會中的成員通常都是設計師,一樣也包括對設計感興趣的夥伴們。
須要強調的是,委員會中的成員,務必確保少而精,並且加入的成員都要有本身的責任。
可見,職能團隊包括「小分隊」與「委員會」兩種形式,無論哪一種形式都有一名負責人,即隊長或主席,他們是本身所在職能團隊的核心,他們的首要職責是幫助成員們在專業性方面獲得提高,從而提升整個職能團隊的戰鬥力。
職能團隊負責人並不是空降或任命,而是由職能團隊成員們共同選舉。每隔半年,團隊全員可經過投票的形式,以匿名選舉出本身心中認爲最稱職的職能團隊負責人。也就是說,職能團隊負責人是有任職期的,且任職期爲半年,他們須要在這半年時間內努力改善本身所負責的職能團隊,並努力讓團隊能獲得成長,本身才能獲得進步。
如今,咱們可繪製一幅職能團隊組織架構圖(如圖 2 所示),咱們也能夠根據實際狀況進行合理設計。
十年軟件架構的從零開始搭建輕量級研發團隊
橫向關注人員成長,縱向關注項目落地,下面咱們就一塊兒來搭建縱向的項目團隊。
縱向的項目團隊
在縱向層面,咱們還須要搭建一些項目團隊,並確保這些項目團隊是能夠並行工做的,也就是說,他們的工做通常是彼此隔離,不會相互干擾。
在業務發展過程當中,不免存在一些實驗性工做,業務團隊但願研發團隊可以快速給出產品方案,並以最快的速度上線且投入市場,經過試錯來驗證業務的意義。研發團隊也但願快速響應業務的變化,以提升產品和技術的價值。所以,咱們須要搭建一個稱爲「功能團隊」的組織,該組織的成員將面向業務中實驗性的新功能進行快速開發,並確保這些功能能夠儘快上線,但質量上卻不能打折扣。
另外一方面,已經上線的產品功能還須要在業務上不斷磨合,經過不斷收集用戶反饋來持續迭代,才能打磨出一款優秀的產品。咱們須要在已有產品功能上進行調優,以不斷適應業務的需求。所以,咱們須要搭建一個稱爲「效率團隊」的組織,讓他們來跟蹤已經上線的產品功能,並經過數據和反饋來驅動產品不斷優化。
公司主營業務當然重要,對於創新性業務而言,將會爲公司帶來更多的商業機會。所以,咱們能夠須要搭建一個稱爲「創新團隊」的組織,它是咱們的「獨立團」,咱們須要爲這個團尋找一名稱職的團長。
此時,你將獲得一幅項目團隊組織架構圖(如圖 3 所示),每一個項目團隊都有其負責人,每一個項目團隊可根據實際狀況,劃分多個項目小組,確保你們都能並行工做。
十年軟件架構的從零開始搭建輕量級研發團隊
須要注意的是,因爲項目週期是變化且短暫的,所以每一個項目的負責人也是動態的,可能由項目團隊負責人來擔當,也多是由項目團隊負責人受權一名項目成員來擔當,但項目團隊負責人須要爲項目最後的結果負責。
若是說功能團隊的職責是實現產品功能的從 0 到 1,那麼效率團隊的工做就是完成產品從 1 到 100(如圖 4 所示)。
十年軟件架構的從零開始搭建輕量級研發團隊
咱們可將實驗性的功能交給功能團隊來研發,將優化性的工做交給效率團隊來跟蹤。
隊員的選拔也十分重要。功能團隊的隊員對技術實現能力要求較高,尤爲在作新功能的時候,須要考慮對整個系統架構的影響,不只須要有較高的效率,同時還需確保較高的質量。效率團隊的隊員對業務理解能力要求較高,當他們對現有功能進行優化時,須要經過業務反饋和數據表現作出正確的判斷,指導本身的下一步工做。
當功能團隊所負責的項目上線後,他們會將該項目交接給效率團隊,隨後效率團隊將對功能團隊的交接狀況給出評價,評價結果將影響功能團隊的績效考覈成績。關於績效考覈問題,我將在「績效考覈篇」中進一步與你們探討。
咱們認爲員工不該該存在「雙線彙報」關係,這樣只會讓組織架構變得更復雜。由於項目團隊纔有彙報,職能團隊沒有彙報,只有培養。項目團隊爲公司目標負責,職能團隊爲團隊成長負責。換言之,項目團隊幫助公司成長,員工可拿到項目獎金;職能團隊幫助員工成長,爲員工實現升職加薪。
寫在最後
對於一支研發團隊而言,須要擁有合理的組織架構、高效的研發流程、科學的績效考覈、良好的團隊文化。若是缺少這些方面的建設,研發管理工做將變得痛苦且低效。咱們應該作的是,從管理中追求效率,從效率中提高價值。
傑克·韋爾奇曾經說過:Before you are a leader, success is all about yourself. When you become a leader, success is all about growing others.(在你成爲領導者以前,成功的所有就是自我成長;當你成爲領導者之時,成功的所有就是幫助他人成長。)
如今我想說:當你在賽場上踢球時,你應該考慮作一名優秀的球員;當你成爲一名優秀的球員時,你應該考慮作一名優秀的教練。從技術到管理,正是球員轉變爲教練的過程,咱們不能中止前進的腳步。團隊的成功,纔是咱們的成功,咱們的職責是給團隊賦能。
與君共勉。
【想要了解更多好文關注做者哦,加QQ羣:714526711;羣文件直接領取獲取Java高級架構資料、源碼、筆記、視頻。Dubbo、Redis、設計模式、Netty、zookeeper、Spring cloud、分佈式】