教你優雅解決項目Delay和交付質量差的問題

640?wx_fmt=gif

作者簡介

凌薇    百度雲智能運維業務研發負責人

640?wx_fmt=png

負責百度雲Noah自動化運維平臺和智能運維解決方案的探索,在服務管理、資源管理、變更管理和故障管理的業務分析和設計方面經驗豐富,致力於推進AIOps在百度業務、公有云以及私有云客戶的運維場景落地。


爲什麼要寫這篇文章

做了這麼多年項目,參加過無數次團隊內外的項目覆盤,發現不少項目延期和客戶交付質量的問題。這些問題給產品和技術負責人帶來了不少應急“救火”的困擾。分析這些Case後,發現問題集中在以下幾個方面:

  • 需求界定不清晰、系統設計有缺陷、研發質量無保障、無效溝通耗時長,導致項目反覆並且嚴重延期;

  • 跨團隊協作推動成本高,多團隊交付進度出現Delay,項目整體目標不可控;

  • 概要設計文檔、API手冊、產品使用手冊和運維手冊質量差,客戶學習成本高;

我們團隊通常會使用項目覆盤(Case Study)的方法來應對這些情況。覆盤主要爲了解決以下兩個問題:其一,爲項目延期和客戶交付風險找到可行的解決方法;其二,給團隊成員一些指導,避免同一個問題重複出現。當然,這些覆盤工作一般在某個項目組內部開展,需要一種方式能夠在多個項目組之間共享,這便是我寫此文章的原因。

項目管理和研發質量控制是一個比較複雜的系統工程,本文不會系統的講解一些理論和原則,而是以實際案例爲索引分享一下項目管理中常見的問題以及必須要採取的方法。前車之覆,後車之鑑,希望能對新晉的項目管理同學有些幫助。

案例一:多角色人員協作的業務項目

場景描述

某監控產品需要對多個Region的多個雲服務(例如虛機、數據庫組件、緩存組件、消息隊列組件)提供多個指標趨勢圖對比查看功能。產品研發需要PM設計產品形態和邏輯,UE設計產品視覺交互,若干FE研發前端頁面,若干RD研發後端業務邏輯,QA測試業務功能,測試通過後FE和RD聯合上線。項目研發從預期的1個半月拖延至實際3個月。研發中經歷至少5輪測試,發現2個產品缺陷,5個技術方案缺陷,低級Bug預估20+,Bug收斂速度極慢。這是一個極其典型的項目管理和研發質量失控案例,參與項目的多數是新同學,研發流程規範上認知度嚴重欠缺。

爲了便於大家對項目過程的理解,附註一下相關的產品設計、接口設計和低級Bug例子:

  • 產品設計缺陷:PM產品設計時遺漏在趨勢圖上標註不同Region的雲服務名字,導致用戶無法定位指標所歸屬的雲服務實例。

  • 接口設計缺陷:產品要求一個趨勢圖最多支持30個雲服務實例的指標對比,前端FE接口參數檢驗限定爲20個,後端RD接口參數校驗限定爲10個;趨勢圖指標數據查詢無論用戶選擇的時間段多長,指標查詢的粒度都是60s,導致在時間跨度很大的情況下,返回數據點過多頁面渲染性能差。

  • 低級Bug:選擇實例和監控項之後可以查看趨勢圖,但是取消監控項選擇之後趨勢圖未消失;時間選擇框對趨勢圖展示的指標數據的時間段控制作用失效。

關鍵問題

  • 產品設計和接口設計缺陷應該是在什麼階段發現?

  • 低級Bug爲什麼那麼多?Bug收斂速度爲什麼那麼慢?

  • 項目出現延期風險時,項目負責人應該在什麼階段管控風險?

解決方案

這個項目的關鍵是沒有嚴格遵循常規的軟件研發流程規範。

  • PRD沒有經過評審,PM簡單畫了幾個原型圖開始安排前端FE和業務RD開發,導致產品缺陷沒有在PRD評審階段發現;

  • 前端FE和後端RD的接口設計沒有完備的文檔,沒有經過充分的溝通;RD提測代碼時沒有經過整體場景的聯調和Demo Review,導致低級Bug在測試階段才暴露出來;

  • QA的測試准入沒有嚴格執行,低級Bug多的情況下,QA未實施測試打回;

  • 技術負責人沒有在項目即將延期時進行問題覆盤,而是在延期兩週後纔跟進問題,錯過了關鍵的項目修復時間,增加了很多不必要的多人協作成本。

這個案例在很多新項目新團隊成員中比較常見。對於多角色協作的項目需要執行嚴格的研發流程規範,需求相關的MRD,產品設計PRD,UE設計稿、總體設計和詳細設計文檔都需按照規範撰寫並且經過團隊評審,只有前一個環節通過才能進入下一個環節。儘早交流和持續溝通使開發人員獲得對產品和業務的信息,始終遵守“及早發現,及早解決”的準則,如此我們便能在軟件研發過程中價值最低的階段修正問題。RD在交付QA之前需要進行系統聯調Demo Review,確保研發和產品設計保持一致。研發質量需要符合編碼規範,並且有單測指標,單測的行覆蓋率和分支覆蓋率不達標QA可以拒絕測試。QA需要嚴格執行測試准入,對於低級Bug多的同學不僅拒絕測試,並且團隊內公示項目中每個同學的代碼質量

項目管理者需要執行嚴格的研發流程規範,需要合理的安排項目的進度。通常的經驗是爲1/3計劃、1/6編碼、1/4構件測試以及1/4系統測試,所以一定不要在前期的設計評審階段和後期的聯調單測階段節省時間,不然會使得項目風險頻發,脫離控制。任何創造性活動都伴隨着枯燥艱苦的勞動,編程也不例外。大家通常期望項目在接近結束時,軟件項目能收斂的快一些,然而,情況卻是越接近完成,收斂的越慢。一個風險問題的暴露,一個里程碑的進度偏離,最終會累積使得整體進度偏離很遠。慢性進度偏離是士氣殺手,及早的問題覆盤,持續的信息同步有助於將脫軌的項目拉回到正常的軌道。

案例二:多團隊聯合解決方案實施

場景描述

部門成立一個近20個團隊的聯合項目,實施核心業務線的SCAR(項目代號)。該項目的主要目標是結合多個平臺系統提供的能力,組合成一個複雜解決方案,幫助業務提升能力。項目的週期是一年,多個平臺研發團隊和十幾個業務團隊需要完成該解決方案的研發和業務落地。項目實施中的初期發現平臺研發符合預期,若干個業務團隊沒有承諾明確的落地時間,或者承諾的時間因爲團隊的其他項目影響落後於項目預期。聯合團隊採取了緊急溝通,實施了一些雙重彙報機制和指標管控方法,保障了項目如期交付。這個項目成功落地業務線取得了非常好的效果,作爲成功案例在多個團隊做項目管理分享。

關鍵問題

  • 如何確保多團隊目標的一致性?

  • 如何跟進項目及時發現進度風險?

解決方案

多團隊協作的一個重要問題是每個團隊都有各自的重點項目指標,SCAR項目只是其中的一個,也可能不是其重點項目,各個團隊投入的關注度和資源不一定充分。在這種情況下,需要成立橫向聯合的虛擬團隊,在多個團隊的經理層面明確項目目標,使得該目標變成經理自身考覈KPI中的一項,並且每個團隊還需要抽取出一名成員作爲接口人蔘與聯合項目。虛擬團隊實施雙重彙報機制,團隊成員除了向各自的經理彙報以外,還需要向橫向聯合團隊的負責人彙報,團隊成員的年底績效考覈時,橫向聯合團隊的負責人也會給出一份評價。這種機制可以確保各個團隊的項目經理對項目的支持度,以及跨團隊的成員在項目中有足夠的投入和友好的協作。

因爲涉及的團隊比較多,多個業務團隊的落地進展對橫向團隊負責人來說是一個黑箱。橫向聯合團隊負責人需要設定相應的指標監督項目進度和識別項目風險。關鍵的指標包括以下三類:

  • 先行指標(Leading Indicator):項目啓動之初建立該項指標,明確到項目結束時SCAR系統具備的能力以及在業務線實施的覆蓋度,通過這些指標可以引導項目負責人關注黑箱中該注意的事情。

  • 線性指標(Linearity Indicator):爲了達到目標設定的理想進度指標,可以理解爲項目分季度分月的KPI指標,比如系統研發的進度,比如業務線實施覆蓋度。以業務線實施覆蓋度爲例,可能14個業務線,第一個季度實施4個業務線,後面的兩個季度每個季度實施5個業務線。設置線性目標是爲了指導項目分階段的進度,避免因爲項目時間跨度過長項目風險整體不可控。

  • 趨勢指標(Trend Indicator):以時間標準爲基礎,根據對過去的觀察,從趨勢中預測未來。例如,項目的初期系統易用性較差,業務落地的成本高,前期的業務實施覆蓋度指標有可能落後於一開始設置的線性指標。經過一段時間的系統優化,業務落地的成本變低了,後期的業務實施覆蓋度指標有可能快於一開始設置的線性指標。項目負責人需要週期性Review項目的趨勢指標,及時協調資源,調整項目的進度和把控風險

通過虛擬團隊的雙重彙報機制,通過設定項目的先行指標和線性指標,週期性Review趨勢指標,可以幫助項目負責人在多團隊協作項目中能夠比較好識別項目風險和調度資源解決問題。

案例三:ToB客戶驗收項目

場景描述

團隊承接了某個客戶的平臺研發,需要交付時提供完備的系統概要設計文檔、用戶手冊和標準運維流程手冊給客戶。項目交付前期團隊內部抽查了部分文檔,發現一些文檔內容的完備性、可讀性和可操作性欠缺,急需規範和優化。爲了保障對客戶高質量的輸出,團隊陷入緊急的文檔優化過程,很多RD和PM進入了加班“救火”狀態。在ToB項目中,每一份文檔都代表着對客戶的承諾和服務意識,代表着一個團隊的技術素養,需要認真對待。

關鍵問題

  • 什麼階段該寫文檔?一個好的文檔應該具備什麼樣的特徵?

  • 團隊經理和項目負責人如何保障文檔質量?

解決方案

概要設計文檔需要在項目設計階段產出並且評審通過,而不是在項目交付階段進行補充;接口設計需要在研發之前完備並且經過評審;用戶手冊需要在實施客戶培訓前完備,具備良好的易讀性,客戶學習成本低;運維巡檢和故障處理SOP手冊需要在交付客戶運維之前完備,並且經過演練執行。

一個團隊應該有確定的可執行文檔規範,而不是每個項目每個團隊成員想當然的自行發揮才華,交付質量參差不齊。對每個文檔的維護也提供了項目的狀態監督和預警機制,文檔使各項計劃和決策在整個團隊範圍內得到交流,也便於及時發現項目的問題。

概要設計文檔需要明確項目的背景、名字解釋、功能概述、性能指標、依賴的軟硬件環境、系統的總體架構、系統核心業務模型、系統各模塊交互的數據關係、各模塊的功能概述、各模塊依賴第三方服務的接口說明。

HTTP Restful風格的接口設計文檔需要明確面向資源的HTTP URL設計方法、HTTP Method使用說明、HTTP Status Code使用說明、接口鑑權方法,接口輸入和返回的各種參數說明、接口返回系統錯誤碼的明確含義等。

用戶使用手冊需要場景化,有截圖,需要明確給用戶標識出錯誤使用的風險。運維巡檢和故障處理手冊需要步驟清晰可執行。

文檔規範的執行效果需要有質量控制方法,不然文檔規範就成了擺設。項目負責人常用的方法可以稱之爲“海關與監視器”,團隊經理常用的質量控制方法是隨機檢驗。

  • 海關”是指我們先設下重重關卡,文檔唯有通過檢驗之後才能進入下一步的研發流程,如果文檔無法通過評審,便被打回重做或者是廢棄。概要設計文檔和接口設計文檔應該使用此方法。

  • 監視器”是指我們可以將不滿足質量檢測的文檔內容標識上記號,這個文檔將不會在流程中的各個關卡被截住,整個流程將會變得順暢,在這種檢測中,有問題的地方超過一定的量,則需要立即修訂。對於用戶手冊和運維巡檢手冊中場景的覆蓋度問題可以視情況採用“監視器”的方法進行多輪迭代。

  • 隨機檢驗就是隨機抽查。因爲項目很多,不同項目負責人對文檔把控的嚴格程度也會有偏差,所以對於團隊經理來說,逐個文檔檢查的成本非常高,改變檢驗的頻率也就理所當然。如果一個經理對他的下屬事必躬親,就可能造成干預,而且將會浪費更多的時間在不會出錯的下屬上。更糟糕的是,他的下屬可能因此會形成依賴性——反正什麼事情老闆最後都會檢查。隨機檢驗應用在管理上,既可以增加項目負責人的責任感,又可以節省經理時間。

不管使用上述哪種文檔質量檢查方法都是在培養團隊的文檔質量意識,因爲交付給客戶每一項質量差的文檔都可能會導致客戶的流失,也會影響團隊口碑和產品品牌。

寄  語

以上是對幾個典型項目場景下遇到問題的覆盤思考,這些案例給我們的啓示如下:

  • 多角色人員協作的業務項目:嚴格遵守軟件研發流程&及早發現問題及早解決

  • 多團隊聯合解決方案實施:建立雙重彙報機制&設定並且盯好業務指標

  • ToB客戶驗收項目:珍惜客戶&重視團隊文檔交付質量

希望這些分享可以給新晉的項目管理負責人一些參考,避免一些不必要的彎路。後續依然會持續關注團隊的項目實施和分析,歡迎更多有興趣的同學一起討論和分享。

640?wx_fmt=png

640?wx_fmt=png

↓↓↓ 點擊"閱讀原文" 【瞭解更多精彩內容】 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章