OpenStacker提升社區(qū)貢獻(xiàn)指數(shù)的8條秘笈
在OpenStack社區(qū)中,中級貢獻(xiàn)者介于巖石與堅(jiān)硬的地面之間,他們既不是什么都不懂的菜鳥,也不是因精湛的技能給其他人留下深刻印象的高手。但他們無疑是OpenStack社區(qū)不可或缺的中間力量,中級貢獻(xiàn)者如何提升有效提升自己的貢獻(xiàn)指數(shù),并且向著成為社區(qū)頂尖高手的目標(biāo)不斷邁進(jìn)呢?兩位來自惠普的中級貢獻(xiàn)者代表Scott D’Angelo和Andrea Rosa為我們帶來了一些寶貴的實(shí)戰(zhàn)經(jīng)驗(yàn)。
Scott D’Angelo和Andrea Rosa能夠深刻感受到那些“中級”OpenStacker的苦惱。這兩名惠普工程師已經(jīng)不再是簡單的bug fixer了,他們現(xiàn)在能夠?qū)?fù)雜功能所涉及的東西,以及哪些東西可以被帶來到OpenStack中展開不定期評估。
自O(shè)penStack Folsom版本推出以來就一直從事公有云業(yè)務(wù)的高級軟件工程師 D’Angelo 說:“我們的雇主會問,‘嗨,我們想要這個功能,但是這些東西太復(fù)雜了。’在這種情況下,你不得不開始制定藍(lán)圖和規(guī)范,并且向OpenStack社區(qū)進(jìn)行反饋。你不得不搞明白這些怎么才能工作得足夠好,甚至需要知道這個功能是否正在被添加。你不得不開始使用一些影響力讓他們關(guān)注你的補(bǔ)丁。我們能夠感覺到在新人和關(guān)于提供補(bǔ)丁的文檔之間存在著隔閡。”
D’Angelo居住在美國科羅拉多,Rosa居住在英國,但是兩人卻相隔萬里共同合作編寫一個補(bǔ)丁。為了讓Nova擁有一個新的功能,通過合作編寫補(bǔ)丁,兩人對如何展開合作積累了豐富的經(jīng)驗(yàn)。通過總結(jié)PTL(項(xiàng)目團(tuán)隊(duì)主管)、Core Reviewer(核心評估人員)和同事們正在尋求什么和討厭什么,他們將一些事情推向了新的高度。
而以下便是D’Angelo和Rosa在參與社區(qū)開發(fā)的過程中總結(jié)出的8條寶貴經(jīng)驗(yàn)。
1. 知道自己要去向何方
與Rosa和D’Angelo溝通的人表示,他們最討厭的是人們不知道這些補(bǔ)丁的歷史。一名Core Reviewer曾經(jīng)因此被激怒,在他將某個東西標(biāo)記為“不要這么做,你必須移除這個參數(shù)”之后,在隨后的補(bǔ)丁集中,這一參數(shù)又重新回來,并得到了其他人的批準(zhǔn),且與代碼進(jìn)行了合并。
D’Angelo說:“通過了解補(bǔ)丁的歷史,你可以知道這些東西為什么會通過這種方式解決,你也可以避免同樣的錯誤。這雖然很乏味,但是在我們的調(diào)查中,這是一個反復(fù)重復(fù)出現(xiàn)的事情。”他表示,我們需要確定哪些工作需要通過IRC與PTL進(jìn)行溝通。“如果你發(fā)現(xiàn)了項(xiàng)目中一些被忽視的痛點(diǎn),那么你將會得到鼓勵、歡迎和幫助。”
2. 學(xué)習(xí)在擁塞的車流中行駛
D’Angelo說:“OpenStack是一個龐大的社區(qū)。這有點(diǎn)像交通阻塞一樣。大家都非常樂于助人,也愿意給予別人鼓勵,但是大家又都非常忙碌。為了把事情做好,你必須盡可能地提高效率,因?yàn)槊總€人的日程都安排得非常滿。有些事情可以加快你的速度,但是有些事情會導(dǎo)致你的速度放緩。”
3. 通過提交信息和單元測試避開不良評估
D’Angelo說:“主動思考你將會遇到的所有問題,避開已知的扣分情況,或是會導(dǎo)致問題的情況。”他稱,自己有時遇到的最大障礙是在單元測試和提交信息上沒有花上足夠的時間就匆忙地提交了代碼。“由于沒有考慮周全,導(dǎo)致整個程序會被打回來,并被扣分。”他說。
這個情況被反復(fù)地證明,由于沒有做好補(bǔ)丁功能的解釋工作,糟糕的提交信息只會讓你迅速出局。Rosa稱,不要期望Reviewer會打開漏洞說明書或是介紹,然后完整地閱讀它們。Reviewer需要得到的關(guān)于補(bǔ)丁來龍去脈的所有相關(guān)信息必須被寫入提交信息中。而解決這一問題的最簡單方法就是使用相關(guān)的指南。
D’Angelo承認(rèn):“在提交補(bǔ)丁時,提交信息是我最后才編寫的東西。由于沒有在代碼中的提交信息上下功夫,因此會出現(xiàn)一些脫節(jié)。目前我已經(jīng)知道不能再這么做了。”
關(guān)注提交信息的規(guī)則會為我們減少許多麻煩。是讓它們含有72個字符,或者是冒著被扣一分的風(fēng)險(xiǎn)?D’Angelo說:“要減少這些麻煩,至少要知道規(guī)則和提前考慮到在你提交補(bǔ)丁后會有人立即看到它們,并對其進(jìn)行標(biāo)記。”
4. 成功通過單元測試
D’Angelo說:“沒有單元測試,你會立即被-1分。它們是我們應(yīng)該提前規(guī)劃的事情之一。提前寫測試,因?yàn)槟氵t早都要寫。”他還指出,如果先前沒有通過Tox和Pep8,那么測試或補(bǔ)丁將無法通過Jenkins。“我沒有統(tǒng)計(jì)過自己看明白了多少提交評估的補(bǔ)丁,但是對于那些不合格的補(bǔ)丁,大家會關(guān)注它們失敗的原因。”他說。
5. 避開交通擁堵時間
D’Angelo說:“另一個令人討厭的事情是,有人會強(qiáng)迫或是糾纏Reviewer,讓他們對自己的東西進(jìn)行評估。在Cinder中,我看到了許多這樣的事情。我們?yōu)檫@一存儲陣列批準(zhǔn)了70多個驅(qū)動。一直會有新人加入進(jìn)來,因?yàn)樗麄兊墓鞠M屢粋€驅(qū)動加入到Cinder中。而這些驅(qū)動動不動就包含2000或3000行代碼,這需要很多人花時間進(jìn)行評估。”
那么有什么訣竅嗎?訣竅就是不要等到到了第二個里程碑版本時才開始讓人對你的補(bǔ)丁進(jìn)行評估。不要等到在IRC中開始提問,以及不要等到開始加入項(xiàng)目才開始評估。
從Diablo版本開始成為“中級成員”的Rosa對于版本周期也有著相同的見解。“你會向自己的老板承諾許多東西,但是請記住社區(qū)的時間安排與你公司的時間安排有著很大的出入。你需要設(shè)定一個期望值,否則你將會像之前的人一樣站在老板面前說‘對不起,我們需要等待下一個周期,時間可能是三個月。’請意識到這一點(diǎn)。”
6.如何應(yīng)對“交通罰單”?
“如果你被否決了,那么不要灰心。請做好申辯的準(zhǔn)備。在你提交補(bǔ)丁之時,請記住扣一分并不意味著世界末日。他們不一定是對的,去找Core Reviewer而不是找普通Reviewer進(jìn)行申辯。”Rosa說。
向他們清楚地解釋補(bǔ)丁的功能,嘗試著展示它們對項(xiàng)目的提升或是對重大漏洞的彌補(bǔ)情況,或許你的情況會得到反轉(zhuǎn)。不抱成見,態(tài)度謙虛地提出你的關(guān)注點(diǎn)。“我曾經(jīng)看到一名Core Reviewer將意見由-1修改為了+2的情況。”
7.想改變結(jié)果?Review, Review, Review !
D’Angelo說:“你想獲得Review,那么你需要精心準(zhǔn)備你的材料,你需要介紹自己的參與情況和學(xué)習(xí)情況。”
D’Angelo和Rosa建議不要干涉Reviewer的工作,避免人為地讓自己的Stackalytics數(shù)值被扣分。要讓社區(qū)知道自己,包括在IRC中積極表現(xiàn),這一點(diǎn)也很關(guān)鍵。
“Core Reviewer會進(jìn)行大量的Review工作。他們會看你的綜述,他們會知道你是否進(jìn)行了出色的總結(jié),你的扣分是否是因?yàn)榇a中的錯誤。他們還會知道你被四處扣分的原因是否是因?yàn)槟阄母迳系腻e誤。我不認(rèn)為你真地能夠糊弄到任何人。”
8. 不要為小事?lián)?/strong>
D’Angelo稱,中級貢獻(xiàn)者必須要記住他們應(yīng)該嘗試著樹立起向更好方向發(fā)展的文化導(dǎo)向。“大家不需要因?yàn)閯e人評估、挑剔和指出文稿上的錯誤而感到擔(dān)心。作為Reviewer,我可以保證我們沒有這么做。我們在Cinder中做的事情是鼓勵大家不要因?yàn)槲母邋e誤或是一些不影響代碼的事情做出-1的評分。也就是說,‘如果上傳了另一個,那么可以進(jìn)行補(bǔ)救。’”令人高興的是,那些對這些問題吹毛求疵的人會受到指責(zé)。他說:“目前這一策略已經(jīng)開始發(fā)揮作用了。”
在東京OpenStack Summit上,D’Angelo和Rosa與大家共同分享了參與社區(qū)貢獻(xiàn)的心得。您可以在OpenStack基金會的YouTube頻道上看到這個41分鐘的完整對話視頻。
編者注:本文編譯自superuser.openstack.org,作者為Nicole Martinelli,編譯者Frank Chan。
原文鏈接:https://www.ustack.com/news/how-to-take-your-openstack-contributions-to-the-next-level/