CODING:小白都會用的代碼協作工具
經常來我站的朋友有很多從事軟件開發、UI/UX 設計、產品設計等職業的,大家在各自的領域都會用到垂直領域內的協同工具,這里就不再贅述有哪些代表者,但這些工具也好,服務也好,就好像一座座孤島,彼此之間的溝通協作并不能成為一個整體,對于出具規模的研發團隊來說,如果提高團隊的工作效率,協同溝通效率顯然已成為當今互聯網產品大生產場景下的剛性需求。
痛點
早年間我曾在一家專為企業級路由器系統研發公司擔任測試工程師,當時還沒有像 CODING 這樣覆蓋“產品→開發→測試”三大環節的研發管理系統,三個部門的人各自為營,溝通方式基本靠開會,研發組寫完的代碼灌入設備后給測試組,測試用例完全靠人肉文檔,一遍又一遍,反饋給研發后,那邊又不重視我們的報告,漏洞百出得不到有效記錄,又被產品經理每天雪花般的新需求搞的想砍人;同時產品、研發、測試三方就需求設計、功能實現、產品可用性的探討,甚至可以說是爭執,已經嚴重占用了大部分的生產時間,最后還是得加班完成各自的任務。我一直在想,當時要是有 CODING 這樣的平臺就好了,嚴謹而科學的版本控制、代碼質量管理、清晰的任務需求管理都可以幫助大家省去許多重復勞動和時間成本、健康成本。
CODING 是什么?
使用 CODING 除了能克服上述問題,還能幫助一個研發團隊從分支管理到代碼評審,從任務分派到里程碑制定,再到文件系統和 Wiki 沉淀等諸多方面,諸多細節去幫助開發者更加高效地協作。
CODING 企業版(后面簡稱 CODING)是面向開發團隊的WEB軟件研發管理系統,整個團隊成員可以在里面進行代碼管理(重中之重)、需求管理、持續集成、測試管理、缺陷管理、任務分配等功能,適用于傳統模式和敏捷模式的軟件研發項目和產品運營,是一款真正意義上的 DevOps 全流程應用。下面我們就來一一介紹 CODING 包含的各項核心功能,在正文展開前,大家先看一下 CODING 后臺管理界面左側的工具欄,一共 14 個項目,其中最核心的服務放在了中間,這么多的功能當然是面向不同工種的同事了,下面來看看這個 list:
各項目針對的使用人群及聯系
項目 leader 負責在迭代、工作管理、任務管理等模塊負責整個項目的進度、數據分析等工作;
產品經理負責在 Wiki、需求管理、文件系統中提供明確的產品需求;
研發工程師負責在代碼倉庫生產、維護代碼,進行持續集成、環境部署等工作;
測試工程師負責在缺陷管理、測試管理中修 bug;
設計師負責在文件里上傳設計文件。
當然,這里面有些項目不是專屬于哪類人群,有些是大家共同進行協作溝通的地方,比如任務看板、Wiki、文件系統、工作管理等等。
產品經理在 CODING 里能做什么
我們知道,作為產品經理,他的日常任務就是搜集用戶需求、編寫產品功能書,設計產品原型,并在用戶反饋、UI/UX 設計、功能研發三個陣地來回穿梭,協調,最后給用戶呈現一個令其滿意的產品。CODING 里涉及到產品經理用的較多的應該是 Wiki、需求管理、任務看板
CODING 支持將其他平臺的項目直接導入其中使用
Wiki
不得不說 CODING 的 WEB 界面做的簡潔而不失高效,Wiki 好似 Typora 的 Markdown 編輯界面,事實上這里也是支持 MD 語言編寫文檔的,產品經理可以在這里為工程師、設計師提供盡可能完善的產品交互原型、產品解析文檔等等。
需求管理
需求管理客觀講不光適用于產品經理,工程師的技術需求、其他部門人員的運營需求都可以提出來,然后由 leader 將此需求分配給對應負責人,這里就涉及到創建工作或關聯工作了。
看下,舉例,產品經理根據用戶使用情況記錄并新建了一個需求,這個需求默認狀態是“未激活”,而 leader 看到需求后邀請研發、設計的同事進來關注,經過討論溝通,認為可以執行添加此需求,則 leader 可以將需求狀態改為“已計劃”,設計側的同事接手開始干后標記為“設計中”、然后交付給研發同事,狀態標記為“研發中”,以此類推,直到需求被實現標記為“已關閉”,在這個過程中,團隊成員可以隨時看到需求實現狀態,看到活動日志以及關聯的各種附件、里程碑、任務、合并請求。
研發工程師的好伙伴:Git 代碼管理
CODING 的核心服務對象是研發工程師,關于對代碼庫的維護能力當然是 CODING 最關注的地方,Git 也是這套系統里的重中之重,代碼的瀏覽、分支管理、發布管理、版本對比、合并請求當然都不在話下。
在介紹代碼管理的幾個子功能前還是跟大家科普一下 Git 這套分布式代碼管理系統的基本原理。
傳統的代碼管理都是點對點的同步部署,也就是你和你的同事在各自的本地機器編譯完傳輸(或者也叫同步吧)到遠程服務器或者直接發給架構師/leader,然后由架構師/leader將你們的代碼揉在一起,但這個過程很容易出問題,而 Git 則是由主開發者將代碼上傳到服務器后,其他開發者可以從服務器get到完整的代碼然后根據任務開發功能后創建為一個分支版本,并從自己本地機器測試后將生成的代碼推送回服務器。在這個過程中,主開發者可以發起代碼評審、處理代碼合并請求、有效控制產品版本,各個分支版本之間的代碼沖突也可以獲得有效避免。
代碼瀏覽
代碼瀏覽是最基礎的功能模塊,包括默認分支 master 在內的所有分支版本,主開發者(leader)都可以在這里看到,當然也可以操作代碼的瀏覽、新建、上傳、下載;代碼支持在線編輯、路徑復制、按行查看等功能。
我們可以通過左上角的隱藏菜單切換到各個分支版本進行代碼預覽。
分支管理
接下來是分支管理,一個代碼倉庫建立后會自動生成一個默認分支 master,但一般情況都不會在這上面進行代碼修改,就像前文我們提到的,團隊成員會按照 leader 分解的任務去實現對應的功能模塊,而這個模塊都會有自己的分支版本,這樣各個功能在合并前都會自行演進,互不干擾。
在你的代碼完成后可以進行推送到服務器上,發起合并請求
合并請求
Leader 可以在接到你的合并請求時,可以在對應界面添加代碼評審者,標簽、關注者,這些人會是架構師、測試工程師、產品經理。
同時你可以在合并請求里看到代碼的改動具體情況,代碼變動部分會用綠色背景標注。你可以關聯里程碑、任務、合并請求等,或者最底部留言輸入評論內容,比如“小李這功能做得好,這代碼不錯等等等…”
在創建合并請求時你會遇到“版本對比”,在“版本對比”界面選擇或輸入兩個不同的分支、標簽、修訂版本號進行對比,查看差異;版本對比可對代碼進行審查與評論,系統會檢測比較版本能否自動合并。
發布管理
當完成一個里程碑的所有任務開發之后,你就可以在某個節點將此時的默認分支標記為一個版本,并發布這個版本。
除了上傳代碼,你需要詳細的記錄每個版本的“更新日期”、“改動說明”、“版本對比”、“版本規劃”等內容,CODING 支持預發布版本標記。
關于持續集成
持續集成的概念誕生自 1991 年,就像我開頭提到的傳統協作方式遇到的諸多弊端,持續集成的推出就是為了解決開發團隊每天大量的重復性編譯、測試工作,提高交付效率,在枯燥的電腦前,人類創造了像 Jenkins 這樣的自動化集成系統,它可以幫助人類完成每次版本誕生前枯燥的編譯、部署、自動化測試工作,讓工程師們專注于開發
CODING項目可直接集成到騰訊云平臺上,同時支持多種運行環境
在創建持續集成時你需要“代碼更新觸發”還是“手動觸發”,選擇推送到某個指定分支時觸發,以及用常規模式or云服務器模式進行集成的執行,云服務模式就是允許用戶可以將執行環境部署到云端服務器,并且自行創建容器來執行集成的構建。
CODING 的持續集成是完全基于 Jenkins 的,兼容 Jenkinsfile 配置文件。
項目 leader 統籌規劃靠這些功能
除了工程師、產品經理會頻繁用到代碼維護、Wiki、文件系統外,項目 leader 也可以使用 CODING 里的任務系統和工作管理兩個模塊。
任務系統
在任務系統里核心當然是“里程碑”了,這個開發人員都很熟悉,CODING 支持在列表與甘特圖之間隨時切換查看里程碑,在里程碑詳情頁面你可以清晰的看到整個計劃的完成度、是否超時,每項任務的完成情況,完成進度,持續天數。
如果一個里程碑已經 reach,那么 leader 就可以選擇對應版本創建版本發布,總之一句話,在 CODING 中你會發現設計者會將各個模塊盡可能的耦合在一起,盡最大努力方便使用者提高工作效率與協調效率。
工作管理
看到工作管理這個模塊,多少有些讓人有些迷惑,不是有任務系統了嗎?怎么還有一個工作管理,我想這個模塊純粹是為 leader 們設計的吧,工作管理中的事務是獨立于項目本身的,leader 們可以在里面分配一些時效性強、需要臨時突擊解決的問題,在里面可以關聯產品經理發布的“需求”,或是關聯項目資源(里程碑、任務、合并請求)。
寫在最后
總的來說,CODING 是一個面向開發者的云端開發平臺,提供 Git/SVN 代碼托管、任務管理、在線 WebIDE、Cloud Studio、開發協作、文件管理、Wiki 管理、提供個人服務及企業服務,其中實現了 DevOps 流程全自動化,為企業提供軟件研發全流程管理工具,打通了從團隊構建、產品策劃、開發測試到部署上線的全過程。「CODING 持續集成」集成了 Jenkins 等主流企業開發流程工具。
CODING 面向 5 人(含 5 人)以下團隊提供免費試用,團隊可以享有所有功能,并且不限項目和倉庫數量,開箱即用,無需部署,而且他家還實行靈活的按人天扣費,也就是每人每天 1 元錢,涵蓋 DevOps 全部所需,比如你的團隊有 10 個人,那么每天的費用也僅為 10 元,如果是按年計費則是 3650 元,非常簡單對不對。另外 CODING 還為企業提供私有化方案,你可以將 CODING 部署在公司自己的服務器上,在保障公司隱私的同時享受更多的定制化服務。