原創(chuàng):逆熵研習社
本期摘要
1.工程能力是一項綜合能力,對個人和團隊都非常有意義。
2.個人的工程能力包含心智因素、判斷主次和先后的邏輯思維能力、持續(xù)將事情做好的套路等要素;協(xié)作和總結抽象也是個人工程能力的重要要素;
3.團隊的工程能力核心是發(fā)揮出團隊有機體的系統(tǒng)能力,協(xié)作性、成長性、持續(xù)性是團隊能力的要素,執(zhí)行效率、并發(fā)執(zhí)行的能力是當前研發(fā)團隊工程能力狀態(tài)的主要體現(xiàn);
什么是工程能力
? ? ? 什么是工程能力?在定義前想起了一個非常有歷史意義的追求“多、快、好、省”。
? ? ? 如果在成本固定,投入不變的情況下可以做到“多、快、好、省”絕對是非常值得推崇的?!岸唷⒖?、好、省”的程度就是我們個人以及我們團隊工程能力在結果上的表現(xiàn)。
? ? ? 用古法對我們研發(fā)過程的“工程能力”做一個定義——依據(jù)當前的技術水平、架構狀態(tài)、人力及其他投入狀況選擇并建設的實現(xiàn)路徑、協(xié)作方式以及基礎設施等是工程能力的核心要素。工程能力包含了對現(xiàn)實的理解、對資源的控制、規(guī)劃建設以及包含流程在內的協(xié)作管理能力等,因此是一項綜合能力。從個人和團隊兩個層級看工程能力都是非常重要的綜合能力。
個人工程能力的要素
? ? ? 個人的工程能力也被稱為工程素養(yǎng),在當前的互聯(lián)網(wǎng)公司中有不少工作將個人工程能力(工程素養(yǎng))作為職級晉升評判的重要依據(jù)。個人的工程素養(yǎng)是一個非常綜合的能力,有一種模糊但具體的感覺。可以根據(jù)工作的的效果判斷出工程素養(yǎng)的高低,但在細分析做成事情的原因時就會感覺到這似乎和一項或者幾項更基礎的能力相關。
? ?? 這些細分的基礎要素中第一塊兒基石是“可依賴”。由于經(jīng)歷、教育等原因人的技術能力總是會有各種各樣的差異,大家承擔的事情會有很大差異,但在不同崗位上有一個共同的要素就是要“可靠”,可就是能夠提供相對穩(wěn)定的輸出。怎么才能做到可靠呢?兩個方面是必須的:
1)有相對穩(wěn)定的,可以承擔壓力的心智。穩(wěn)定的心智是什么樣的呢?至少正視自己和團隊的現(xiàn)狀,為理想可以挑戰(zhàn),可以突破,但務必要以務實為準(注意務實不是現(xiàn)實,務實立足現(xiàn)實但目標更多的是未來)。
2)具備辨別主次的能力,持續(xù)將事情做好。能夠區(qū)分主次,抓住并解決自己職責的主要矛盾。? ?
? ? ? 舉質量的例子來看——一般創(chuàng)業(yè)公司的質量團隊建設的比較晚,質量團隊建立時就可能是質量問題高頻爆發(fā)的時期,同時也是基礎設施各種不健全的時期。這個時候應該如何抓?我見過一些朋友以問題做為做事情的驅動,一波波的線上問題成為瘋狂干活的驅動因素,大家咬緊牙關解決當前的線上問題。我還遇到過朋友以遠方的美好作為驅動,不太去關注當前的質量問題,扎入深處去建設一些底層的基礎設施,而線上問題接連不斷的繼續(xù)發(fā)生。如果是你自己承擔這個方向的質量問題,你如何想呢?相信你對這兩種方案都不是非常滿意,但我們又該如何抓住真正重要的東西呢?毫無疑問這個時期的團隊當前和未來都非常重要,真正的高手就是要解決“既要”“又要”的問題——攔截住當前的主要問題,同時為未來鋪好道路??偨Y下,為了保證自己是可靠的就要能夠分辨出自己承擔職責的主要矛盾,除了心智因素外做事情上要著眼主要矛盾,解決當前問題,為未來埋下能夠長大的種子,持續(xù)不斷的推進問題的解決,努力讓自己在現(xiàn)在和未來都不是整盤棋的瓶頸點。? ? 基礎要素中的第二塊兒應該要數(shù)做事兒的“套路”了。即便是同樣的技術層次,同樣的業(yè)務理解在做事情套路上也會有很大差異?!疤茁贰庇幸粋€系統(tǒng)的要素要考慮。對于自己做的較大點的事情,總不能一下子就干完了,“套路”的第一點要求就是要有規(guī)劃的能力,知道從哪兒下手,可以較合理的安排前后相序的實現(xiàn)過程?!疤茁贰钡牡诙c要求是理解系統(tǒng)和組織,較為合理的使用系統(tǒng)和組織的力量。為了解決問題總有一些是需要我們費盡心力玩命解決的,而有一些卻可以借助團隊的力量解決掉。具體到一個項目中,好比你承擔了某個業(yè)務方向容量安全的職責,該用什么樣的套路呢?介紹一個朋友的大致做法,個人感覺套路不錯。這個朋友承擔的職責主要的目的是保障產品可以正常服務用戶,該工作的一對主要矛盾是“成本與效率”,從邏輯上說“不能無限制的增加人力資源和服務資源”。為了解決這個矛盾,大致分階段做了這幾個事情:
1. 收集性能事故盡可能多的信息,整理出產品線性能問題的主要特征——多數(shù)情況發(fā)生在服務高峰,緩存系統(tǒng)首先出現(xiàn)問題;40%出現(xiàn)在新版本上線的下一個高峰期,其余出現(xiàn)在業(yè)務階段性增長時期。
2. 降低由于迭代導致的緩存問題,將和緩存密切相關模塊的新版的發(fā)布延遲一天,新版本在灰度環(huán)境待1~2個高峰期,初步排除明顯且危害巨大的風險;該工作非常直接,成本不高,不足之處是降低了迭代的效率。
3. 集中自己的力量在緩存相關的模塊中加入性能trace,在宏觀的信息信息之外添加高風險模塊的過程數(shù)據(jù),并持續(xù)高度關注過程數(shù)據(jù)的變化。通過2、3工作的落地性能問題發(fā)生的頻率有了明顯的下降,但是問題仍然存在。
4. 與運維、基礎組件等團隊溝通對高風險模塊在服務低峰期進行整機房壓測,經(jīng)過1個月左右的壓測,高風險模塊的性能狀況基本摸清。開始進行針對模塊的系統(tǒng)化優(yōu)化。
5. 建設可持續(xù)使用的在線全鏈路壓測系統(tǒng)和全方位的性能trace記錄,并通過小時級別的容量狀況狀態(tài)發(fā)布給子系統(tǒng)負責人。該工作耗費了很長時間,整體建設完成將近一年時間,但是建成后效率明顯提升,性能問題極少出現(xiàn)。
? ? ? “套路”的核心就是在知道干成什么樣的情況下有能力推動建設的進行。所有的說“我知道怎么干但是我不愿意”,或者說“我知道干成啥樣,但是我不愿意搞”都是和套路不符的,承擔了職責做好才是有意義的。? 能力要素的另外一個基本要素應該說是團隊管理與協(xié)作。當承擔比較大的職責時往往不是一個人單槍匹馬就能完成的。不過管理問題本身研究比較多,可謂是博大精深,有機會單獨聊聊這一塊兒的理解,此處只聊一下簡單的思路。首先,是能夠將大家團結在一起。說出來有點無色無味,但是能團結起來的力量確實很重要。如何將大家團結在一起呢?最好是有共同的理想和共同的利益,另外團隊就是自己工作的生命,要時刻在自己的團隊中和大家一起沖鋒陷陣。其次,能夠協(xié)調大家打好配合。
? ? ? 最后一個核心級的要素是至關重要的,這項能力就是將工作進行總結抽象的能力。沒有抽象就難于理解事情本質,難于將經(jīng)驗進行很好的泛化,更難做出突破性的創(chuàng)新工作。說的這么懸,咋提升總結與抽象的能力呢?起點要基于我們實際做的事情,在做事情解決問題的時候不斷的思考任務解決的核心目標和做事情的關鍵路徑,不斷的抽象出更準確、更簡潔的描述。然后就是拿著自己抽象的內容在新的實踐中進行檢驗,不斷磨練。
團隊工程能力的要素
? ? ? 團隊的工程能力是基于團隊成員工程能力基礎上的一個組織的工程能力。之所以說是具有組織性的就是團隊的工程能力不是簡單的成員能力的疊加,還要有能力的配合,甚至是能力的激發(fā)。團隊工程能力要素有以下幾點:
1)團隊工程能力的一個要素就是“配合”,都說“雙拳難敵四手,好漢架不住人多”,我們組織團隊的一個核心就是要配合,構建團隊才有的系統(tǒng)能力。你所在的團隊可能非常有錢,可以找到最好的工程師,但是無論工程師有多好,都不能要求大家都是全能的,即使你能找到全能工程師放在一起也不是一個有機的團隊。如何建設團隊的系統(tǒng)能力呢?既然是有機體我們就需要遵循有機體本身的規(guī)律——有整體的清晰的目標,協(xié)作目標明確大家才能圍繞這個目標一起建設,協(xié)作大目標一致情況下階段性目標也應該及時傳遞給大家;有共榮的文化,一個一起做事兒的團隊應該要有共榮的意識,在共榮意識的前提下落地真實的共榮,好比說對于高成長預期的團隊,能有意識的通過團隊的實戰(zhàn)提升大家的實際“戰(zhàn)力”就是非常有意義的;此外還有尊重有機體生長和淘汰機制,面向我們的目標不斷的磨煉所需能力,必要的時候要保證團隊要有較好的梯隊形態(tài),以便于催促大家成長與接力。
2)團隊工程能力的第二個要素是流程和制度。這東西聽起來可能招致極客范同學的反感,不都在說追求扁平,不都在說追求自由的工程師文化么?這些追求當然也不錯,團隊的價值、文化和制度應該是一套的。目標就是要限制部分“個體性”,凸顯“團隊性”,讓團隊像狼群一樣所向披靡。因此為提升團隊工程能力我們應該積極思考自己的制度、文化,不斷的磨煉這塊能力。
3)團隊工程能力的第三個特征是“持續(xù)性”。我們做的產品需要根據(jù)市場不斷變化,但是團隊的一些基礎需要持續(xù)建設。我見過一些換團隊的例子,這些團隊為了應付每年的晉升和KPI基本沒有持續(xù)建設的東西,每建設一項便大肆吹牛,未經(jīng)打磨便草草結束,這樣的很難打磨好的團隊系統(tǒng)能力特質。
4)團隊工程能力的另外一個特征是“并行性”,并行性可以說是因,也可以說是果。串行的能力早晚會成為系統(tǒng)的瓶頸,因此應該早早著手打造自己團隊的“并行能力”。并行能力有兩方面的意義——一個是最直接的快速完成任務,另外一個是內部練兵,不斷提升團隊自己的力量。
5)還有一個不能忽視的工程能力要素——與其他團隊的協(xié)作能力。團隊本身是有機體,在大的有機體內又是部分,有一套和外部協(xié)作的機制和文化是非常有意義的。在和外部協(xié)作時可以有自己的風格,總的遵循原則是保證信息高效傳遞,保障任務落實到人。