|
流程,通俗來(lái)講,就是許多人,在做一系列的事情時(shí),怎樣相互協(xié)調(diào),安排好這一系列事情的先后順序,有什么事先的約定,需要達(dá)到怎樣的預(yù)期目標(biāo)。
在UED里,前端同學(xué)需要處理的需求比較多,早些時(shí)候,前端這里的開(kāi)發(fā)流程還是比較模糊的,UED以外的同學(xué)也不清楚這邊的工作具體是怎樣進(jìn)行的,所以難免會(huì)有需求插隊(duì)的情況發(fā)生,打亂了大家的計(jì)劃,因此今年Q3的時(shí)候,在與SCM團(tuán)隊(duì)同學(xué)的共同努力下,形成了一個(gè)前端的ASSETS發(fā)布流程。
這個(gè)流程主要針對(duì)ASSETS發(fā)布的需求做了一些約定,制定了相關(guān)的幾個(gè)時(shí)間點(diǎn),包括審核需求、提交代碼、daily測(cè)試、預(yù)發(fā)測(cè)試、正式發(fā)布到線上確認(rèn)的時(shí)間。
ASSETS流程簡(jiǎn)述
需求審核
在提需求之前,需求方一般都會(huì)先找PM或者相應(yīng)產(chǎn)品線的前端咨詢一下,如果可行的話就會(huì)在周四之前將需求提到平臺(tái)上,到了周四的時(shí)候,前端會(huì)結(jié)合自身的工作情況,將平臺(tái)上的需求接收并納入自己的日程中,預(yù)估完成時(shí)間、發(fā)布時(shí)間以及相關(guān)的發(fā)布簡(jiǎn)述。
編碼開(kāi)發(fā)
周四需求評(píng)估完以后,就會(huì)按計(jì)劃開(kāi)始處理需求,將涉及ASSETS發(fā)布的需求優(yōu)先處理,不涉及ASSETS的放在靠后的時(shí)間處理,一般這段時(shí)間是從周四到下一周的周二。SCM會(huì)在每周四開(kāi)一個(gè)新的ASSETS分枝供前端在下一周開(kāi)發(fā)使用。
提交代碼,合并到daily測(cè)試以及預(yù)發(fā)測(cè)試
如果有涉及到與后臺(tái)開(kāi)發(fā)相關(guān)的需求,前端的同學(xué)會(huì)在周一就把代碼提交,這一天會(huì)有一次合并代碼,方便后臺(tái)開(kāi)發(fā)來(lái)測(cè)試。其他的同學(xué)一般最晚會(huì)在周二下班之前把代碼提交,在周二,會(huì)有多次合并代碼到daily的操作,每次操作完后,SCM的同學(xué)會(huì)在前端的群里通知到大家,方便大家測(cè)試。
周三早上,SCM的同學(xué)會(huì)將代碼發(fā)布到預(yù)發(fā)環(huán)境,此時(shí)就可以在HOST中綁定IP,換用線上的地址來(lái)測(cè)試。
正式發(fā)布
周四上午,SCM的同學(xué)確認(rèn)后,將沒(méi)有問(wèn)題的代碼發(fā)布上線。
流程的作用
在團(tuán)隊(duì)不斷成長(zhǎng)的過(guò)程中,處理的需求數(shù)量也在增長(zhǎng),需要考慮到開(kāi)發(fā)的效率、產(chǎn)品的質(zhì)量以及團(tuán)隊(duì)協(xié)作間的配合等因素,這個(gè)流程能為我們解決很多相關(guān)的問(wèn)題:
督促需求方做好相關(guān)的規(guī)劃
有些時(shí)候,一些需求的細(xì)節(jié)還沒(méi)完全確定,但需求方總希望能將他想到的各種細(xì)節(jié)都實(shí)現(xiàn)出來(lái),然后再挑選其中一種做為他的方案,所以需求的變更會(huì)有些頻繁,然而這樣的成本有些高,一切應(yīng)該在計(jì)劃后再去實(shí)現(xiàn),而非反其道而行。現(xiàn)在需求方會(huì)在提需求之前,會(huì)花時(shí)間地去考慮他們的需求,將盡可能多的情況都想清楚,做好必要的溝通工作,權(quán)衡各種利弊之后,再給出一個(gè)比較成形的方案。
保證需求安排的有序性
在一個(gè)大的團(tuán)隊(duì)中,不同部門(mén)的同學(xué)在一起合作,因?yàn)闇贤耙恍┨厥馇闆r,效率或多或少會(huì)受到一些影響,良好的規(guī)劃能有助于提高開(kāi)發(fā)的效率。
通過(guò)每周的需求審核,安排好下一周的日程,由于需求的優(yōu)先級(jí)和先后順序都已排定,工作的條理性會(huì)更加清晰,需求插隊(duì)的現(xiàn)象也有明顯減少。當(dāng)然我們也有緊急流程,但是它僅限于處理線上bug以及一些經(jīng)過(guò)多方確認(rèn)的緊急需求,有其自己的適用范圍。
統(tǒng)一測(cè)試,歸避風(fēng)險(xiǎn)
之前的日常處理中,可能會(huì)遇到這樣的情況:甲、乙兩個(gè)同學(xué)分別需要處理兩個(gè)日常需求,他們的需要改動(dòng)到的代碼會(huì)有重合的部分,如果他們并不知道這個(gè)情況,那么在他們本地的單獨(dú)測(cè)試中,一切都是OK的,然而當(dāng)發(fā)布到線上去時(shí),發(fā)現(xiàn)出了bug或者一方的改動(dòng)沒(méi)有同步到線上,查原因后發(fā)現(xiàn)是提交的代碼相互覆蓋了。
現(xiàn)在要處理的需求數(shù)量越來(lái)越多,為了避免上述情況,新流程實(shí)行以后,大家會(huì)統(tǒng)一來(lái)做多次測(cè)試,這樣就更容易發(fā)現(xiàn)bug,可以大大降低協(xié)作開(kāi)發(fā)而產(chǎn)生的風(fēng)險(xiǎn)。
流程本身就是一把雙刃劍,有利有弊。一方面,它使我們的需求變得有序,使前端能夠在處理一個(gè)需求時(shí),不會(huì)頻繁被其他插隊(duì)的需求打斷。并且因?yàn)榘l(fā)布有時(shí)間點(diǎn)的設(shè)定,所以測(cè)試工作會(huì)更加嚴(yán)謹(jǐn),這有助于提升代碼的質(zhì)量。因此對(duì)于我們來(lái)講,流程帶來(lái)的好處是顯而易見(jiàn)的;但另一方面,它額外地增加了做事的成本,涉及ASSETS發(fā)布的需求,就像趕某班火車一樣,錯(cuò)過(guò)了就只能等下一班,所以也給需求方帶來(lái)了許多不便,有待改進(jìn),不過(guò)這可以通過(guò)長(zhǎng)期的合作而慢慢被弱化,雙方達(dá)成了一種默契以后,情況會(huì)好很多,現(xiàn)在這樣的情況已經(jīng)比較少了。
盡管在流程使用之初,會(huì)帶來(lái)諸多不便,但是從長(zhǎng)遠(yuǎn)來(lái)看,流程有助于使一個(gè)團(tuán)隊(duì)形成統(tǒng)一的工作方式和態(tài)度,將繁雜的事情化整為零,有條理地去處理它們。因?yàn)榱鞒蹋恳粋€(gè)人的責(zé)任感都會(huì)增強(qiáng),對(duì)風(fēng)險(xiǎn)考慮得會(huì)更多一些,這一切都會(huì)使產(chǎn)品有質(zhì)的提升。而我們所有與這個(gè)流程有關(guān)的人,都會(huì)不斷地去推動(dòng)流程改進(jìn)的工作,這其中還有很多需要思考的:
- 如何將我們的流程推廣到整個(gè)公司,讓大家都能了解我們的流程,這樣在未來(lái)需要合作時(shí),需求方需要注意些什么,相關(guān)的時(shí)間點(diǎn)以及開(kāi)周時(shí)間的預(yù)估等,他們就會(huì)心中有數(shù)。
- ASSETS的發(fā)布還不夠靈活,如果把和應(yīng)用相關(guān)的ASSETS獨(dú)立劃分出去與應(yīng)用一起發(fā)布,這樣剩下的需要發(fā)布的東西就會(huì)少很多。或者是按產(chǎn)品線來(lái)設(shè)計(jì)發(fā)布流程,根據(jù)實(shí)際情況來(lái)發(fā)布。
- 如何來(lái)簡(jiǎn)化流程上的一些細(xì)節(jié),在保持效率的同時(shí),降低實(shí)際操作中的成本。
- 每周二是一個(gè)特別的時(shí)間點(diǎn),為了趕在這最后時(shí)間提交代碼,之前的開(kāi)發(fā)會(huì)有些緊張,這種情況也有待改善,比如未來(lái)可以一周有兩次發(fā)布。
流程不是生來(lái)就完美,但從現(xiàn)在它帶給我們的好處來(lái)看,遵循并使用它,對(duì)我們的開(kāi)發(fā)會(huì)起到很大的幫助作用。我們對(duì)待它的態(tài)度,決定了它對(duì)我們會(huì)有怎樣的反饋,如果覺(jué)得它不合適了,就發(fā)出自己的聲音,想辦法去改進(jìn)它,不要只是被動(dòng)地等待。
———————————-
部分名詞解釋:
daily環(huán)境:UED的一個(gè)日常測(cè)試環(huán)境
預(yù)發(fā)環(huán)境:外網(wǎng)IP,需綁定訪問(wèn),供內(nèi)部使用測(cè)試
ASSETS:腳本和樣式存放的目錄
SCM:軟件管理配置
PM:項(xiàng)目經(jīng)理
it知識(shí)庫(kù):關(guān)注前端開(kāi)發(fā)流程,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。