誰說明天上線,這貨壓根不知道開發流程!

小傅哥發表於2021-01-04


作者:小傅哥
部落格:https://bugstack.cn
Github:https://github.com/fuzhengwei/CodeGuide/wiki

沉澱、分享、成長,讓自己和他人都能有所收穫!?

一、前言

網際網路公司常見工種有哪些?

網際網路中一個專案的上線會需要各個工種間的配合,以研發為視角上會承接產品需求,下會交給測試驗證,最終完成專案交付上線。其實除此之外,還會有業務、運營、UI設計、運維,來配合專案的發起、使用和運維維護。

圖 18-1,網際網路工種協同合作。

圖 18-1 網際網路工種協同合作

除了一條線上的工作交替配合,還有同工種間的跨部門協同工作。 比如:

  • 產品階段:A產品中的部分服務,需要由另外一個部門配合開發相關服務支撐。那麼雙方產品需要協調好時間節奏,配合上線。
  • 研發階段:承接著產品跨部門的對接功能,雙方研發會定義好對接介面、對接時間,以及最終的聯調上線。
  • 測試階段:按照產品的功能節點、研發的開發流程以及介面描述,進行測試驗證。

最終,同部門工作的交替、跨部門的工作協同,保障專案開發過程所需的各項物料都如期上線。

接下來我們來說一說,專案上線中各個階段的執行過程。 當然,並不一定所有的開發都是按照這個過程執行。​會根據公司的體量、專案的大小、架構的模式有些許差異。所以,僅作為參考學習即可,不需要強制趨同。

二、時間節奏

圖 18-2 定義時間節奏

  • 級別:⭐⭐⭐⭐
  • 事項:定義專案開發時間節點
  • 人員:業務、產品、研發組長、測試組長、架構師、核心專案成員
  • 描述:這個時間節奏的定義非常重要,它可以是專案經理髮起也可以是產品發起。一般很多時候互聯公司發一個專案,經常會聽到老闆說我要這個時間上。可能這句話看上去很不合理,但為了活下去,為了快速站住市場,壓到下面執行人員就是一個必須要上線的時間。,這個上線的時間如果想滿足, 那麼就需要把整體的時間節奏確認出來。比如業務和產品什麼時候把需求確認清楚什麼時間與研發過PRD研發什麼時候開發到提測測試什麼時間測試完成如果,沒有這個時間節奏,前面的職責人員把時間都耗費沒了以後,越往後面風險越高。就像最後研發只有4天,測試只有2天,那帶BUG上線嗎!?所以要整體把控才是對專案的負責。

三、資源投入

圖 18-3 安排資源投入

  • 級別:⭐⭐⭐
  • 事項:研發資源投入
  • 人員:架構師、研發人員、測試人員
  • 描述:站在研發視角,研發需要從工程開發、配合測試(改bug)、專案上線等的全流程參與,是一個較長週期的工作。但在某個階段所投入的時間成本會有差異,可以按照一定的資源佔比進行投入(1是100%、0.8是80%)。那麼,當一個新的專案下來以後,就需要按照最近原則和專案的人員可投入情況,進行資源投入安排。如果專案較多的情況下,資源安排不合理。可能會導致專案提交測試晚或某些功能全部由一個研發提交測試的,最終改不過來BUG。從而也就導致了,專案的延期風險。

四、研發、測試、上線階段

圖 18-4 研發、測試、上線階段

  • 級別:⭐⭐⭐⭐
  • 事項:研發、測試、上線階段
  • 人員:研發人員、測試人員、架構師/技術組長
  • 描述:這個階段包括的內容較多,主要是以研發視角看上下銜接人員。研發接過產品的需求開始做設計,設計完成後由研發主導發起設計評審,這個階段參與的人員較多(研發、架構師、測試、產品等)。功能的合理設計也是可以非常有效的保障資源使用的重要一環,另外一個需求的合理架構將會為後續需求迭代做好鋪墊。就像女廁改男廁,如果沒有流出小便的水管,就很麻煩。 最終研發完成需要提交相應的成果物,尤其是提測報告、介面文件、單測資訊。如果研發不能有完整的單元測試覆蓋度,那麼交給測試以後,日常的修復bug的事情就會非常多。當研發和測試工作完成以後,接下來就是釋出上線。上線前夕會有研發發起上線報告,同時各方配合以及產品、運用準備相應的線上配置資料和許可權。最終上線完成交付產品運營使用。

五、專案覆盤

圖 18-5 專案覆盤

  • 級別:⭐⭐⭐⭐
  • 事項:專案覆盤
  • 人員:面向研發和測試人員
  • 描述:覆盤可能會因為出現事故、技術總結、分享成長,幾個方向而進行的歸納、總結,避免同類事情的發生。覆盤內容一般會包括技術方面的使用,例如:DB、應用開發、閘道器等,也包括業務領域邏輯的建設。
  • 覆盤DB:
    1. 資料庫連線數配置依照業務場景申請增加
    2. 禁止使用複雜巢狀和函式類等做業務查詢
    3. 防重邏輯欄位加強避免造成不能防重問題
    4. 索引欄位初始化檢測以及慢查詢問題優化
  • 覆盤業務:
    1. 對於所有營銷類場景的設計需符合標準流程,快取使用的一致性問題
    2. 資金流水結算方面在防重複設計上加強驗證,測試環境模擬多樣場景
    3. 對於外部支撐系統的依賴按照業務體量發展,進行通知壓測報告流量
    4. 所有核心功能流程加強研發側程式碼評審質量,並不斷按照發展量優化
    5. 研發側程式碼質量提升定期覆盤問題以及優化,通過鍛鍊不斷加強質量
    6. 在研發提測、修復、上線流程注意開發分支,避免錯亂合併產生問題
    7. 所有的業務流程配置監控與圖表並列印日誌,方便及時追蹤線上異常
    8. 核心場景的全鏈路壓測可以有效的保證質量,也可很好降低流量風險
  • 覆盤功能:
    1. 功能邏輯封裝優化,快取、執行緒、驗證
    2. 日誌完整性校驗,入參、出參、異常
    3. 呼叫外部介面的超時時長設定以及重試約定
    4. 異常展示的緊急問題,測試環境復現追溯
  • 覆盤部署:
    1. 按照壓測標準部署服務
    2. 核心業務雙機房三機房
    3. 非核心業務隔離RPC介面配置
    4. 按需調整JVM、連線數、日誌等引數
  • 覆盤介面:
    1. 功能驗證的完整性
    2. 異常流程的複測性
    3. 資料指標監控範圍
    4. 新上線後定期檢測

綜上,可能僅僅是對某一次專案的總結性覆盤,便於新人接受和理解專案的重點內容。如果團隊中能及時有效的彙總技術並落地資料,可以非常有效的做好技術傳承。

六、總結

  • 網際網路中一般中大型專案的開發過程,涉及的流程一般較多,也需要合理的把控。否則可能會出現一些過程中的風險,導致專案不能如期上線。當然也並不是所有專案都需要這樣處理,例如一些小功能的迭代和簡單需求的開發,可以簡化流程,快速迭代。蓋茅坑、豬圈、三居室還是不同的,不能一概而論
  • 做好技術分析、覆盤、總結、歸納,沉澱出的技術資料非常有價值,既可以把專案開發經驗傳承給新人,也可以讓所有人做好各自的技術成長。並且通過覆盤和總結,又可以提煉出更多新的思路和提升技術氛圍。
  • 好了,本章就總結到這,可能對具體的你或者具體的公司,會有不同的視角和結果。如果有一些好的點可以互相討論學習。另外最近學會了個新東西分享給大家:內卷的反義詞是:外包,合同的反義詞是:離異!

七、系列推薦

相關文章