成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一文告訴你為什么代碼提交要關聯需求和任務信息

開發
本文從代碼提交關聯需求任務的功能說起,探討了其意義、功能擴展以及對研發效能提升帶來的收益。

記得原來有一次聽到一個開發同學抱怨說為啥每次Commit都必須要填寫commit message呢?他覺得有些浪費時間,因此想出了各種辦法來應對,比如輸入一個句點或復制粘貼上個commit message等。這種一時偷懶的做法,卻會給其他合作開發的伙伴帶來很多煩惱,這些不知所云的commmit message不僅不能很好代表每次代碼提交的用途,還會成為垃圾信息給團隊帶來干擾。

git commit -m .

不過現在很多開發團隊已經通過約定代碼提交規范來約束提交信息的規范化,比如必須包含類型(新功能、修復缺陷或者增加測試等)和主題(提交代碼的簡短描述)信息。

git commit -m “feature:用戶查詢接口開發”

可以看到在代碼提交信息中增加目的描述,是為了使代碼的作用通過文字顯式地展示出來。比如一看提交信息就知道這段代碼是為了開發某個新的需求功能,而不用去通過逐行瀏覽代碼才能了解其含義。更進一步的做法是,直接使代碼的提交與需求、任務或者缺陷等建立關聯。拿GitHub舉例,需求和缺陷都可以通過issue來進行管理,而只每次在代碼提交信息中輸入issue的ID就可以了,如下:

git commit -m #10 issueid”

還可以通過在commit信息中輸入close等指令來實現issue狀態的修改,如下:

git commit -m “close #10 issueid”

直接通過git命令就實現了issue的關閉:

為什么代碼提交要關聯需求和任務信息

看到這里,我想你可能要問:我為什么要每次提交代碼的時候,要費勁地先去查詢下IssueID呢,這樣做能帶來什么收益呢?下面我就來給你捋一捋:

1. 研發過程資產的可度量

代碼是一種很重要的研發過程資產,而其原生狀態又是一種非結構化的數據信息,無法很直觀的與管理者所關注的項目或者需求關聯起來。如果沒有好的數據管理和度量機制,管理者角度就只能通過會議和溝通等手段從一線工程師那里獲取一些主觀的描述。如需求和任務的工作量大小、細化到需求和任務維度的代碼質量和風險等數據,這些數據在做項目復盤、資源評估、質量和風險評估等環節都是非常重要的參考依據。

通過提交信息中關聯需求和任務ID,就可以得到以下的數據:

以上是基礎數據的匯總計算,還可以引入需求和任務維度的代碼復雜度、代碼當量和測試覆蓋率等數據。

2. 精細化的代碼質量和風險管控

質量和風險的管控都是需要投入成本的,而通過實現代碼和需求及任務的關聯,可以設計更細粒度的質量和風險管控策略,在早期的質量預防、中期的風險發現和后期的問題復盤都可以很大程度上減少成本投入。目前大家所說的精準化測試的方法就是基于此策略,設計測試策略時可以依據需求來劃定代碼變更范圍,再針對一定范圍內的代碼變更來設計高覆蓋率的測試策略,從而避免由于全量執行測試用例帶來的高成本。

另外還可以把代碼掃描、單元測試和代碼評審等質量卡點與需求和任務的流轉狀態相關聯,做到需求和任務維度的質量內建和測試左移。

3. 開發者視角的收益

如果你是一位一線工程師,看完以上兩點收益,肯定會覺得這都是管理的訴求,那從工程師的視角來看又會有哪些收益呢?

(1) 減少為了研發效能度量而做一些額外工作

研發效能度量,需要度量需求的在各個階段的停留時長,比如開發時長,比較傳統的做法是需要研發同學開始寫代碼的時候,在研發協同平臺上更新下需求和任務的狀態,寫完了提交測試后再去更新狀態。這些重復性的工作,還是需要占用不少時間的,那么通過需求任務和代碼提交建立關聯,就可以通過代碼提交等事件來自動化觸發需求和任務狀態的流轉,這樣還能自動把對應的開始時間和結束時間都自動記錄下來,從而便于高效和準確地開展研發效能度量。

(2) 從代碼為主的技術視角逐步擴展到關注需求價值的全局視角

由于管理者和業務方更關注需求價值和項目交付進度,而一線研發工程師往往更加關注技術細節,這樣就容易造成管理者和業務視角獲得的信息和工程師視角之間的割裂,比如作為研發leader為了緊急的項目或者需求焦慮不已,而作為一線工程師又各自在沉浸在自己的代碼世界里不明所以。那么通過代碼提交和需求任務建立關聯,開發工程師關注代碼本身的同時,還可以通過匯總代碼倉庫級或者版本所實現的需求價值和完成的開發任務,從而能夠更加關注業務價值,通過技術視角和業務視角的結合,助推技術職業生涯的更好發展。

代碼關聯需求和任務的功能擴展

文章的前面只是介紹了從命令行提交代碼的時候,如何與需求和任務信息建立關聯。而要帶來更多的收益,只有這個功能就不能完全滿足了。完整的功能一般通過與協作工具的配合來完成,如Jira就實現需求/任務和開發分支的關聯,還可以通過配置工作流來實現在線創建分支的同時觸發需求/任務的狀態變化(進入開發狀態)。下圖為需求/任務卡片詳情頁面的開發信息的展示,可以看到關聯了一個開發分支,可以通過點擊分支到代碼庫的分支詳情頁面。

“功能拓展建議:在需求/任務已經關聯一個代碼分支的前提下,可以通過規則設定實現該分支下的所有代碼提交都自動關聯,這樣就不需要每個Commit信息里都填寫需求和任務ID信息了。”

目前很多協同平臺的做法是,除了實現除了提交信息和分支與需求/任務的關聯,還可以關聯代碼庫的合并請求。另外還可以實現需求/任務與測試過程資產的關聯。

具體的實現方式有兩種:一種是在協同平臺的需求/任務卡片上通過手動操作來選擇需要關聯的信息,第二種是通過代碼倉庫和測試管理系統這樣的三方工具平臺主動上報關聯的需求和任務信息。

結語

代碼提交關聯需求和任務的功能雖然不大,確實一個良好習慣的養成,在此基礎上逐步實現更加豐富的代碼過程資產與需求和任務的關聯,從而為效能度量、質量和風險管控等提供更多的便利。研發效能提升包含兩個層面,一個是單點任務的效能提升,如環境部署和測試等;另外一個就是不同角色成員之間的協同效能提升,而代碼信息與需求任務信息的關聯,就是通過過程數據的可視化使關注需求和任務的角色成員與關注代碼的工程師實現更好的協同。

責任編輯:趙寧寧 來源: DevOps
相關推薦

2022-08-26 12:46:04

NQA網絡質量分析

2021-04-09 13:23:27

比特幣貨幣數據

2019-03-14 15:59:44

前端開發編程

2024-01-30 09:58:00

IP屬地在線服務

2024-03-25 08:18:31

2019-03-19 15:28:30

Linux 系統 數據

2023-02-07 07:32:12

Istio微服務治理

2024-10-28 00:00:03

IP屬地地址

2022-04-25 15:23:18

分布式系統故障

2021-01-22 08:13:58

Java日期時間API

2018-04-26 04:20:42

數據科學簡歷編程

2022-01-18 08:04:37

數據分析 Python

2021-04-25 21:18:27

技術開發爬蟲

2018-03-15 21:56:59

程序員技能Java

2024-05-29 09:50:24

2019-08-16 08:30:22

數據庫PostgreSQL Oracle

2020-03-23 20:40:25

比特幣數字貨幣區塊鏈

2015-11-18 10:08:21

努力程序員

2022-09-23 15:07:32

東數西算數據中心IT

2018-03-01 18:15:10

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级欧美一级日韩片 | 中文字幕一区在线观看视频 | 久久中文字幕一区 | 中文字幕一区二区三区乱码在线 | 久久国| 久久久久一区二区三区 | 最新中文字幕在线 | 国产免费a视频 | 6996成人影院网在线播放 | av片免费观看 | 久久久久亚洲精品 | 97超碰人人草 | 欧美激情一区二区三级高清视频 | 午夜影院操 | 伊人超碰在线 | 日韩av成人在线 | 一级欧美一级日韩片 | 日韩免费一区二区 | 99久久精品一区二区毛片吞精 | 91.色| 成人做爰9片免费看网站 | 国产精品污污视频 | 精品一区二区观看 | 精品无码三级在线观看视频 | 国产精品久久久久久一区二区三区 | 欧美色综合 | 精品久久一区二区 | 久久久久久久久久久久久久av | 女人一区 | 久久免费高清 | 国产精品视频网址 | 亚洲91 | 亚洲一区二区三区免费观看 | 亚洲欧美一区二区三区视频 | 欧美日韩在线一区二区 | 91欧美激情一区二区三区成人 | 国产成人高清 | 日本精品一区二区三区在线观看 | 天天弄 | 日本精品视频 | 免费精品久久久久久中文字幕 |