與修正清單)
1. 誤區(qū)一至三認知層跑偏再多的工具也救不回來最近一兩年身邊越來越多團隊開始提 Harness Engineering 這個詞。我自己的感受是這是一個很好的概念但也是最容易被做成“四不像”的概念之一。很多人一聽“工程”兩個字第一反應(yīng)是“我們得上工具了”一聽“牽引”又覺得“不就是把流程固化下來嗎”。兩個反應(yīng)都只對了一半。我在不同團隊里見過太多種落地方式也踩過不少坑。今天不打算講理論直接把我認為最常見的11個誤區(qū)逐個拆開聊。每一個我都會說清楚它為什么看起來合理、實際上為什么錯、踩進去之后會發(fā)生什么以及我們現(xiàn)在是怎么繞開的。1.1 誤區(qū)一把 Harness Engineering 當成“買一套系統(tǒng)”就完事這是最常見的誤解沒有之一。很多團隊拿到預(yù)算之后做的第一件事就是盤點工具鏈、對比供應(yīng)商、選型、采購、部署然后對外宣布“我們已經(jīng)完成 Harness Engineering 落地”。問題出在哪呢Harness Engineering 里的 Harness字面意思是“挽具”——馬車和馬之間的那套連接裝置。它解決的問題不是“馬夠不夠快”而是“馬和車能不能配合好”。放在軟件工程里你需要的不是一套新的發(fā)布系統(tǒng)、一個新的工單平臺而是一套把現(xiàn)有的人、流程、工具、數(shù)據(jù)串起來的機制。如果你只是買了一套工具那你得到的依然是一匹馬加一輛車中間沒有挽具。我見過一個團隊花三個月時間引進了業(yè)界很成熟的交付平臺配置了流水線、權(quán)限、審批流看起來一切完備。但上線之后開發(fā)團隊依舊在用自己的腳本發(fā)版運維團隊依舊靠手工核對配置質(zhì)量團隊還是用Excel在盯缺陷率。三個團隊各干各的新平臺成了擺設(shè)。為什么因為沒有人去想“這個平臺落地后開發(fā)的口令在哪里改、運維的巡檢入口在哪里、QA的驗收標準掛在哪一環(huán)節(jié)”這些銜接問題才是 Harness Engineering 真正要解決的。所以后來我們復(fù)盤得出的結(jié)論是選型只占落地工作的 20%剩下 80% 是在組織內(nèi)部重新接線。工具負責(zé)解決單點效率挽具負責(zé)解決協(xié)同效率。你真正要構(gòu)建的是一套工程能力體系工具只是體系里最顯眼的一部分。1.2 誤區(qū)二跳過試點和灰度直接定了“全集團覆蓋”的目標第二個誤區(qū)在領(lǐng)導(dǎo)層面特別普遍。項目啟動會上最常聽到的話是“這個方向已經(jīng)驗證過了我們要快速鋪開三個月內(nèi)所有業(yè)務(wù)線全部接入。”動機可以理解但結(jié)果往往很慘烈。我們曾經(jīng)吃過這個虧。當時定了一個目標所有業(yè)務(wù)線統(tǒng)一接入新標準統(tǒng)一配置流水線統(tǒng)一度量口徑。聽起來很完美對吧結(jié)果是A業(yè)務(wù)線和B業(yè)務(wù)線的交付節(jié)奏完全不同一個走強管控合規(guī)路線一個走敏捷快速迭代路線。統(tǒng)一的流水線模板對A來說太松對B來說太緊。兩邊都開始繞過平臺干活數(shù)據(jù)隨之失真最后連基本報表都沒法看了。這里我想強調(diào)一個原則Harness Engineering 的落地本質(zhì)是一種行為改變。行為改變是不可能通過行政命令一步到位的。正確的姿勢是找一條愿意陪你折騰的業(yè)務(wù)線做試點把流程磨順、把抵抗點找出來、把收益數(shù)據(jù)拿到手再把這套東西復(fù)制到第二條、第三條業(yè)務(wù)線?;叶韧茝V的節(jié)奏可以這樣掌握第一個月只做一條業(yè)務(wù)線的端到端打通第二個月做兩個團隊的對比復(fù)盤第三個月才開始擴大到更多團隊。速度看起來慢但每一步都會產(chǎn)生真實的反饋。后面再推廣時你手里有案例、有數(shù)據(jù)、有踩過坑的解決方案說服力比任何PPT都強。1.3 誤區(qū)三只盯技術(shù)棧忘了研發(fā)流程和協(xié)作方式要跟著變Harness Engineering 有一個隱蔽的陷阱它看起來是純技術(shù)領(lǐng)域的事實際上涉及大量流程重塑。很多團隊在落地時一門心思研究工具鏈怎么搭、腳本怎么寫、模板怎么配卻忽略了流程本身是否支持這套工程機制。舉個例子。假設(shè)你要在交付鏈路上引入“變更風(fēng)險評估”這一環(huán)技術(shù)實現(xiàn)其實不難開發(fā)一個風(fēng)險分析服務(wù)接上代碼倉庫的元數(shù)據(jù)輸出一個風(fēng)險等級就行。但流程上是否允許這個環(huán)節(jié)存在誰來確認評估結(jié)果確認之后如果發(fā)生誤判責(zé)任怎么劃分這些問題不定清楚技術(shù)再成熟也推不下去。我們內(nèi)部有一個很深的體會技術(shù)選型解決的是“能不能做到”流程改造解決的是“愿不愿意按這樣做”。后者往往比前者難十倍。因為流程背后是人的習(xí)慣、信任關(guān)系和安全感?,F(xiàn)在我們在落地任何一項工程能力之前都會先回答三個問題這個能力改變的是誰的日常工作這個改變會讓他的工作變得更容易還是更難他身邊的哪些流程、角色、機制需要同步調(diào)整這三個問題答不清楚就先別動技術(shù)。2. 誤區(qū)四至六度量與自動化的“想當然”Harness Engineering 口號里最吸引人的部分通常是“可度量”和“自動化”。這兩個字也讓很多團隊在落地過程中栽了跟頭。我見過太多團隊指標建得漂亮、自動化率報表也很亮眼但實際研發(fā)效率和交付質(zhì)量反而倒退了。問題不在于“度量”和“自動化”本身錯了而在于人們太容易把它們當成目的而不是手段。2.1 誤區(qū)四指標靠拍腦袋定只看平均值我經(jīng)常問團隊一個問題你們目前最核心的交付指標是什么最常見的回答是“需求平均交付周期”。這個指標本身沒問題問題在于“平均”二字會騙人——它把長尾問題全部掩蓋了。舉個例子團隊一共有十個需求一個需求卡了三十天另外九個需求各花三天平均交付周期是五點七天。單看平均值你覺得這個團隊效率還不錯。但實際上那一個被卡住的長期需求恰恰是最重要的、依賴最復(fù)雜的核心需求。它把整個業(yè)務(wù)節(jié)奏拖垮了平均值卻看不出來。我這邊后來定度量指標有一套自己的原則一要看分布二要看趨勢三要看相關(guān)性。分布是指 P50、P75、P90 都要看明確長尾在哪里趨勢是看周度和月度的變化方向不能只看靜態(tài)數(shù)字相關(guān)性是看交付周期變短的同時線上故障率是否在上升。如果交付周期縮短了但故障率翻了一倍那不是效率提升那是把問題往后端轉(zhuǎn)移了。另一條建議是指標不要定太多。一個團隊一個季度只需要盯一兩個核心指標和兩三個輔助指標。指標太多團隊就會開始為指標打工而不是為用戶價值工作。2.2 誤區(qū)五把自動化率當KPI做到最后自動化反而成了負擔“自動化率”是 Harness Engineering 里另一個自帶光環(huán)的詞。但我在實踐中發(fā)現(xiàn)盲目追求自動化率會讓團隊陷入一種非?;闹嚨臓顟B(tài)自動化本身變成了最大的維護對象。我見過一個團隊為了讓部署自動化率從 80% 提到 95%花了兩個多月開發(fā)各種自動運維腳本和異常處理流程。最后 95% 的自動化率確實達到了但團隊卻發(fā)現(xiàn)剩下 5% 的異常情況往往是最復(fù)雜的自動化的腳本處理不了而那兩個多月里因為把所有精力投在自動化上新需求的上線速度反而慢了線上問題處理效率也下降了。算下來團隊的整體效率不升反降。這就是典型的“把自動化變成目的”。自動化的真正價值不是讓腳本替人做一切事情而是把人從重復(fù)勞動里解放出來讓人去處理更有判斷力的事情。我后來跟團隊定了一條原則如果一個操作發(fā)生過兩次就考慮自動化如果一個操作發(fā)生過五次就強制自動化如果這個操作每個月只需要處理一次那保持手動也沒問題。更重要的是每次做自動化之前都要估算“投入產(chǎn)出比”投入是多少開發(fā)時間、產(chǎn)出是每個月省下多少分鐘、維護這條自動化鏈路每個月又要花多少時間。只有產(chǎn)出穩(wěn)定大于投入的時候自動化才值得做。2.3 誤區(qū)六只關(guān)注“做出來”不關(guān)注“用起來”這個誤區(qū)在工具平臺類的項目中太常見了。團隊把平臺搭好了、文檔寫好了、培訓(xùn)也做了就覺得任務(wù)完成了。結(jié)果一看后臺數(shù)據(jù)平臺在團隊內(nèi)的周活躍率不到 20%大部分功能根本沒人點。為什么沒人用我去訪談開發(fā)同學(xué)之后總結(jié)出三個原因第一平臺操作流程比自己寫腳本要長多了好幾個點擊步驟第二平臺的響應(yīng)速度比原來的工具慢哪怕是快一秒鐘工程師都會感知得到第三平臺的報錯信息不友好出了問題不知道找誰也不知道怎么排查。說白了工程師是非常在意工具體驗的人群。他們手頭的那套老方法盡管低效但至少是熟悉、可控、能自己排查問題的。平臺再先進只要用起來不順手他們就會用腳投票。我們現(xiàn)在的做法是任何平臺類能力上線后第一周不看別的就看“實際使用率”。使用率低于預(yù)期的一律先砍掉或者回爐不要想著靠運營活動推一推就行。另一個做法是設(shè)立“內(nèi)測體驗官”每次新功能上線之前找三五個普通開發(fā)同學(xué)來試用他們覺得卡殼的地方就是我們要改進的地方。記住一句實在話好用的工具不需要強制推廣難用的工具推了也會被繞過去。3. 誤區(qū)七至九落地形態(tài)與長期運營的“三座大山”前面說的大多是理念和指標層面的偏差接下來聊三個更偏“落地形態(tài)”的誤區(qū)。這三個誤區(qū)決定了你的 Harness Engineering 到底是沉淀為組織資產(chǎn)還是變成一陣風(fēng)。3.1 誤區(qū)七每個項目都重復(fù)造輪子沒有平臺化沉淀大多數(shù)團隊做工程能力建設(shè)的時候都會經(jīng)歷“每個項目各自為戰(zhàn)”的階段。我這邊的項目需要一套發(fā)布流程自己搭一套那邊的項目需要一套測試環(huán)境管理也自己搭一套。每個項目都有道理因為項目需求不同、進度壓力不同、現(xiàn)有技術(shù)棧也不同。但這樣做的問題在半年后才會暴露。你會發(fā)現(xiàn)每個項目里都有一套看起來像但細節(jié)不一樣的“輪子”它們的接口互不兼容維護成本巨大。更麻煩的是當你想在這套基礎(chǔ)上構(gòu)建一個統(tǒng)一的可觀測體系或交付大盤時發(fā)現(xiàn)連最基本的“一次發(fā)布需要多長時間”這個指標各項目的口徑都對不齊。真正的 Harness Engineering 應(yīng)該是組織級的沉淀而不是項目級的工具。具體來說就是要把公共的部分下沉為平臺能力統(tǒng)一的流水線編排、統(tǒng)一的權(quán)限模型、統(tǒng)一的度量口徑、統(tǒng)一的環(huán)境管理。項目之間可以有不同的業(yè)務(wù)邏輯但基礎(chǔ)設(shè)施必須是同一套。否則你積累的不是工程資產(chǎn)而是工程債務(wù)。這件事越早想清楚越好。哪怕一開始平臺能力簡陋一點也要先把“統(tǒng)一”這個架子立起來。之后再逐步豐富也比各項目跑偏之后再回來收斂要省力得多。3.2 誤區(qū)八按“項目制”交付上線即失管另一個常見現(xiàn)象是把 Harness Engineering 的落地當成一個項目來做。立項、定目標、排期、上線、結(jié)項、團隊解散——流程完全沒問題但它注定做不成。因為工程能力的建設(shè)不是一次性的它是一個持續(xù)演進的生命體。工具上線只是起點后續(xù)還有模板迭代、指標校準、接入方拓展、問題響應(yīng)等一系列工作。如果按照項目制來運作上線即意味著項目的結(jié)束也就意味著后續(xù)沒人再維護了。我見過最典型的案例是一個平臺團隊辛苦半年上線了一套質(zhì)量門禁系統(tǒng)上線當天演示效果很好領(lǐng)導(dǎo)也很滿意。但一個月后因為業(yè)務(wù)方急著上線新功能提出了繞過質(zhì)量門禁的申請又過了兩個月繞過已經(jīng)成為常態(tài)質(zhì)量門禁變成了一個形式上的關(guān)卡實際作用接近于零。所以正確的組織形態(tài)應(yīng)該是“產(chǎn)品化運營”。你需要有一個長期存在的團隊對這套工程能力的用戶量、滿意度、迭代節(jié)奏負責(zé)。哪怕這個團隊只有兩三個人也要把它當做一個內(nèi)部產(chǎn)品來經(jīng)營而不是一個一次性交付的項目。3.3 誤區(qū)九安全合規(guī)被當成最后一公里結(jié)果被緊急叫停這個誤區(qū)在金融、政務(wù)、醫(yī)療這些強合規(guī)行業(yè)特別常見。團隊在前面把流程、平臺、自動化都做好了到了最后發(fā)布上線階段才發(fā)現(xiàn)合規(guī)審計過不了安全策略不允許手工審批環(huán)節(jié)沒法替換。我印象很深的一次經(jīng)歷是我們做了一個非常漂亮的自動化發(fā)布鏈路開發(fā)、測試、預(yù)發(fā)都順利通過了結(jié)果到了生產(chǎn)發(fā)布環(huán)節(jié)安全部門要求必須人工確認服務(wù)器變更清單。這一個環(huán)節(jié)就把整條自動化鏈路打斷了前面所有的自動化紅利都在最后一公里被消耗掉。問題出在哪里出在我們做架構(gòu)設(shè)計的時候沒有把安全合規(guī)團隊拉進來看需求和評審方案。安全合規(guī)不是流程末端的一個節(jié)點而是整個 Harness Engineering 體系里的一條橫切約束。和性能、成本、可用性一樣它從一開始就應(yīng)該被設(shè)計進去?,F(xiàn)在我們在設(shè)計任何工程鏈路時第一件事就會邀請安全、合規(guī)、審計的同學(xué)一起參與把管控要求前置到流程設(shè)計里。自動收集審計日志、自動生成合規(guī)報告、內(nèi)置權(quán)限審批流這些要在第一天就寫在架構(gòu)圖里而不是等開發(fā)完了再補。別把安全合規(guī)當最后一公里否則它就會成為壓垮整條鏈路的那根稻草。4. 誤區(qū)十至十一文化宣導(dǎo)與團隊演進的“軟刀子”如果說前面九個誤區(qū)都屬于“硬性問題”那最后這兩個誤區(qū)就是“軟性問題”。它們看不見摸不著但殺傷力一點都不比硬性問題小而且往往要到落地半年之后才爆發(fā)。4.1 誤區(qū)十把賦能做成了監(jiān)督工程師開始對抗平臺很多平臺的初衷是“賦能研發(fā)團隊”但在實際運轉(zhuǎn)中不知不覺就變成了“監(jiān)督研發(fā)團隊”。這是 Harness Engineering 落地中最微妙的異化過程。怎么異化的舉個例子平臺上線了流水線可視化和效能大盤本意是幫助團隊發(fā)現(xiàn)問題、優(yōu)化流程。但因為數(shù)據(jù)是實時采集的領(lǐng)導(dǎo)層能隨時看到每個團隊、每個模塊的交付情況于是月度例會上開始曬數(shù)據(jù)、點名、問責(zé)。開發(fā)同學(xué)很快就反應(yīng)過來這套系統(tǒng)是用來考核我的。于是他們的行為開始變形——能快速拆小需求就拆小需求能合并提交就合并提交一切以“讓大盤好看”為準而不是以“讓用戶價值更快交付”為準。平臺一旦被打上“監(jiān)控工具”的標簽就再也別指望工程師會主動在上面提交真實的數(shù)據(jù)、暴露真實的問題。他們會用腳投票會想盡辦法繞開平臺的檢查甚至?xí)室庠谄脚_里制造假數(shù)據(jù)。有一次我和一位資深工程師聊天他說了一句讓我印象很深的話平臺讓我們掃碼寫工時的時候我感覺自己不是工程師是一個流水線上的工人。這句話提醒了我Harness Engineering 的度量不是為了控制人而是為了幫助人。數(shù)據(jù)應(yīng)該給工程師自己看幫助他們發(fā)現(xiàn)自己工作流程里的瓶頸而不是作為管理層評審的工具。這個定位如果不擺正整個體系遲早會坍塌。我在團隊里現(xiàn)在會刻意做幾件事第一效能數(shù)據(jù)默認不對管理者開放至少不按個人維度開放第二任何涉及團隊效能排名的功能一律不做第三平臺上每個指標旁邊都寫清楚設(shè)計目的和使用建議讓工程師知道這個數(shù)據(jù)是拿來干什么的。做平臺的人需要時刻提醒自己我們服務(wù)的是工程師不是監(jiān)控機器人。4.2 誤區(qū)十一核心依賴明星個人梯隊和復(fù)盤機制缺失最后一個誤區(qū)其實也是最容易被忽視的整個 Harness Engineering 落地高度依賴一兩個關(guān)鍵人物。這個人可能是架構(gòu)師、技術(shù)專家也可能是一個熱衷于工程的資深開發(fā)。他推動了整個體系建立所有關(guān)鍵決策都需要他拍板出現(xiàn)問題也只有他能解決。這個過程聽起來很美好團隊里出了一個英雄。但風(fēng)險在于一旦這個人離崗、轉(zhuǎn)崗、或者是休假整個工程體系就停轉(zhuǎn)了。我見過一個平臺核心設(shè)計者調(diào)去負責(zé)其他業(yè)務(wù)之后剩下的人連調(diào)整一個流水線模板都不敢因為沒有人說得清楚整套設(shè)計里面那些默認邏輯和隱藏假設(shè)。這種單點依賴問題在落地階段尤其明顯。因為在搭建階段關(guān)鍵人物掌握的信息量最大溝通成本最低什么事他順手就做了。其他人也樂得輕松——反正有問題找他就行。等問題積累到不得不解決的時候已經(jīng)沒人能接手了。要破除這個誤區(qū)需要在過程中就做三件事第一結(jié)對每一項核心設(shè)計至少要有兩個人在全程參與避免只有一個人懂全局第二文檔即代碼所有決策記錄、架構(gòu)選型理由、取舍邏輯都要沉淀成文檔不能只存在某一個人的腦子里第三定期復(fù)盤每兩個月做一次正式的階段性復(fù)盤把當前的問題清單、決策記錄、后續(xù)計劃都過一遍確保體系是團隊的而不是個人的。我經(jīng)常說一句話好的 Harness Engineering 體系換掉任何一個人都不會停止運轉(zhuǎn)糟糕的體系核心人物請假一周就停擺。5. 走出誤區(qū)之后一套可以復(fù)用的修正清單上面的11個誤區(qū)都不是看書看出來的是我們在不同項目里一點點踩出來的。踩坑不可怕可怕的是踩完之后沒有形成修正機制。所以最后我把自己現(xiàn)在使用的一套修正清單分享出來每次啟動新的工程能力建設(shè)時逐條過一遍。認知與目標層先定義清楚我們要解決的是誰的什么問題收益方是開發(fā)、運維、測試、管理者還是最終用戶選定一條試點業(yè)務(wù)線明確為了期一個月的驗證周期不接受直接全量鋪開的方案。把流程、角色、激勵的變化一并寫入實施方案技術(shù)架構(gòu)只是方案的一部分。度量與自動化層指標選型堅持“分布優(yōu)先于平均、趨勢優(yōu)先于快照、相關(guān)性優(yōu)先于單點”。自動化必須附帶投入產(chǎn)出比估算不允許為了自動化而自動化。平臺上線后立刻跟蹤使用率低于預(yù)期就回爐修改不靠推廣硬撐。形態(tài)與運營層先定平臺化的邊界和統(tǒng)一口徑再談個性化需求擴展。用內(nèi)部產(chǎn)品化的組織形態(tài)來運營不按一次性項目來做。從一開始就把安全合規(guī)需求加入架構(gòu)設(shè)計不放到后置階段。文化與團隊層堅持產(chǎn)品“為工程師服務(wù)”定位所有度量指標都從幫助視角設(shè)計。核心設(shè)計要結(jié)對、決策要留痕、過程要復(fù)盤防止單點依賴。這套清單幫我避免了很多次“重蹈覆轍”。最近一次復(fù)盤的時候我們團隊發(fā)現(xiàn)一個很有意思的信號開始有開發(fā)同學(xué)主動跑到平臺團隊提需求了說希望新增某個能力幫助他減少一個手工環(huán)節(jié)。那一刻我知道Harness Engineering 總算沒有淪為擺設(shè)而是開始變成大家日常工作中的自然習(xí)慣。