基於Github的敏捷開發

tc9011發表於2019-03-03

Git和Github簡介

Git是由 Linux 之父 Linus Tovalds 創立的程式碼版本控制系統。你可以簡單地把Git理解為管理程式碼歷史記錄的工具。比如,以前我管理需要反覆修改的文件時,一般都是手動以日期加版本號來備份文件,有了git以後,我只需要一份文件,隨時檢視更改的內容,如果寫錯了,可以隨時回退到之前的任意版本,即使刪除了,也可以恢復。

而Github是基於Git的專案託管平臺。Github現在已經是全球最大的社交程式設計及程式碼託管平臺,經常被人調侃成全球最大的同性交友網站,簡稱Gayhub。

下面是知乎上關於Github介面的一張經典圖片:

20170712149985746350609.png
20170712149985746350609.png

基於Github,你可以做很多事情,比如寫書、搭建部落格、多人協作翻譯、專案管理,政府檔案管理(日本政府已經把憲法放上去了,英國政府也在上面提供了很多政府專案的原始碼或者設計原則之類的東西。)、科研專案和資料管理等等。

基於Github的敏捷開發

發現這個技巧是在翻Angular倉庫的時候發現的,熟悉基於JIRA的Scrum敏捷開發的人應該對下面幾張截圖比較熟悉:

20170712149986235998178.png
20170712149986235998178.png

20170712149986237747718.png
20170712149986237747718.png

20170712149986238499373.png
20170712149986238499373.png

參考Angular團隊,就可以利用Github進行個人專案的敏捷開發或者學習。

關於敏捷開發:

一般敏捷開發以兩週為一個週期,稱為一個迭代。在一個迭代中快速完成預估的工作量。我們團隊的Scrum敏捷開發的步驟如下:

1.需求澄清會:搞清楚使用者需求。

2.迭代會:提煉出核心需求,把每個工作分解,並估算完成點數(人數×天數),開完會後錄入Jira中管理。

3.站會:每天早上開一個短會,每個人講一下昨天做了什麼、今天要做什麼、遇到了什麼困難。根據站會的內容,同步Jira中對應任務的進度。

4.回顧會:讓領導對這個迭代內做的產品進行評估,提出問題,同時每個人說一下這個迭代收穫或者需要改進的地方

一個簡單的案例

比如我現在Github上有一個叫Professional-JavaScript-Demo的倉庫,這是我用來學習《JavaScript高階程式設計》的,這本書有25章節,共730頁。假設現在我把每一章算作是一個迭代(也就是兩週)任務,這個任務又分成讀完整章和整理整章的知識點兩部分。基於這個前提,下面我們就利用Github進行敏捷學習。

首先,在Projects標籤頁中建立一個專案:

20170712149986669978066.png
20170712149986669978066.png

20170712149986671943919.png
20170712149986671943919.png

建立完後就可以看到這個介面:

20170712149986672667718.png
20170712149986672667718.png

此時點選Add column,建立三個列:準備,進行中和完成:

20170712149986718719446.png
20170712149986718719446.png

建立完了以後如下圖所示,是不是感覺有點像jira了,哈哈哈。

20170712149986739824407.png
20170712149986739824407.png

接下來就是要建立卡片任務了,點選準備一列中右上角的+號,建立卡片任務,建立完了,點選卡片右上角的下拉符號,選擇convert to issue,建立關聯的issue

20170712149986798815743.png
20170712149986798815743.png

這時候在issue標籤頁中就能看到關聯的issue了,如下圖所示。按照同樣的步驟,建立一個叫第六章知識點整理的卡片。

20170712149986847542235.png
20170712149986847542235.png

在上圖滑鼠的上方有個Milestones按鈕,沒錯,這相當於Jira裡面的里程碑,在里程碑中,我們把第六章知識點整理讀完第六章作為一個里程碑,表示整個第六章完成了。

首先點選建立里程碑:

20170712149986900319961.png
20170712149986900319961.png

然後在這邊可以選擇里程碑結束日期,比如我選16號:

20170712149986903110832.png
20170712149986903110832.png

建立完如圖所示:

20170712149986964914104.png
20170712149986964914104.png

然後我們需要把兩個issue和這個里程碑關聯起來,點選進入之前建立的issue,在右邊欄中關聯里程碑:

20170712149986982724723.png
20170712149986982724723.png

這時候類似於Jira的敏捷開發的管理工具就建立完成了。

假設我已經讀完第六章了,也就是完成了卡片任務中的一個,這時候你可以在projects中把讀完第六章的卡片拖到完成:

20170712149987035333296.png
20170712149987035333296.png

然後在issue中,點選下方白色的close issue按鈕,把讀完第六章這個issue關閉:

20170712149987040969645.png
20170712149987040969645.png

這時候你的里程碑會自動同步進度:

20170712149987047544171.png
20170712149987047544171.png

以上就是基於Github的敏捷開發流程的一個簡單例子。

參考文章

  1. 怎樣使用 GitHub?
  2. 基於JIRA的Scrum敏捷開發的專案管理

相關文章