引言
在日常的前端項目中,我們經(jīng)常需要對需求任務進行功能點Task分解,分解Task是為了更合理地進行開發(fā)資源分配,也是為了更準確地對項目進行評估和管理。然而如果分配不合理的話,便會帶來許許多多的問題,導致開發(fā)及管理不暢,甚至會導致項目延期或失敗。
分配不合理導致的問題
- 不好進行任務分配
- 不好對前端項目有個整體進度及風險把控
- 開發(fā)不好對具體點的實現(xiàn)聚焦
- 相關依賴遇到風險時,前端的開發(fā)也受到阻塞
- 前端項目出現(xiàn)風險時,不好進行資源調(diào)配來解決風險
我們通常使用什么方式來進行Task分解的呢?作為一個項目的前端負責人,如何進行合理的Task分解并分配給相應的開發(fā)?作為業(yè)務開發(fā)人員,我們該如何安排每天的Task?當在項目中遇到問題時如何拋出問題?
如果沒有一個合理且相對統(tǒng)一規(guī)范的Task分解,業(yè)務開發(fā)人員甚至不知道每天需要做什么,遇到問題也感覺無門,而且前端項目管理人員也不好對前端項目的整體進度及狀態(tài)有個很好地把控,這便給項目帶來了風險。
所以,我們需要盡早地建立起適合團隊在項目開發(fā)中使用的前端Task分解參考,指導著前端團隊在項目開發(fā)中進行合理且統(tǒng)一的Task分解,讓前端項目開發(fā)過程更加流暢,讓項目的風險降到最低。下面分享的是自己在前端團隊中建立的Task分解的一些實踐經(jīng)驗。
結(jié)構(gòu)+表現(xiàn)+行為
所有前端項目開發(fā),所有的界面都遵從著結(jié)構(gòu)+表現(xiàn)+行為的三大組成原則。
結(jié)構(gòu)指的是一個界面的整體骨架,從結(jié)構(gòu)中,我們能看到這個界面的所有組件元素,如果是h5項目,那么標簽便是界面的結(jié)構(gòu)組成基本單位,如果是react項目,那么等組件便是界面的結(jié)構(gòu)組成基本單位。
表現(xiàn)指的是界面結(jié)構(gòu)的具體樣式展現(xiàn),加上表現(xiàn),我們便能確定這個界面最終的靜態(tài)呈現(xiàn)是什么樣的,例如設置字體的大小顏色、設置按鈕的樣式、實現(xiàn)一個動效。
行為指的是這個界面功能動態(tài)實現(xiàn),例如列表的數(shù)據(jù)請求并渲染、按鈕點擊事件地響應處理等。
如何合理分解Task?
合理分解目的
- 有利于任務的分配,讓不同的開發(fā)人員負責各自擅長的事,優(yōu)化資源利用
- 有利于前端項目的整體進度及風險把控
- 讓開發(fā)人員在開發(fā)的時候更聚焦,不會東做一點西做一點
- 當遇到依賴不能及時提供時,可以暫時擱置,不影響其他Task的開發(fā)
- 當前端項目出現(xiàn)風險時,協(xié)調(diào)資源,分擔Task,解決項目風險
合理分解原則
不同團隊在Task分解上可能存在差異,但應統(tǒng)一保持一些通用原則。
- 以界面作為基本單位
- 遵從結(jié)構(gòu)+表現(xiàn)+行為的原則
- 保持對前端開發(fā)中的其他依賴進行解耦
分解方式
具體的分解方式是為了讓前端項目管理者及業(yè)務開發(fā)者在項目開發(fā)中對功能點分解達成一致。分解的粒度要保持適中,不能過粗也不能過細。如果太粗的話,在項目開始前,不利于項目的任務分配,在開發(fā)中,不利于觀察項目的進度和狀態(tài)。如果太細的話,則會增大項目管理者及業(yè)務開發(fā)者對Task的管理成本,反而會影響到具體的開發(fā)任務。
按照前端的特性,我是按照一個界面(由結(jié)構(gòu)+表現(xiàn)+行為組成個體)為基本單位來進行Task劃分。
1、對一個界面來說,先以界面的靜態(tài)呈現(xiàn)為一個維度來進行劃分,將結(jié)構(gòu)+表現(xiàn)的實現(xiàn)作為一個Task,如果界面有交互效果實現(xiàn),則將交互效果的實現(xiàn)作為一個Task。
2、然后以界面的行為實現(xiàn)為一個維度來進行劃分,將該界面的前端業(yè)務功能實現(xiàn)作為一個Task,將接口聯(lián)調(diào)作為一個Task,如果還有第三方依賴,例如跨平臺應用開發(fā),需要原生提供相應功能,則將第三方依賴作為一個Task。
實際案例
項目需求
實現(xiàn)豆果美食學烘焙中的精華模塊。包含三個界面,精華文章列表界面,發(fā)帖界面和文章詳情界面。
Task分解
將精華模塊按照如下方式分解后,并進行對應Task的開發(fā)評估。
精華模塊包含三個界面,分別對三個界面進行Task分解,下面對精華文章列表頁的分解進行詳細解釋。
對于精華文章列表頁,按照界面展現(xiàn)來分解,可以將精華文章整體界面結(jié)構(gòu)+表現(xiàn)實現(xiàn)作為一個Task,可以分配給擅長UI繪制的人員,評估開發(fā)時間為1人天。
將精華文章動效處理-列表滑動控制界面元素作為一個Task,讓開發(fā)人員對動效的處理更聚焦且用心,評估開發(fā)時間為0.5人天。
將文章列表頁的業(yè)務功能實現(xiàn)作為一個Task,業(yè)務功能實現(xiàn)可以分配給另外的人來做,評估開發(fā)時間為1人天。
將列表頁的接口聯(lián)調(diào)作為一個Task,當接口不支持聯(lián)調(diào)時,Task則轉(zhuǎn)化成問題,放入問題列表中進行跟蹤,評估時間為0.5人天。
將看大圖功能調(diào)用作為一個Task,假設列表頁的實現(xiàn)是通過跨平臺技術(shù)(rn、weex)來實現(xiàn),看大圖功能由原生提供,同樣,如果原生不能按時提供,同樣也作為問題放入問題列表中由前端項目管理者統(tǒng)一監(jiān)控。
結(jié)語
由上可看出,Task的劃分合理起到的作用還是很大的。既有利于資源的合理分配,又能提高項目開發(fā)中的規(guī)范流程,而且還有利于前端項目的管理。當在團隊中推行Task分解規(guī)范的時候,最重要的還是要基于自己團隊,要與團隊成員進行充分溝通和指導,一起高效地完成前端項目任務。