[技術博客]使用Github進行軟工開發管理

[技術博客]使用Github進行軟工開發管理

1、介紹

項目 內容
本做業屬於北航軟件工程課程 博客園班級博客
團隊項目博客目錄 團隊項目:知識路書
團隊博客 敏傑開發
代碼倉庫 Roadmap-Frontend
我在這門課程的目標是 得到成爲一名軟件工程師的能力
我在本次做業的目標是 總結、分享團隊使用Github進行軟工開發管理的方法

我是北航軟件工程課敏傑開發團隊的產品經理,咱們團隊開發的軟件產品爲知識路書——圖形化文獻管理大師。若是您想了解咱們開發的軟件在作什麼,請查看這篇博客,若是您想全面瞭解咱們開發的軟件,能夠在咱們的開發博客目錄查看所有的博客,或訪問咱們的代碼倉庫html

2、引言

Github是一款目前應用最廣的代碼管理、項目管理平臺,其免費、易用、人性化等特性吸引了全球衆多開發者。在軟件工程課中,咱們應該學會使用項目管理軟件來進行項目管理,本文主要介紹了Github網站項目管理的基本方法,包括倉庫的配置、工做流、項目管理、工做量統計等功能。可能有不少剛剛接觸開發的小白和我以前同樣,並無深刻地使用過Github除了代碼託管之外的其它功能,那麼在看完本文以後,您能夠嘗試探索使用Github的這些功能,您會發現,好用至極,根本停不下來~。git

3、Github開發管理

1. 倉庫配置

倉庫包含兩個特殊分支

  • dev 開發分支
    • 用於合併最新的開發代碼
  • prod 生產分支
    • 用於存儲生產代碼

咱們的工做流是:我的開發時由dev分支checkout出來一個新分支例如zwx--new-feature,開發結束後經過代碼互審合併到dev分支,完成某一整塊的功能後,將dev分支合併到prod分支,並使用github的release功能發佈一個新的版本。github

分支保護

Github提供了十分方便的分支保護功能,咱們能夠利用其實現上述的工做流配置。
工具

  • dev分支
    在倉庫的settings中選擇branch選項卡,能夠添加分支保護規則,咱們對dev分支配置規則:只能經過pull request的方式merge到dev,並設置PR須要審覈的人數。

    這樣,咱們的工做流被限定爲,新分支zwx--new-feature開發完成後,提出merge到dev分支的Pull Request(後文將詳細介紹),通過一名其它成員的複審後,合併到dev分支。
  • prod分支
    採用相似的配置方法,可是咱們要求至少2人審覈後,才能將dev分支的代碼merge到prod中。

2. 開發工做流

Issue

在需求分析、任務分解結束後,產品經理將一個大塊的功能分紅若干小的、能夠單人實現的小功能,這些小功能經過Github中的Issue功能分配給特定的開發人員。

當咱們想爲某開發人員添加一個Issue的時候,能夠用下述這種方式:網站

  • 編輯任務說明
  • 添加分配人員
  • 設置issue標籤,這裏的size是咱們用來統計工做量的
  • 設置Project和Milestone,這個將在後面介紹

    開了新的Issue之後,Github會給被分配到任務的開發人員發電子郵件,push他快去寫代碼。

Pull Request

在開發人員完成某個Issue的需求後,能夠利用Github的Pull Request功能提出代碼複審、合併分支的請求

咱們的一個Pull Request以下:code

  • 填寫實現功能的描述
  • 分配Reviewers,提醒他們審覈你的Pull Request
  • 在描述文本框中,輸入close #IssueID,能夠自動將該PR與Issue關聯,當PR被合併後,Issue自動關閉。


    做爲代碼複審的人員,經過點擊File changed標籤頁,審覈開發人員修改的代碼,對其代碼提出評論,當認爲其經過審覈後,在評論中選擇Approve,當Approve的人數達到分支保護規則的要求時,就可以合併分支了。

    在合併時,Github會自動檢測有無衝突,若是有衝突,會要求Resolve conflicts,Github提供了解決衝突的頁面,點擊Resolve conflicts按鈕能夠直接在Github網站中解決衝突,提交commit,十分方便。

    在衝突解決、代碼複審完成後,merge的按鈕被容許點擊,可使用Squash and Merge的選項,將這個分支內的全部commit壓縮成一個commit進行合併。

3. Project、Kanban、Milestone

Project

Github提供了很是方便的項目管理工具Project,可使用其管理項目進度,還能夠生成燃盡圖等總結圖表,幫助項目管理人員進行進度監督。

咱們的開發共分爲兩個階段,分別開了兩個Project,目前alpha的開發項目已經結束,beta的開發項目還在進行中。htm

Kanban

Github項目管理最重要的功能是看板,點擊進入項目後,能夠看到以下的看板界面,上面顯示着各個功能的開發進度。能夠對看板進行設置,讓其自動關聯Issue,追蹤Issue的生命週期blog

  • 當Issue被建立時,看板的To do中自動出現卡片
  • 當Issue被PR所close後,To do中的卡片自動移入Done

Milestone

當建立了一個Project後,Github會自動建立一個同名的Milestone,能夠利用Milestone功能生成項目的燃盡圖
在建立Issue時,綁定一個Milestone。能夠點擊Issue標籤頁中的Milestone按鈕,查看全部綁定該Milestone的Issue

生成燃盡圖,參考這篇博客,使用https://www.cnblogs.com/SivilTaram/p/4900457.html網站生成燃盡圖,燃盡圖以下:
生命週期

4. 工做量統計

Github提供了方便且詳盡的工做量統計功能,點擊Insight標籤頁能夠看到各個維度下的工做量統計數據,對於項目經理等項目管理人員,能夠很方便地獲得每位開發人員的貢獻與進度等信息,幫助其更好地管理團隊。
項目管理

4、總結

本文主要介紹了Github網站項目管理的基本方法,包括倉庫的配置、工做流、項目管理、工做量統計等功能。可能有不少剛剛接觸軟件工程的小白和我以前同樣,並無深刻地使用過Github除了代碼託管之外的其它功能,那麼在看完本文以後,您能夠嘗試探索使用Github的這些功能。同時Github還有不少功能是本文沒有介紹到的,也是筆者沒接觸到的,您能夠繼續挖掘Github的更多功能,並分享給更多人。

相關文章
相關標籤/搜索