• [技术博客]使用Github进行软工开发管理


    [技术博客]使用Github进行软工开发管理

    一、介绍

    项目 内容
    本作业属于北航软件工程课程 博客园班级博客
    团队项目博客目录 团队项目:知识路书
    团队博客 敏杰开发
    代码仓库 Roadmap-Frontend
    我在这门课程的目标是 获得成为一名软件工程师的能力
    我在本次作业的目标是 总结、分享团队使用Github进行软工开发管理的方法

    我是北航软件工程课敏杰开发团队的产品经理,我们团队开发的软件产品为知识路书——图形化文献管理大师。如果您想了解我们开发的软件在做什么,请查看这篇博客,如果您想全面了解我们开发的软件,可以在我们的开发博客目录查看全部的博客,或访问我们的代码仓库

    二、引言

    Github是一款目前应用最广的代码管理、项目管理平台,其免费、易用、人性化等特性吸引了全球众多开发者。在软件工程课中,我们应该学会使用项目管理软件来进行项目管理,本文主要介绍了Github网站项目管理的基本方法,包括仓库的配置、工作流、项目管理、工作量统计等功能。可能有很多刚刚接触开发的小白和我之前一样,并没有深入地使用过Github除了代码托管以外的其它功能,那么在看完本文之后,您可以尝试探索使用Github的这些功能,您会发现,好用至极,根本停不下来~。

    三、Github开发管理

    1. 仓库配置

    仓库包含两个特殊分支

    • dev 开发分支
      • 用于合并最新的开发代码
    • prod 生产分支
      • 用于存储生产代码

    我们的工作流是:个人开发时由dev分支checkout出来一个新分支例如zwx--new-feature,开发结束后通过代码互审合并到dev分支,完成某一整块的功能后,将dev分支合并到prod分支,并使用github的release功能发布一个新的版本。

    分支保护

    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如下:

    • 填写实现功能的描述
    • 分配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的开发项目还在进行中。

    Kanban

    Github项目管理最重要的功能是看板,点击进入项目后,可以看到如下的看板界面,上面显示着各个功能的开发进度。可以对看板进行设置,让其自动关联Issue,追踪Issue的生命周期

    • 当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标签页可以看到各个维度下的工作量统计数据,对于项目经理等项目管理人员,可以很方便地得到每位开发人员的贡献与进度等信息,帮助其更好地管理团队。

    四、总结

    本文主要介绍了Github网站项目管理的基本方法,包括仓库的配置、工作流、项目管理、工作量统计等功能。可能有很多刚刚接触软件工程的小白和我之前一样,并没有深入地使用过Github除了代码托管以外的其它功能,那么在看完本文之后,您可以尝试探索使用Github的这些功能。同时Github还有很多功能是本文没有介绍到的,也是笔者没接触到的,您可以继续挖掘Github的更多功能,并分享给更多人。

  • 相关阅读:
    在asp.net中显示/隐藏GridView的列
    WPF中的图表设计器 – 2
    Code Project精彩系列
    C#实现台球游戏
    超级简单:DIV布局
    [WF4.0]工作流设计器Rehosting(三)
    android 集成 第三方应用,包。
    抓log方法
    android logcat 打印
    android build.prop学习
  • 原文地址:https://www.cnblogs.com/old-jipa-deng/p/12980427.html
Copyright © 2020-2023  润新知