最近發現公司的開發流程很不規範,因而整理了一下我認爲比較好的規範,有更好的方式請在下方留言,謝謝。前端
工做概述: 產品立項階段亦稱爲準備階段,該階段主要基於需求大綱經過針對性的市場調研、用戶訪談及競品分析,儘量的評估產品的核心功能,方向定位、目標用戶羣、成本投入和市場前景。在決策層評估經過的條件下,組建虛擬開發小組,協調資源,明確項目負責人及產品計劃上線時間等事項。若爲甲方需求的項目,可省略市場調研及商業價值評估的相關內容。java
描繪遠景,設定目標: 產品的遠景是什麼?計劃須要作什麼實現這個遠景?明確各個階段的產品目標,爲何設定這樣的目標?數據庫
市場調研,競品分析: 經過針對性的市場調研和充分的競品分析,測算產品市場前景和風險成本。網絡
收集需求,排優先級: 收集各業務市場部門反饋的需求意見,作典型用戶的深度訪談,組相開發設計運營人員頭腦風暴,明確產品核心功能和開發需求優先級。架構
組建團隊,定負責人: 依據產品定位和投入資源,組建合適的虛擬開發小組,指定項目負責人,團隊相互熟悉各個崗位人員。app
按期碰頭,制定計劃: 商定項目相關人員按期碰頭會,保持團隊全部人最新需求信息同步,初步制定產品各個階段完成時間節點。框架
成果: 《競品分析報告》、《產品立項說明書》、《產品BRD文檔》組件化
工做概述: 基於產品定位和運營策略,與產品各需求方進行深度的需求溝通,將抽象繁雜的需求整理分析成可落地執行的方案,召開需求評審,排定各功能點的開發優先級,規劃產品各個版本迭代的功能計劃表,設計產品原型,撰寫產品需求說明書,與設計開發團隊溝通肯定各階段的完成時間節點,明確產品實際上線時間,與市場運營團隊溝通上線運營計劃方案等。佈局
需求分析,原型設計: 與市場業務運營同事深度溝通,造成初步的需求大綱,功能列表,組織團隊全員頭腦風暴,分析需求的真僞及緊迫性,肯定需求開發優先級,制定產品功能迭代計劃表,設計產品原型初稿及頁面結構圖;性能
需求評審,肯定方案: 由產品經理牽頭召開需求評審會議,向開發團隊詳細講解產品邏輯流程和交互細節,評估技術實現的可行性。對不明確的需求作二次需求更新;
需求文檔,開發週期: 依據需求評審結果,修改設計最終版原型及交互,標註原型及撰寫產品需求說明書,管理後臺數據相關數據統計等需求,技術根據需求文檔反饋每一個階段的完成時間節點。
成果: 《產品PRD文檔》、《產品交互原型稿》(低/高保真)、《產品開發進度計劃表》
工做概述: 基於原型交互稿及產品PRD文檔設計產品頁面效果圖,與產品溝通肯定詳細的交互細節及效果。與需求業務方肯定完善效果圖設計最終版,依據開發需求進行效果圖細節標註,設計產品icon及應用市場審覈宣傳材料,配合市場運營部門設計產品運營活動頁面等。
用戶分析,設計梳理: 收集相關資料分析目標用戶的使用特徵、情感、習慣、心理、需求等,基於3W法明確使用者,使用環境及使用方式;
素材收集,肯定風格: 在深度熟悉產品總體業務流程和商業需求的基礎上,肯定頁面主輔色,制定交互方式,操做與跳轉流程、結構、佈局、信息和其餘元素;
界面設計,規範輸出: 設計產品頁面、圖標、ICON,皮膚及一些界面交互的表現。與前端開發溝通,明確切圖命名及標註規範,輸出最終設計稿。
UE測試,總體覆盤: 產品測試階段包含UE測試,負責測試頁面的還原度及交互的易用性,針對設計稿和需求文檔提出測試反饋優化意見。產品上線發佈後,全面覆盤本次設計架構和細節,總結設計經驗和優化迭代建議,並撰寫相關的分析優化報告。
成果: 《PSD源文件》、《切圖源文件》、《交互描述及標註細節規範說明》
工做概述: 分爲用戶端、服務端兩類開發。其中用戶端開發,主流有iOS和Android,依據需求文檔和設計稿,實現前端頁面的交互效果,與服務端肯定數據交換接口協議。服務端開發依據需求文檔,設計數據庫表結構,評估核心複雜功能的實現方案,撰寫開發設計概要文檔及反饋重要功能的完成時間節點。
成 果:《開發設計概要》、《接口協議文檔》、《自測經過的產品1.0版》
工做概述: 參考產品需求文檔和開發設計概要,撰寫產品測試用例,召開用例講解會,對產品全方位的進行測試,將測試不經過的內容反饋給開發,斷定bug嚴重程度和跟進修復進度,評估產品上線發佈的可行性,協助產品和業務人員撰寫產品驗收報告。
測試類型: 功能性測試、容錯性測試、性能效率測試、易用性測試、兼容性測試、壓力測試等
成果: 《測試用例》、《測試bug反饋記錄表》、《測試驗收報告》
項目完成以後,須要發項目參與的全部人員組織起來,總結項目過程當中的問題,避免之後再次發生,我的以爲這點很重要。
一、 基準庫的封裝不能馬虎,包括各類基類,utils等,前期可能作不到完美,隨着項目的開發過程當中逐漸優化,有時間應該提交到jcenter上面,採用遠程依賴的方式能夠加快編譯速度,而且能減小項目的冗餘度。
二、 ui庫必定要造成。ui庫用於存放一些封裝好的自定義view,須要更具局面的總體風格,封裝一些app內使用的組合控件,避免形成佈局臃腫。公用資源文件等和ui想關的東西。
三、 第一個版本不用考慮那麼長遠,作什麼組件化之類的東西,可是相應的功能模塊須要分開,儘可能減小耦合度,爲後面項目增大作組件化開發減小壓力。
四、 框架的選擇,例如:網絡、圖片加載、數據庫、rxjava等,勁量選擇比較新的,穩定的,靈活度高的框架,避免後面替換的麻煩。如及時通信,消息推送等後期替換很費時間的第三方框架須要進行調研慎重選擇,最好肯定之後,後期不用替換,框架不用能夠最新新,最重要的仍是穩定性。
五、 時間容許最好寫點單元測試,若是前期沒寫單元測試,一旦項目大了,後面你會更不想寫了。
六、 不要放太多的library代碼到項目中,致使最後一個項目有不少個moudle,致使編譯時間很長,勁量提取你須要的功能放到基準庫中,減小moudle的數量,若是整個moudle的功能基本都須要,能夠考慮打包成aar的方式依賴,減小編譯時間,項目的依賴邏輯必定要清晰,不能混亂。
七、 寫完項目以後,回過頭來欣賞下本身的項目,你會發現,可能有不少地方都有更好的方式實現,大部分看第三方庫的代碼比看本身寫的代碼多,多看本身寫的代碼,才能發現本身的問題所在,這點是提高自個人一個方法,我的以爲比較重要。
以上就是本身的一點見解,有更好的看法但願能在下方留言,謝謝。