技术团队的工程师文化:效率与价值
點(diǎn)擊▲關(guān)注 “中生代技術(shù)”? ?給公眾號(hào)標(biāo)星置頂
更多精彩技術(shù)內(nèi)容 第一時(shí)間直達(dá)
本周連續(xù)做了兩場(chǎng)演講,基本思想都是從技術(shù)團(tuán)隊(duì)的工程師文化入手,談?wù)勅绾翁嵘逝c度量?jī)r(jià)值。下文是我對(duì)演講內(nèi)容的總結(jié),限于篇幅,還有許多未盡之意,期待能和朋友們有更多的交流。
差不多在10天前,我受邀在極客時(shí)間部落發(fā)起了一個(gè)討論。
談到工程師文化,有的人說自由、有的人說協(xié)作、有的人說溝通,有的人說好的職業(yè)素養(yǎng),有的人說是追求精益求精。其實(shí)這些都對(duì),那么什么是工程師文化呢?
參考文章:如何打造高效團(tuán)隊(duì)?
在理解這個(gè)問題之前,我們先看看時(shí)代的變遷,以及行業(yè)的發(fā)展。在過去的200多年間,人類經(jīng)歷了三次工業(yè)革命,如今正邁向第四次工業(yè)革命。
第一次工業(yè)革命,我們有了蒸汽機(jī),開創(chuàng)了以機(jī)器代替手工勞動(dòng)的時(shí)代;第二次工業(yè)革命,福特把流水線做出來了,有了流水線之后,人類正式進(jìn)入了工業(yè)社會(huì)。中國在第三次工業(yè)革命(信息技術(shù)革命)中的表現(xiàn)是非常突出的。舉個(gè)金融科技的例子,現(xiàn)在大家出門都不帶現(xiàn)金。如果錢包被偷了沒關(guān)系,手機(jī)被偷了就很麻煩。
前幾次工業(yè)革命的意義在于極大地提高了生產(chǎn)力水平,從而改變了文化,經(jīng)濟(jì)與生活。第四次工業(yè)革命則提供了無限可能:全新的思維方式;全新的生產(chǎn)力、生產(chǎn)方式;全新的生產(chǎn)者和全新的知識(shí)獲取途徑。數(shù)字化將會(huì)是這個(gè)時(shí)代的重要特征之一。
我們?cè)賮砜纯葱袠I(yè)的發(fā)展。
這個(gè)世界上有三種商業(yè)公司:
銷售驅(qū)動(dòng)型的公司。這類公司以運(yùn)營和營銷見長。技術(shù)對(duì)于他們來說,更多的是為了支持大規(guī)模的營銷活動(dòng),以及成本上的控制。
產(chǎn)品驅(qū)動(dòng)型的公司。這類公司以創(chuàng)造能提升用戶生活體驗(yàn)的產(chǎn)品見長。技術(shù)對(duì)于他們來說,除了支持大規(guī)模的在線用戶之外,他們會(huì)更多地去尋找那些為了增強(qiáng)用戶體驗(yàn),提高整個(gè)業(yè)務(wù)流程效率的技術(shù)創(chuàng)新。
技術(shù)驅(qū)動(dòng)型的公司。這類公司希望通過強(qiáng)大的工程技術(shù)來創(chuàng)造有顛覆性的東西,用各種自動(dòng)化的技術(shù)取代體力勞動(dòng)。比如:近代的蒸汽機(jī)技術(shù)取代了大量的人工,數(shù)字技術(shù)讓線下走向了線上。
這三種公司都需要強(qiáng)大的技術(shù)支撐。我們今天的生活相當(dāng)?shù)匾蕾嚦绦騿T,沒有程序員,我們恐怕都不知道如何生活了。
所以時(shí)至今日,每個(gè)從事軟件行業(yè)的技術(shù)人員都應(yīng)該感到幸運(yùn)。我們不但選對(duì)了行業(yè),也生活在了正確的時(shí)代,可以感受到前所未有的刺激和變化。所以,我們只需要思考一個(gè)問題:我是否在正確的地方用正確的方式做事?在這個(gè)背景下,我們?cè)賮砝斫夤こ處熚幕?#xff0c;也許可以快速達(dá)成共識(shí):工程師文化不是一個(gè)問題,而是一個(gè)常識(shí)。
簡(jiǎn)單說來,我把工程師文化歸納為兩個(gè)方面:“效率” 和 “價(jià)值”。
效率:建設(shè)團(tuán)隊(duì)空間,提升團(tuán)隊(duì)效率
Martin Fowler在他的博客(Team Room)中介紹了對(duì)敏捷開發(fā)團(tuán)隊(duì)所應(yīng)采用的“團(tuán)隊(duì)空間”的觀點(diǎn)。在物理上,我們通過可視化的設(shè)備、Always On這樣的工具、以及大量的白板為高效協(xié)作提供支持。設(shè)備、工具的推廣和使用,是“術(shù)”的層面。
除此之外,團(tuán)隊(duì)契約的建立也很重要,比如PIPELINE的提交紀(jì)律。
利用團(tuán)隊(duì)空間,鼓勵(lì)團(tuán)隊(duì)更多地學(xué)習(xí)和分享也是提升效率行之有效的方式。下面舉兩個(gè)具體的例子:
Session墻:團(tuán)隊(duì)初期,要求團(tuán)隊(duì)成員頻繁地做session,在團(tuán)隊(duì)內(nèi)部逐步形成學(xué)習(xí)和分享的氛圍。一段時(shí)間后,不僅有人愿意分享,而且有人主動(dòng)喊出想要知道某方面的知識(shí)。于是為了將知識(shí)分享的供需可視化,可以建立一個(gè)session墻,分成兩部分,一邊由團(tuán)隊(duì)成員寫出來想要了解的技術(shù)知識(shí),相當(dāng)于是session的需求方;另一邊寫著根據(jù)需求而安排的session,相當(dāng)于是session的提供方,這樣清楚明了,便于跟蹤。在項(xiàng)目不同階段,session的內(nèi)容也會(huì)有差別:比如早期的session主要是關(guān)于項(xiàng)目中用到的技術(shù),目的是為了快速學(xué)習(xí)和掌握必要的技術(shù)以便順利進(jìn)行開發(fā)。
成熟的學(xué)習(xí)型團(tuán)隊(duì)還會(huì)通過“有意注入錯(cuò)誤的方式”來有意識(shí)的進(jìn)行組織學(xué)習(xí)。比如奈飛會(huì)注入“數(shù)據(jù)庫不可用或者云環(huán)境不穩(wěn)定等錯(cuò)誤”到生產(chǎn)環(huán)境, 讓團(tuán)隊(duì)從錯(cuò)誤中學(xué)習(xí)。
技術(shù)能力雷達(dá)墻:可以利用“技術(shù)能力雷達(dá)墻”來標(biāo)明項(xiàng)目相關(guān)的各種技術(shù),評(píng)價(jià)當(dāng)前的團(tuán)隊(duì)技術(shù)能力狀態(tài),并且設(shè)定每個(gè)里程碑的能力成長目標(biāo),到了一定階段再來評(píng)價(jià)團(tuán)隊(duì)技術(shù)能力是否達(dá)到了目標(biāo)。
參考閱讀:《團(tuán)隊(duì)空間:敏捷團(tuán)隊(duì)的辦公室設(shè)計(jì)》
建立團(tuán)隊(duì)契約,利用Session墻和技術(shù)能力雷達(dá)墻來促進(jìn)學(xué)習(xí)和分享,這是“法”的層面。
工程師天生是追求效率的。有人認(rèn)為程序員花大量的時(shí)間做自動(dòng)化的工具,還不如人肉的效率高。比如,寫自動(dòng)化的腳本花6個(gè)小時(shí),而重復(fù)做這件事200次只需3個(gè)小時(shí)。有這樣想法的人根本不理解軟件工程。因?yàn)橐环矫?#xff0c;這個(gè)工具可以共享重用,更多的人得以從中受益:這次我花6小時(shí)開發(fā)這個(gè)工具,下次只用1小時(shí)修改后就可以用在別的地方,這是著眼于未來而不是眼下的成本。
更為重要的是,這是一種提升效率的文化,它會(huì)鼓勵(lì)和激發(fā)更多類似的事情發(fā)生。如果因?yàn)橐晃怀绦騿T花大量的時(shí)間開發(fā)自動(dòng)化的工具,而認(rèn)為這個(gè)程序員沒有效率,對(duì)之批評(píng)甚至懲罰,那么我們就扼殺了提升效率的文化。塑造提升效率的工程師文化,這是“道”的層面。
價(jià)值:關(guān)注研發(fā)效能,保持技術(shù)精進(jìn)
研發(fā)效能的本質(zhì)是持續(xù)的價(jià)值流。在軟件開發(fā)中,價(jià)值流的直接體現(xiàn)是從想法和假設(shè)到軟件功能上線并產(chǎn)生客戶價(jià)值的過程。
從左到右的流水線這一理念來自于制造業(yè),為了讓流水線盡可能快,生產(chǎn)周期可預(yù)測(cè),制造企業(yè)通常會(huì)聚焦在如何讓流水線更平滑,因此一些顯而易見的手法經(jīng)常被使用:比如減少在制品(WIP);盡可能早地發(fā)現(xiàn)次品,從而阻止對(duì)下游生產(chǎn)步驟的影響。很多理念和實(shí)踐在軟件行業(yè)也是通用的,然而一個(gè)巨大的區(qū)別是:制造業(yè)流水線是物理可見的,軟件開發(fā)活動(dòng)則要抽象得多。軟件開發(fā)活動(dòng)本質(zhì)上是復(fù)雜的系統(tǒng)工程,復(fù)雜系統(tǒng)中的事務(wù)都是相互交織在一起的,帶來的問題是一個(gè)異常發(fā)生后很難界定其影響范圍并快速分析根因。
人類應(yīng)對(duì)復(fù)雜系統(tǒng)最有效的手段是探索和反饋,因此,從左到右流水線的每一步反饋就尤為重要:也就是說,我們不僅需要從左到右的流水線,還需要在這個(gè)流水線上構(gòu)建從右到左的反饋,而每個(gè)環(huán)節(jié)的指標(biāo)收集是從右到左反饋的基礎(chǔ)。
管理學(xué)之父德魯克曾經(jīng)說過:“如果你無法度量它,就無法改進(jìn)它。” 4 Key Metrics是行業(yè)內(nèi)接受度很高的度量能效的指標(biāo):通過這樣的度量指標(biāo),使得從左到右流水線的每一步都能得到評(píng)價(jià)和預(yù)測(cè)。
部署頻率
對(duì)于您正研發(fā)的主要應(yīng)用程序或服務(wù), 您部署代碼的頻率如何?
交付前置時(shí)間
對(duì)于您正研發(fā)的主要應(yīng)用程序或服務(wù), 您的交付前置時(shí)間如何(即從代碼提交到代碼成功在生產(chǎn)環(huán)境中運(yùn)行需要多長時(shí)間)?
平均恢復(fù)時(shí)間
對(duì)于您正研發(fā)的主要應(yīng)用程序或服務(wù), 在發(fā)生線上事故后(例如,計(jì)劃外宕機(jī)、服務(wù)受損)通常需要多長時(shí)間才能恢復(fù)服務(wù)?
變更失敗率
對(duì)于您正研發(fā)的主要應(yīng)用程序或服務(wù), 多大比例的變更會(huì)導(dǎo)致服務(wù)降級(jí)或變更后需要采取補(bǔ)救措施(例如,導(dǎo)致服務(wù)受損、服務(wù)中斷、需要部署修補(bǔ)程序、需要回滾變更)?
在DevOps橫空出世之前,開發(fā)團(tuán)隊(duì)和運(yùn)維團(tuán)隊(duì)是對(duì)立的,其KPI也是對(duì)立的,這點(diǎn)在《鳳凰項(xiàng)目》中有很多生動(dòng)的故事。對(duì)開發(fā)團(tuán)隊(duì)來說,快是其KPI;對(duì)運(yùn)維團(tuán)隊(duì)來說,穩(wěn)是其KPI。快和穩(wěn)看起來是對(duì)立的,比如運(yùn)維團(tuán)隊(duì)為了服務(wù)穩(wěn)定,希望發(fā)布的頻次盡可能低。因此4 Key Metrics給我們的第一個(gè)啟發(fā)是:打破研發(fā)和運(yùn)維的“墻”,快和穩(wěn)得以通盤考慮。
第二個(gè)啟發(fā):4 Key Metrics能夠讓團(tuán)隊(duì)的技術(shù)治理更有方向性,如果某項(xiàng)技術(shù)治理對(duì)于快和穩(wěn)沒有幫助,那么說明團(tuán)隊(duì)投入的工作量沒有給客戶帶來價(jià)值。這樣的技術(shù)治理很有可能就是自嗨。
關(guān)注度量指標(biāo)的變化,分析其變化的原因。通過持續(xù)不斷地設(shè)置更高的目標(biāo),以此來牽引團(tuán)隊(duì)研發(fā)效能的提升。這是4 Key Metrics給我們的第三個(gè)啟發(fā)。
寫在后面:刻意練習(xí)
《一萬小時(shí)天才理論》一書中針對(duì)“刻意練習(xí)”講到了三個(gè)觀點(diǎn):精深、激情、伯樂。第一,要想在某一方面有所成績(jī),需要有精深的練習(xí)。這里說的不是普通的練習(xí),而是有效率的刻意練習(xí);第二,有對(duì)這件事情持之以恒的激情,無論外界如何變化,激情一直都在;第三,要有賞識(shí)我們的教練給予指導(dǎo),給予及時(shí)、精準(zhǔn)的反饋,這樣可以讓練習(xí)更加高效。個(gè)人認(rèn)為,無論是提升團(tuán)隊(duì)效率的“道、法、術(shù)”,還是以“4 Key Metrics”為綱的效能度量,唯有堅(jiān)持刻意練習(xí),方能持續(xù)產(chǎn)生價(jià)值。
中生代技術(shù)社區(qū)提供內(nèi)推服務(wù),對(duì)應(yīng)以上大廠,直接對(duì)接到用人部門,高效快捷
有需求請(qǐng)?zhí)砑尤汉匣锶?strong>大白的微信
申請(qǐng)備注(姓名+公司+技術(shù)方向)才能通過哦!
?
中臺(tái)是個(gè)筐,啥都往里裝?
?
?)
?
一個(gè)思維習(xí)慣,讓你成為架構(gòu)師
?
? ?END ? ?? #接力技術(shù),鏈接價(jià)值#轉(zhuǎn)發(fā)朋友圈,是對(duì)社區(qū)最大的支持。
總結(jié)
以上是生活随笔為你收集整理的技术团队的工程师文化:效率与价值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu-4045 Machine sch
- 下一篇: codeforces 483B Frie