網頁制作poluoluo文章簡介:流程,通俗來講,就是許多人,在做一系列的事情時,怎樣相互協調,安排好這一系列事情的先後順序,有什麼事先的約定,需要達到怎樣的預期目標。
流程,通俗來講,就是許多人,在做一系列的事情時,怎樣相互協調,安排好這一系列事情的先後順序,有什麼事先的約定,需要達到怎樣的預期目標。
在UED裡,前端同學需要處理的需求比較多,早些時候,前端這裡的開發流程還是比較模糊的,UED以外的同學也不清楚這邊的工作具體是怎樣進行的,所以難免會有需求插隊的情況發生,打亂了大家的計劃,因此今年Q3的時候,在與SCM團隊同學的共同努力下,形成了一個前端的ASSETS發布流程。
這個流程主要針對ASSETS發布的需求做了一些約定,制定了相關的幾個時間點,包括審核需求、提交代碼、daily測試、預發測試、正式發布到線上確認的時間。
需求審核
在提需求之前,需求方一般都會先找PM或者相應產品線的前端咨詢一下,如果可行的話就會在周四之前將需求提到平台上,到了周四的時候,前端會結合自身的工作情況,將平台上的需求接收並納入自己的日程中,預估完成時間、發布時間以及相關的發布簡述。
編碼開發
周四需求評估完以後,就會按計劃開始處理需求,將涉及ASSETS發布的需求優先處理,不涉及ASSETS的放在靠後的時間處理,一般這段時間是從周四到下一周的周二。SCM會在每周四開一個新的ASSETS分枝供前端在下一周開發使用。
提交代碼,合並到daily測試以及預發測試
如果有涉及到與後台開發相關的需求,前端的同學會在周一就把代碼提交,這一天會有一次合並代碼,方便後台開發來測試。其他的同學一般最晚會在周二下班之前把代碼提交,在周二,會有多次合並代碼到daily的操作,每次操作完後,SCM的同學會在前端的群裡通知到大家,方便大家測試。
周三早上,SCM的同學會將代碼發布到預發環境,此時就可以在HOST中綁定IP,換用線上的地址來測試。
正式發布
周四上午,SCM的同學確認後,將沒有問題的代碼發布上線。
在團隊不斷成長的過程中,處理的需求數量也在增長,需要考慮到開發的效率、產品的質量以及團隊協作間的配合等因素,這個流程能為我們解決很多相關的問題:
督促需求方做好相關的規劃
有些時候,一些需求的細節還沒完全確定,但需求方總希望能將他想到的各種細節都實現出來,然後再挑選其中一種做為他的方案,所以需求的變更會有些頻繁,然而這樣的成本有些高,一切應該在計劃後再去實現,而非反其道而行。現在需求方會在提需求之前,會花時間地去考慮他們的需求,將盡可能多的情況都想清楚,做好必要的溝通工作,權衡各種利弊之後,再給出一個比較成形的方案。
保證需求安排的有序性
在一個大的團隊中,不同部門的同學在一起合作,因為溝通及一些特殊情況,效率或多或少會受到一些影響,良好的規劃能有助於提高開發的效率。
通過每周的需求審核,安排好下一周的日程,由於需求的優先級和先後順序都已排定,工作的條理性會更加清晰,需求插隊的現象也有明顯減少。當然我們也有緊急流程,但是它僅限於處理線上bug以及一些經過多方確認的緊急需求,有其自己的適用范圍。
統一測試,歸避風險
之前的日常處理中,可能會遇到這樣的情況:甲、乙兩個同學分別需要處理兩個日常需求,他們的需要改動到的代碼會有重合的部分,如果他們並不知道這個情況,那麼在他們本地的單獨測試中,一切都是OK的,然而當發布到線上去時,發現出了bug或者一方的改動沒有同步到線上,查原因後發現是提交的代碼相互覆蓋了。
現在要處理的需求數量越來越多,為了避免上述情況,新流程實行以後,大家會統一來做多次測試,這樣就更容易發現bug,可以大大降低協作開發而產生的風險。
流程本身就是一把雙刃劍,有利有弊。一方面,它使我們的需求變得有序,使前端能夠在處理一個需求時,不會頻繁被其他插隊的需求打斷。並且因為發布有時間點的設定,所以測試工作會更加嚴謹,這有助於提升代碼的質量。因此對於我們來講,流程帶來的好處是顯而易見的;但另一方面,它額外地增加了做事的成本,涉及ASSETS發布的需求,就像趕某班火車一樣,錯過了就只能等下一班,所以也給需求方帶來了許多不便,有待改進,不過這可以通過長期的合作而慢慢被弱化,雙方達成了一種默契以後,情況會好很多,現在這樣的情況已經比較少了。
盡管在流程使用之初,會帶來諸多不便,但是從長遠來看,流程有助於使一個團隊形成統一的工作方式和態度,將繁雜的事情化整為零,有條理地去處理它們。因為流程,每一個人的責任感都會增強,對風險考慮得會更多一些,這一切都會使產品有質的提升。而我們所有與這個流程有關的人,都會不斷地去推動流程改進的工作,這其中還有很多需要思考的:
流程不是生來就完美,但從現在它帶給我們的好處來看,遵循並使用它,對我們的開發會起到很大的幫助作用。我們對待它的態度,決定了它對我們會有怎樣的反饋,如果覺得它不合適了,就發出自己的聲音,想辦法去改進它,不要只是被動地等待。
———————————-
部分名詞解釋:
daily環境:UED的一個日常測試環境
預發環境:外網IP,需綁定訪問,供內部使用測試
ASSETS:腳本和樣式存放的目錄
SCM:軟件管理配置
PM:項目經理