成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何在團(tuán)隊(duì)建設(shè)工程師文化?阿里資深技術(shù)專家這么做

企業(yè)動(dòng)態(tài)
根據(jù)以上一個(gè)假設(shè)和三個(gè)事實(shí),我們得到結(jié)論:一個(gè)部門要有美女,但不能多!極端的工程師文化產(chǎn)生少數(shù)幾個(gè)極端成功的公司以及大多數(shù)死得很慘的公司。

[[234511]]

前言

人人都在說(shuō)工程師文化,90%的同學(xué)們向往工程師文化,然而95%的同學(xué)們覺得自己的部門沒有工程師文化。但關(guān)于工程師文化,事實(shí)告訴我們兩件事:

  • 事實(shí)1是:我們定義工程師文化的標(biāo)準(zhǔn)不一樣。這就跟美女一樣,每個(gè)人心中的美女都不一樣, 但我們都愛美女。
  • 事實(shí)2是:工程師文化還是可以客觀感覺出來(lái)的。如果你真是個(gè)美女,大家還是都會(huì)認(rèn)為你漂亮的。標(biāo)準(zhǔn)再不一樣,敢說(shuō)奧黛麗赫本丑的人還是需要莫大并且不要臉的勇氣。

基于這個(gè)不恰當(dāng)?shù)谋扔饕约笆聦?shí)1得出:90%同學(xué)們都愛美女;基于這個(gè)不恰當(dāng)?shù)谋扔饕约笆聦?shí)2得出:95%同學(xué)們部門真的都沒有美女!

基于以上事實(shí)我們做一個(gè)假設(shè):如果同學(xué)們部門里都是美女,大家一定都很開心!

基于這個(gè)假設(shè)得到事實(shí)3:都是美女的部門業(yè)績(jī)肯定完蛋了(這個(gè)推導(dǎo)過(guò)程只可意會(huì)不可言傳)。

根據(jù)以上一個(gè)假設(shè)和三個(gè)事實(shí),我們得到結(jié)論:一個(gè)部門要有美女,但不能多!極端的工程師文化產(chǎn)生少數(shù)幾個(gè)極端成功的公司以及大多數(shù)死得很慘的公司。

工程師文化 vs KPI文化

  • 工程師文化是由內(nèi)而外的引導(dǎo)和自然發(fā)生, KPI文化是由外而內(nèi)的信仰和強(qiáng)行注入。
  • 工程師文化著眼未來(lái), KPI文化活在當(dāng)下。
  • 工程師文化痛恨KPI,我不愛的我不做,我愛的我瘋狂。 KPI文化唯KPI說(shuō)話,愛不愛都要像戰(zhàn)士一樣完成。

[[234512]]

淺談工程師文化

工程師文化的前提條件

信任:leader和產(chǎn)品對(duì)工程師絕對(duì)的信任是工程師文化的最基本條件。如果他說(shuō)要用一個(gè)更優(yōu)雅的方法解決一個(gè)問題,但要花更多的時(shí)間,請(qǐng)你選擇相信他。好的工程師非常懶惰,他這么做一定是為未來(lái)的工作提高效率。

卓越的技術(shù)***存在:領(lǐng)導(dǎo)如果對(duì)技術(shù)沒有信仰,只把技術(shù)當(dāng)成工具,就很難說(shuō)這個(gè)團(tuán)隊(duì)會(huì)有工程師文化。說(shuō)白了不是每個(gè)不懂技術(shù)的領(lǐng)導(dǎo)都懂得欣賞優(yōu)雅代碼產(chǎn)生的美和對(duì)未來(lái)產(chǎn)生的深遠(yuǎn)影響。

技術(shù)列為KPI:在我參加晉升面試的時(shí)候,50%以上的技術(shù)人員講的都是產(chǎn)品(what),而不是技術(shù)(how),并且他們都晉升了.....這源于業(yè)務(wù)BU總是把業(yè)務(wù)當(dāng)成KPI的唯一衡量手段:技術(shù)好不好有什么關(guān)系?今年不出事,明年我已晉升。如果沒有技術(shù)KPI,技術(shù)就會(huì)總被放在次優(yōu)先級(jí)。

工程師文化的特征

小團(tuán)隊(duì):7-12人的團(tuán)隊(duì)是比較適合的團(tuán)隊(duì)大小。有人用pizza團(tuán)隊(duì)來(lái)形容一個(gè)團(tuán)隊(duì)的大小,就是一兩張pizza可以喂飽這支團(tuán)隊(duì)。facebook和google經(jīng)常有2-3個(gè)人的團(tuán)隊(duì),小團(tuán)隊(duì)有如下特征(中文為個(gè)人即興翻譯,可以選擇忽略):

  • Move Fast and Break Things(不破不立);
  • Huge Impact with Small Teams(以少為多,精準(zhǔn)打擊);
  •  Be Bold and Innovative(勇敢追求卓越);

技術(shù)創(chuàng)新:團(tuán)隊(duì)必須堅(jiān)信技術(shù)可以為業(yè)務(wù)帶來(lái)不同于現(xiàn)在的可能性,現(xiàn)在沒看見不代表它不存在。技術(shù)挑戰(zhàn)產(chǎn)品是因?yàn)橐苍S你不知道還有更好的技術(shù)和架構(gòu)可以更簡(jiǎn)單更有效地完成一個(gè)業(yè)務(wù)任務(wù)。團(tuán)隊(duì)激勵(lì)不單純以業(yè)績(jī)?yōu)橹鞯募夹g(shù)的創(chuàng)新,比如:Google每個(gè)工程師都有20%的時(shí)間可以用于研究自己喜歡的技術(shù),而不是跟Google相關(guān)的業(yè)務(wù)。

技術(shù)決策權(quán)大:尊重技術(shù)決策的前提就是信任技術(shù)決策,而不是簡(jiǎn)單粗暴地說(shuō):“為什么完不成?隨便叫一個(gè)程序員就可以完成。”工程師未必在所有產(chǎn)品特性的定義上有決策的能力,但在優(yōu)先級(jí)和排期上是可以從技術(shù)角度給出決策。所有的業(yè)務(wù)deadline倒排都在一定程度上逼迫技術(shù)做出妥協(xié),并且這些妥協(xié)慢慢變成合法理由:我的代碼不好的原因是業(yè)務(wù)壓力太大。Note:工程師們不要為自己邋遢的代碼找理由,代碼對(duì)于一個(gè)軟件工程師就是尊嚴(yán)。

技術(shù)數(shù)據(jù)可視化:可視化技術(shù)相關(guān)數(shù)據(jù)包含圈復(fù)雜度、測(cè)試覆蓋率、重復(fù)率等等,對(duì)數(shù)據(jù)好的工程師給予掌聲。但是,好數(shù)據(jù)給予的是掌聲而不是獎(jiǎng)金,所有數(shù)據(jù)都可以被造出來(lái),這是個(gè)充分但不必要條件——好的代碼數(shù)據(jù)肯定好,數(shù)據(jù)好的代碼不一定是好代碼。

分享多會(huì)議少:寧愿少開會(huì)掰扯這個(gè)應(yīng)該誰(shuí)做,這個(gè)P1應(yīng)該誰(shuí)來(lái)背,也要多聽技術(shù)高手講一個(gè)技術(shù)細(xì)節(jié),大家都應(yīng)該沉下心來(lái)沉淀一下自己的專業(yè)知識(shí)。

[[234513]]

敏捷

敏捷——一個(gè)飽受非議,飽受爭(zhēng)議的名詞。今天我提它不是想為它正名,其實(shí)是想說(shuō)大個(gè)子女孩的故事:我有個(gè)大個(gè)子女孩同學(xué),身材非常好,178cm,人到中年堅(jiān)持鍛煉,身材高挑,穿啥都是給啥做廣告。她告訴我,她外婆小時(shí)候走路只敢走在路坎的下面,鄰居朋友走在路坎上面,這樣可以顯得她外婆矮點(diǎn)。那時(shí),高個(gè)的女孩是被嘲笑的:150cm的姑娘指著她外婆的背影說(shuō):“看這傻大個(gè)!”可今天我想對(duì)我同學(xué)說(shuō):“你女兒***也像你這么高,我兒子去看看能不能追上,優(yōu)化一下我家族的身高基因。”

很多人一聽到敏捷就說(shuō):“還說(shuō)敏捷,早過(guò)時(shí)了!” 雖然今年流行網(wǎng)紅臉,不流行高個(gè)姑娘,可她就是比你高。那些聽到敏捷就嗤之以鼻的人,你們?cè)趫?jiān)持什么?至少堅(jiān)持敏捷實(shí)踐的人心中有信仰,這是他們作為工程師的信仰,他們還在堅(jiān)持為減少一個(gè)if else修煉每一行代碼,堅(jiān)持為一個(gè)完整的自動(dòng)化測(cè)試不停思考,堅(jiān)持為了兩個(gè)模塊的解耦絞盡腦汁。

即便如此,今天不談敏捷,就像今天不談”身高“,我們談”身材修長(zhǎng)“。基于這個(gè)前提,敏捷還是不敏捷就不重要了:是不是敏捷,是不是所謂的工程師文化都不重要,重要的是找到適合團(tuán)隊(duì)的開發(fā)方式,讓團(tuán)隊(duì)開發(fā)效率更好,系統(tǒng)更健壯,特性更易擴(kuò)展。

盒馬基礎(chǔ)技術(shù)團(tuán)隊(duì)實(shí)踐

Note:本文,我僅對(duì)自己的個(gè)別兩個(gè)小分隊(duì)進(jìn)行描述。

設(shè)計(jì)

一個(gè)軟件技術(shù)團(tuán)隊(duì)的最終產(chǎn)出物是可交付的軟件本身,所以不管什么花里胡哨的管理方式都沒有一份安全和穩(wěn)定運(yùn)行的代碼來(lái)的給力。好的代碼應(yīng)該要有設(shè)計(jì)的痕跡:簡(jiǎn)單粗暴地還原業(yè)務(wù)或多或少給未來(lái)埋坑。在我們團(tuán)隊(duì),大部分微觀代碼設(shè)計(jì)源自我們自己定制的一套領(lǐng)域模型設(shè)計(jì)套路。套路里要有每個(gè)工程師對(duì)每個(gè)特性的精心設(shè)計(jì),同學(xué)們的設(shè)計(jì)原則是:可以設(shè)計(jì)得不***,但不能不思考設(shè)計(jì);即使已經(jīng)上線了的系統(tǒng),只要有問題,代碼永遠(yuǎn)可以修改,但前提是有完善的自動(dòng)化測(cè)試保護(hù)。

自動(dòng)化測(cè)試

不要低估了自動(dòng)化測(cè)試可以給軟件質(zhì)量帶來(lái)的深遠(yuǎn)影響:不管是當(dāng)下質(zhì)量,還是未來(lái)加特性,或是單純的重構(gòu)代碼。

不要低估了編寫自動(dòng)化測(cè)試的難度:檢驗(yàn)代碼好壞的一條標(biāo)準(zhǔn)就是——是否很容易對(duì)這塊代碼添加有效的自動(dòng)化測(cè)試。

測(cè)試的一些原則:

  • 代碼提交前通過(guò)所有測(cè)試:測(cè)試就是驗(yàn)收標(biāo)準(zhǔn),是需求驗(yàn)收的代碼轉(zhuǎn)換。原則上一條驗(yàn)收標(biāo)準(zhǔn)可以對(duì)應(yīng)至少一個(gè)斷言(assert),沒有斷言的測(cè)試被視為無(wú)效測(cè)試;
  • 用given/when/then語(yǔ)態(tài)寫單元測(cè)試;
  • 要讓測(cè)試代碼更容易寫必須分離代碼邏輯與數(shù)據(jù)庫(kù)讀寫;
  • 合理使用mock/stub技術(shù),測(cè)你要測(cè)的,讓你的測(cè)試更有效;
  • 異步測(cè)試不要用sleep;
  • ***的debug手段就是測(cè)試;
  • 單元測(cè)試耗時(shí)最短,多用單元測(cè)試覆蓋代碼邏輯;
  • 越是集成測(cè)試數(shù)量應(yīng)該越少,因?yàn)榇鷥r(jià)很大,性價(jià)比不高;
  • 靜態(tài)代碼質(zhì)量分析應(yīng)該伴隨每次持續(xù)集成。

持續(xù)集成/持續(xù)發(fā)布

持續(xù)集成其實(shí)什么都不是,它只是隨時(shí)把大家的代碼編譯、打包、部署、測(cè)試,不停地跑起來(lái),持續(xù)地告訴你代碼質(zhì)量是否滿足你的測(cè)試要求:

  • 測(cè)試應(yīng)按測(cè)試運(yùn)行時(shí)間長(zhǎng)短分級(jí)編排在不同級(jí)別的持續(xù)集成中,時(shí)間短的測(cè)試應(yīng)該跑得更頻繁,比如:代碼的每一次push,時(shí)間長(zhǎng)一點(diǎn)的跑的頻度低點(diǎn),像是每隔3個(gè)小時(shí),每天晚上11點(diǎn)開始......
  •  一次編譯多次部署,在持續(xù)發(fā)布的環(huán)節(jié)中,只有***次編譯打包,后面的環(huán)境都是只部署不編譯打包。
  • check in and pray vs check in and play: 每次提交代碼要有足夠的測(cè)試,并交給持續(xù)集成反饋結(jié)果,代碼提交越頻繁,你越容易play,代碼提交時(shí)間間隔越長(zhǎng),你越容易pray。
  • 持續(xù)集成的反饋要立刻修復(fù),別讓持續(xù)集成dashboard紅著。
  • 持續(xù)發(fā)布是你的***目標(biāo)
  • 開發(fā)分支要少,不然你的持續(xù)集成容易沒了方向,失去意義。

 

分支策略

我們采用的分支策略一定跟大部分同學(xué)們的分支策略背道而馳。

  1. 大庫(kù):大家都在一個(gè)庫(kù)上工作,理由不在這闡述了
  2. 分支:分支盡量的少,分支越多持續(xù)集成越?jīng)]意義,merge成本越高,團(tuán)隊(duì)分支最多也不能超過(guò)下圖

結(jié)對(duì)編程

兩個(gè)人在一起寫代碼在阿里這么繁忙的企業(yè)應(yīng)該是件讓人匪夷所思的事情,但我堅(jiān)持讓團(tuán)隊(duì)踐行這個(gè)實(shí)踐:

  • 一個(gè)主機(jī),兩個(gè)鍵盤,一個(gè)顯示器
  • 新老員工pair是新員工get實(shí)踐的最快手段
  • pair讓員工有機(jī)會(huì)互相學(xué)習(xí)對(duì)方良好的編程方式,形成團(tuán)隊(duì)獨(dú)有的代碼風(fēng)格,而不是個(gè)人代碼風(fēng)格
  • 時(shí)不時(shí)的pair不會(huì)降低開發(fā)效率,會(huì)提高學(xué)習(xí)熱情

[[234515]]

code review

很難說(shuō)還有哪個(gè)實(shí)踐比這個(gè)實(shí)踐對(duì)代碼質(zhì)量更有意義,不過(guò),大家codereview的方式不盡相同,我們的方式是:

  • 團(tuán)隊(duì)code review,總共***1個(gè)小時(shí)左右
  • 每天code review
  • 每個(gè)人的代碼都要review,每個(gè)人都要講解
  • 發(fā)現(xiàn)的問題當(dāng)天就改掉
  • 看官們不要質(zhì)疑,因?yàn)檫@件事情真的每天在發(fā)生

standup站會(huì)

站會(huì)是團(tuán)隊(duì)溝通的重要手段,阿里其實(shí)大部分團(tuán)隊(duì)都有站會(huì)習(xí)慣。

  • 不要超過(guò)15分鐘
  • 一次只有一個(gè)人說(shuō)話
  • 只說(shuō)三件事情:昨天干了什么,今天要干什么,需要什么幫助

technical session

不是每個(gè)session都跟業(yè)務(wù)相關(guān),純技術(shù)的session是同學(xué)們提高技術(shù)的良好手段。

retrosepctive回顧會(huì)議

總結(jié)一下過(guò)去一個(gè)迭代做的好的和不好的,做出自己下一個(gè)迭代的改進(jìn)計(jì)劃。如果你覺得沒有用,仔細(xì)看看圖片里記錄的點(diǎn)點(diǎn)滴滴:

IPM迭代計(jì)劃

IPM計(jì)劃會(huì)議很有必要,團(tuán)隊(duì)可以借這個(gè)機(jī)會(huì)了解接下來(lái)兩周要做什么,大概誰(shuí)負(fù)責(zé)什么,大概什么時(shí)候可以做完?

拜神

再好的方法也需要關(guān)公守護(hù),廢話不說(shuō),把三兄弟都放上。

[[234517]]

IDE

永遠(yuǎn)不能忽略IDE對(duì)編程效率帶來(lái)的影響。IDE是工程師每天面對(duì)的工作環(huán)境,任何跟工程效率相關(guān)的思想都應(yīng)該以IDE PLUGIN的方式讓工程師們每天可用,每天受益。Intellij作為JAVA神器存在有其必要的原因是因?yàn)樗涯軒偷焦こ處煹拿恳粋€(gè)操作都簡(jiǎn)化和方便到***。團(tuán)隊(duì)使用IDE的技能是否出神入化一定程度反映了這個(gè)團(tuán)隊(duì)的編程效率是否高。這是結(jié)對(duì)編程的另一個(gè)重要好處:一個(gè)團(tuán)隊(duì)使用同一套快捷鍵寫代碼,而這套快捷鍵是整個(gè)團(tuán)隊(duì)每個(gè)成員快捷鍵使用心得的合集。

【本文為51CTO專欄作者“阿里巴巴官方技術(shù)”原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來(lái)源: 51CTO專欄
相關(guān)推薦

2018-10-10 16:15:01

團(tuán)隊(duì)研發(fā)效率

2018-11-02 15:53:57

交付阿里工程師團(tuán)隊(duì)

2015-10-21 09:12:17

中國(guó)谷歌工程師

2020-03-23 10:42:56

團(tuán)隊(duì)協(xié)作阿里

2018-08-02 16:00:26

程序員專家自我學(xué)習(xí)

2018-04-02 10:00:27

技術(shù)快速成長(zhǎng)

2019-06-17 08:57:13

優(yōu)秀工程師技術(shù)程序員

2019-07-10 09:19:26

技術(shù)開發(fā)編程

2018-07-23 16:05:44

大數(shù)據(jù)進(jìn)化技術(shù)

2013-03-29 09:54:05

創(chuàng)業(yè)創(chuàng)業(yè)者

2020-04-01 11:01:57

工程師技術(shù)裁員

2020-11-02 08:24:34

Leader技術(shù)團(tuán)隊(duì)

2014-09-05 09:35:36

協(xié)議

2018-06-12 07:19:31

技術(shù)數(shù)據(jù)程序員

2016-09-21 10:10:50

2015-01-12 10:01:35

2019-02-25 14:33:50

技術(shù)研發(fā)指標(biāo)

2012-03-31 16:57:52

工程師創(chuàng)業(yè)團(tuán)隊(duì)

2021-02-01 07:40:55

架構(gòu)師阿里技專家

2012-12-25 09:43:08

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产丝袜一区二区三区免费视频 | 人成精品| 国产一级成人 | 国产日韩欧美一区 | 日韩精品一区二区久久 | 国产视频久久久 | 日韩靠逼 | 国产成人精品一区二区三区视频 | 欧美日韩视频在线 | 高清色 | 女人牲交视频一级毛片 | 久久tv在线观看 | 黄色视频a级毛片 | 日本精品一区二区三区在线观看视频 | 午夜影院在线观看视频 | 少妇一级淫片aaaaaaaaa | 国产午夜精品一区二区三区 | 一区二区免费视频 | av高清毛片 | 久久精品国产精品青草 | 成人国产在线视频 | 播放一级毛片 | 久久精品 | 国产高清免费 | 九九九视频 | 精品国产成人 | 久久99视频这里只有精品 | 成人激情视频在线观看 | 国产精品久久久久久网站 | 欧美成人精品欧美一级 | 日韩视频国产 | 久久伊人影院 | 成人综合伊人 | 91精品国产一区二区三区 | 男女深夜网站 | 2018国产精品 | 天天弄 | 免费网站国产 | 亚洲人成网亚洲欧洲无码 | 完全免费在线视频 | 性在线|