[技术博客]使用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的更多功能,并分享给更多人。

相关文章
相关标签/搜索