Categories
程式開發

樊偉偉:中華萬年曆的研發體系建設


TGO 鯤鵬會南京分會會員、隨身雲(南京)信息技術有限公司技術總監樊偉偉作為TGO鯤鵬會線上分享第六季的嘉賓,以直播的形式分享了中華萬年曆的創業研發體系建設。本文根據當天直播內容整理。

樊偉偉:中華萬年曆的研發體系建設 1

大家好,我是來自中華萬年曆的樊偉偉,很高興今天能和大家一起探討關於創業公司研發體系建設的話題。我的分享主要以研發中華萬年曆產品的整個過程為主,向大家介紹如何在產品的不同階段,構建適合自己的研發體系,保證產品和業務穩定發展。

中華萬年曆是一款日曆產品,除了一些日曆必不可少的功能(農曆、黃曆、傳統文化運勢)外,還有天氣、星座、節日提醒、訂閱公眾資訊等功能。產品的初衷是以日曆切入,串聯天氣、提醒、倒數日以及星座,為大家提供資訊和傳統文化。

先和大家講一個關於創業段子:“我有絕妙的創意,靠譜的團隊和天使,就差一個程序員了”。但我認為,只要創業項目不是 demo ,那絕不僅僅只差一個程序員。創業公司能活下去非常不容易,必須要有完整的研發體系支撐,所以打造高效的研發體系非常重要。

什麼是研發體系

樊偉偉:中華萬年曆的研發體系建設 2

技術人都應該知道康威定律 —— 一個公司的產品和服務,是其自身組織結構和溝通以及工作方式的反應。從這個角度來看,一個研發體系應該包含三個部分:

  1. 組織。組織和人是最重要的,如果研發體系裡沒有組織和團隊,談流程 / 規範或是技術 / 架構都沒有意義;
  2. 流程 / 規範。流程和規範的優化是為了讓組織之間的協作更加高效,同時保證我們研發的交付質量;
  3. 技術 / 工具。合適的技術架構保證我們的產品快速迭代,自動化工具的使用可以提高工作效率。

這三條線共同構成了研發體系,每一條線下都有很多實踐點,來促進產品和業務向前發展。接下來我會從萬年曆開發的不同階段,針對這三條線的不同時間點,來跟大家交流我們當時是怎麼通過這些打造並建設我們研發的體系。

中華萬年曆產品發展歷程

起步階段,從 0到 1

從 0 到 1 是野蠻生長的過程,為了讓產品快速上線,第一個版本的產品功能能多簡單就多簡單。在起步階段,人手的不足是從 0 到 1 階段面臨的普遍問題。

樊偉偉:中華萬年曆的研發體系建設 3

從組織這條線來看,如果在創業之前已經搭建好團隊最好,如果沒有團隊,面臨的第一個問題就是招人拉隊伍。創業公司剛開始招人有一個3F 法則:family ,friends ,fools(家人,朋友,“傻瓜”),除此之外,因為資金有限,我們還要盡量多招多面手,能在多個領域發展的員工。

同時,這個階段的流程 / 規範也是非常粗暴的,溝通基本靠吼,協作基本靠走,甚至沒有獨立辦公室。但這時的效率卻是最高的,因為大家都是面對面溝通,所以避掉了很多不必要的環節。在流程方面,如果有 idea 、需求或開發上線就直接上,沒有很完整的開發環節。

最後,這個階段不要有任何的技術情懷,要選自己最擅長的技術棧,不要選大公司時髦的技術架構。技術服務業務,優先保證產品能快速上線。在這個階段,技術方面要做到最基本的一點就是代碼和開發環境的統一。同時,這時的工具也非常少,大部分時候都是靠人肉操作。

成長期,分組而治

我們在成長期 —— 產品快速發展時會遇到下列問題:

  1. 用戶規模快速增長,新的需求會大量湧現;
  2. 團隊成員快速擴張。溝通和協作的效率大大降低;
  3. 原有的系統架構在擴展性、穩定性方面,會暴露出很多不足,產生很多問題;
  4. 因為之前大部分的工作都是靠人肉,所以迫切需要自動化。

樊偉偉:中華萬年曆的研發體系建設 4

這個階段我們要開始施行分組而治,業務和組織都要進行拆分。

因為這個階段的需求會非常的多,各方面的人才都要配置齊全,所以我們要建立一個人才梯隊和 QA 團隊。同時,這個階段我們需要沉澱一些最佳技術實踐,所以還要建立團隊內部的技術 wiki ,鼓勵大家進行內部分享,團隊之間相互學習和提升。

在從 1 到 10 的階段中,需求來源和功能都非常多,所以我們必須要做出優先級,建立需求池。同時,我們還要保證代碼的質量,做 Code Review 。除此之外,還要建立 bug 跟踪和故障管理流程,必須把此前的小 Bug 集中解決。雖然故障是不可避免的,但我們還是要把故障記錄,分析背後的原因,避免重複犯錯。

在技​​術 / 工具方面,隨著用戶的增長,我們需要引入成熟的開源技術,提高開發效率。在這個階段,我們將單體的系統拆分成:用戶、UGC 、內容和社區等子系統并快速上線。除此之外,因為這個階段的發布會很頻繁,所以我們還要建立持續交付的工具鏈以及統一的日誌管理平台。最後,做一套大寶劍系統,包含資產、機房、應用、監控等同屬於運維基礎設施的管理,由系統統一管理。

成長期,產品迭代流程

樊偉偉:中華萬年曆的研發體系建設 5

上圖是在成長期的產品迭代流程。首先是產品需求的收集和評審,有設計評審和技術的評審。接著進入研發、測試階段,再通過測試環境和預發布環境後上線生產環節。在整個版本迭代之後一周,我們會進行複盤,對上個版本的各項數據進行分析,對做的不到位環節進行反思,在下個迭代裡優化,並確認下個版本產品迭代的方向。

這個階段是產品非常重要的階段,也可以叫爬坡階段。因為這個階段的業務、產品、用戶,系統以及組織人員都在向上增長,出現的問題會非常多,所以我們需要在組織流程、技術架構以及工具等方面快速提高。

成熟期,穩中求變

走過高速發展期,我們的產品會逐步進入到成熟期。在這一階段可能會遇到以下幾個問題:

  1. 產品功能比較穩定,需要尋求新的業務突破;
  2. 嘗試增多,會導致新業務的失敗率增高;
  3. 相同的業務場景,會出現重複造輪子的問題;
  4. 各個維度的數據分析需求越來越多。

樊偉偉:中華萬年曆的研發體系建設 6

這一階段的團隊需要垂直領域的專業人才,不斷提高團隊敏捷性,要形成研發團隊的閉環。同時,我們還要建立基礎平台部門和數據分析團隊,沉澱基礎服務,避免重複造輪子。

在流程方面要敏捷,小步快跑,接受用戶的反饋,快速迭代演化產品。除此之外,還要用數據驅動產品決策,灰度和 A / B test 。當我們處於這個階段時,每天的日活都是上千萬,所以新功能上線不可能全部覆蓋所有用戶,一旦出現問題就是非常嚴重的線上故障。

技術 / 工具棧這一階段相對穩定,但如果有新業務或新突破想去嘗試,那麼可能就需要積累一些自己的公共組件,把基礎服務平台化。同時,在這一階段要把溝通的工具統一,把溝通、流程全部統一化。最後,我們還要有數據分析平台,前期可以採購,後期可以去自建。

對於未來,我們希望組織敏捷,小而美;希望能把流程、各種最佳實踐工具化;希望能真正做到技術驅動業務發展。

總結

樊偉偉:中華萬年曆的研發體系建設 7

  1. 我認為一個高效的研發體系,需要人或組織、流程規範,技術工具三位一體的考慮。每條線會有很多具體的實踐,雖然每個公司都不一樣,但思路都一樣;
  2. 研發體係不求高大上,只求適合自己;
  3. 高效的研發體系和產品一樣,需要不斷迭代。

以上就是我分享的全部內容,希望能幫助到正在創業的朋友,謝謝大家。

Q & A

**成熟期的標準是什麼?

樊偉偉:每個公司的發展階段都不一樣,對於我們這種to C 的成熟期產品來說,新功能的迭代已經非常少了,我們更注重的是核心業務的穩定性,會往其他方向或其他領域做一些新的嘗試。我認為,如果一個產品的核心功能穩定了,也開始想突破,想做新的嘗試,就算是達到了成熟期。

如何裁掉不合適的人?

樊偉偉:因為我們公司發展至今已經 8 年了,所以有很多老員工。有的老員工會跟著公司一起成長,會成為公司的核心,甚至到管理層。但有些老員工跟不上公司的發展,或是自己不再尋求改變。我們首先會跟這些跟不上發展的員工面談,並給予物質上的獎勵,如果還是無法改變現狀,那麼就會快刀斬亂麻。

創業公司的研發團隊要做 KPI 績效嗎?

樊偉偉:我們把研發分成了小組,每一塊負責一小塊獨立產品,從整個業務的目標上來看,研發、產品以及運營都一樣,所以研發也要背業務的 kpi 。除此之外,研發還會有其他的考核,比如交付速度、交付質量、線上故障等方面。

有沒有做過失敗的功能,是如何收場的?

樊偉偉:肯定會有。尤其在最開始的時候,會被用戶左右,各個功能點都很散,不成體系。當你做了幾個版本之後,你會發現之前做的功能其實很少有人用,甚至連自己都會慢慢遺忘掉,那這個功能最後就只能砍掉。我們現在會用數據衡量必須要做的核心功能,再加上 A / B test ,作出最後的選擇。

技術團隊和產品團隊的溝通協作機制是什麼樣的?

樊偉偉:互聯網公司的產品和技術打交道非常多,每一個版本的需求都要和產品碰。其實溝通協作,最重要的一點就是做到大家的目標一致,在這個基礎之上溝通就會好很多。

如何安排團隊加班,團隊如何激勵?

樊偉偉:對於創業型公司來說,加班肯定是在所難免的。我覺得加班應該分兩種:

  1. 新業務嘗試,關在小黑屋裡每天都加班。這個時候團隊的 leader 必須保證在物質上加倍補償。在項目成功之後,要給予獎勵;
  2. 產品迭代的節奏沒安排好,造成研發團隊加班。我們不鼓勵這種加班,作為團隊的 Leader 應該思考如何避免、如何優化。因為這種類型的加班並不會提高效率,最後交付的產品質量也會非常差,造成團隊的不滿,同時也沒有時間讓團隊成員沉澱提升。

訓誡和鼓勵是否有適合的比例?

樊偉偉:如果有團隊成員在某方面做得不好,我們應該先做正向的鼓勵。如果正向的激勵不起作用,那我們再採取反向的激勵。比如提出批評,扣減績效獎金等,但比例也需要自己去把控。


TGO鯤鵬會,是極客邦科技旗下高端技術人聚集和交流的組織,旨在組建全球最具影響力的科技領導者社交網絡,線上線下相結合,為會員提供專享服務。目前,TGO鯤鵬會已在北京、上海、杭州、廣州、深圳、成都、矽谷、台灣、南京、廈門、武漢、蘇州十二個城市設立分會。現在全球擁有在冊會員 800+ 名,60% 為 CTO、技術 VP、技術合夥人。

會員覆蓋了 BATJ 等互聯網巨頭公司技術領導者,同時,阿里巴巴王堅博士、同程藝龍技術委員會主任張海龍、蘇寧易購 IT 總部執行副總裁喬新亮已經受邀,成為 TGO 鯤鵬會榮譽導師。