如何使用 CODING 進行瀑布流式研發

  • 2019 年 10 月 4 日
  • 筆記

你好,歡迎使用CODING!這份最佳實踐將幫助你通過 CODING 更好地實踐瀑布流式開發流程。

什麼是瀑布流式研發

1970 年溫斯頓·羅伊斯(Winston Royce)提出了著名的「瀑布模型」,直到 80 年代早期,它一直是唯一被廣泛採用的軟體開發模型。瀑布模型要求軟體開發嚴格按照【需求→分析→設計→編碼→測試】的階段進行,每一個階段都可以定義明確的產出物和驗證準則。瀑布模型在每一個階段完成後都可以組織相關的評審和驗證。嚴格的瀑布模型每一個階段都不能重疊,需要在評審通過後才能進入下一階段,遵循自上而下、相互銜接的固定次序,如同瀑布流水,逐級下落。

瀑布模型的優點是可以保證整個軟體產品的品質,保證缺陷能夠被提前發現和解決。採用瀑布模型可以保證在整體上充分把握系統,使系統具備良好的擴展性和可維護性。

如何使用 CODING

進行瀑布流式研發管理

博弈論(Game Theory)告訴我們看起來利益最大化的策略並不能幫我們達到最好的目標,而是要根據實際情況來制定最合適的策略。同樣的,在軟體研發管理的戰略上,企業並不需要把所有的系統都換成最新、最快的,更重要的是根據業務模式的不同來匹配相應的管理模式和管理工具,讓研發和業務能同頻共振,而不是互相拖累。

不同部門的 IT 需求側重點各不相同。比如類似手機 APP 類應用,往往需要更靈敏的市場反應速度和創新能力,因此需要更有彈性的 IT 架構和快速迭代的軟體交付能力。相對而言,後台支援性部門比如 ERP、資料庫等部門,其業務重心在於保持運營穩定、風險管控以及成本控制。因此,他們的 IT 需求偏重穩定、安全,對於快速響應能力和彈性架構的要求相對較低。這也是瀑布流式研發管理經久不衰的原因。

01

/ 創建項目 /

第一步是在 CODING 中創建一個項目,之後所有的工作都在這個項目中完成。在確認好團隊成員後,就可以邀請所有人加入到項目中來。每一個項目都對應獨立的程式碼倉庫,因為很多中後台的研發項目會涉及到外部供應商的參與,獨立的程式碼倉庫可以確保數據的相對隔離,確保企業數字資產安全。

02

/ 配置許可權 /

在邀請完所有成員後,項目經理就需要為不同的角色配置相應的許可權。瀑布流研發模式的核心在於安全和可控性,CODING 許可權管理功能可以幫助項目管理員方便地根據項目成員的角色來分配相應的許可權,減少誤操作帶來的安全隱患,同時還支援自定義用戶組,增加研發管理的可控性。在項目開始的時候,由項目經理先行配置好所有成員的許可權,確保團隊更有序地進行軟體開發。

03

/ 需求文檔撰寫 /

在配置完所有許可權後,項目便正式進入研發階段。此時由項目經理開始文檔的撰寫,瀑布流式研發管理模式的特點就是各個階段都需要完備的文檔支援。

如果團隊中有產品經理的話,產品經理會通過 CODING 的需求管理功能創建一個需求池。產品經理將規划上線的功能、用戶的回饋以及市場調研的結果整理出來,通過需求管理中需求的形式統一歸納,形成需求池。同時項目經理對需求池中的需求進行進一步分析,根據團隊習慣將需求分為技術問題、設計問題和產品問題。每一條需求下都會根據需求的複雜程度創建一系列子任務。

產品經理亦可在 Wiki 中根據需求撰寫完整的產品功能文檔。 同時可以使用 CODING 的文件功能上傳分享產品的原型圖。 CODING 的文件功能和 Wiki 功能為研發團隊提拱了內置的文檔協作和團隊知識沉澱工具。

04

/ 產品研發 /

完成產品的原型設計和功能說明文檔後,項目經理開始邀請研發團隊加入項目,由研發工程師開始進行相關功能的交付開發。如果需求中涉及設計團隊,研發工程師可以直接在需求管理頁面通過關聯功能關聯相應的設計任務。

CODING 研發管理系統的程式碼倉庫支援 Git 和 SVN 兩種主流版本控制方式,方便各類研發團隊快速上手。

瀑布流式研發管理中最看重的一點就是品質。CODING 內置的 Code review 功能和持續集成模組是確保軟體研發品質的關鍵。

  • Code Review

研發工程師開發完成後通過提交 Merge Request 進行程式碼評審,通過程式碼評審後 merge 進入 master 分支,確保程式碼品質。

  • 自動化測試

可使用持續集成模組進行自動化測試,在確保軟體品質的同時大幅節省開發人員的時間。CODING 的持續集成功能對每次提交的程式碼不斷進行自動化的單元測試、程式碼檢查、編譯構建、契約測試,甚至自動部署。在 CODING 持續集成模組中可以對持續集成功能進行設定,當開發者 push 程式碼時,會自動觸發 CODING 持續集成,持續集成會自動編譯並測試該 commit。CODING 持續集成支援在任意階段觸發持續集。當開發者提交了一部分修改完成的程式碼後,總是希望可以快速、持續地得到直觀且有效的回饋,以達到我們持續快速交付的目的。這也是 CODING 持續集成功能所希望達到的目標。

CODING 的持續集成預置了大量的構建環境鏡像,例如 Java、Python、NodeJS 等等。同時還支援 Docker 鏡像構建,讓開發者可以快速上手。

當持續集成通過後,便可以把程式碼更新到 staging 環境。

05

/ 測試階段 /

更新 staging 的程式碼後,開始由測試人員進行相關測試。全面完善的測試也是確保軟體品質的關鍵。在 CODING 的測試管理模組中可以方便高效地編寫測試用例和創建測試計劃。

當開發進行到測試階段後,測試工程師便可以直接在平台上執行測試計劃,並在計劃中的每個用例里標註測試結果,如測試未通過則需記錄相應的錯誤資訊。

如果測試出現問題則會直接回饋到產品,再由產品分配開發進行修復,如此反覆直到達到可以交付的標準。

06

/ 數字資產安全 /

大部分瀑布流式研發管理會涉及企業核心的中後台數據和程式碼。這就使得數字資產安全成為重中之重。CODING 的安全簡介詳見:

https://e.coding.net/help/knowledge-base/coding-is-secure/

點擊閱讀原文 立即使用 CODING 進行 瀑布流式研發