GitHub 项目和里程碑之间有什么区别/关系?
What is the difference / relationship between GitHub Projects and Milestones?
最近对 GitHub 的更新在 GitHub 工作流程中添加了一个叫做 Projects 的东西,因为我对 项目跟踪工具 没有任何特别的经验,例如 Jira 或 Trello (嘿,至少我注意到了相似性),任何人都可以,请 详细说明 GitHub 的 里程碑 与新 项目?
如果我理解正确,里程碑 是一种将问题组织成更小 "sub-projects" 的方式 - 比整个 "project"(在我的世界观中,它由 存储库 表示)。当所有问题都done/closed时,里程碑可以视为完成。
新推出的 项目 在我看来也是一种将问题组织成 更小的方式-比存储库 "sub-projects"(尽管称为项目)。我知道工作流程应该与 "mere" Milestones.
略有不同并且更细粒度
那么,项目 是对 里程碑 的补充(或者说 里程碑 补充 Projects 现在?)还是我应该将 Projects 视为 replacement 的 个里程碑?
项目究竟在哪里属于repository[-milestone]-issue
层次结构?
可悲的是,GitHub关于介绍 Projects 的博客条目没有提及任何关系(https://github.com/blog/2256-a-whole-new-github-universe-announcing-new-tools-forums-and-features).
不知怎的我觉得有一个,但我不能指手画脚。
我也在想同样的事情。这是我想出的。
首先,让我们回顾一下主要的相同点和不同点:
- 一个问题可以属于多个项目,但只能属于一个里程碑。
项目永远不会完成。没有进度条或截止日期。 项目 没有进度条或截止日期(他们现在有,尽管它作为“跟踪项目进度”隐藏在项目菜单中" 复选标记,并且没有进度的百分比计算),但现在可以关闭(正如@Sheen 所指出的)
- 另一方面,里程碑拥有所有这些,但缺乏任何形式的组织。问题要么处于里程碑中,要么不处于里程碑中。 (可以按照@Nick McCurdy 的指示进行订购)
问题可以按里程碑过滤,但不能按项目过滤。正如@cmonkey 所指出的,问题现在可以按项目和里程碑过滤。
- 项目可以包含 注释(可以转换为问题),因此它不会用模糊的想法污染问题跟踪器
- 一个项目可以跨越多个里程碑,一个里程碑可以包含不同项目的一部分。
- 组织也可以有项目。这些项目可以包括来自组织中任何存储库的票证,这非常有用。
所以我的看法是,项目 是一种完全独立的方式,可以在更高层次上可视化和组织您的工作(想想“项目管理”,多个团队,多个存储库等),而 里程碑 是一种在更基本的层面上组织截止日期和发布的方式(想想“发布管理”、“版本”等)。考虑到这一点,一个问题只属于一个里程碑(它只发布或推送到生产一次)但可以属于不同项目的一部分是有道理的。
不过我敢肯定他们还有其他方式来看待它,我很想听听其他意见。
编辑 2017 年 12 月
前段时间,在使用里程碑和项目一年多之后,我意识到我完全忽略了另一个重要方面。
- 里程碑 是 Scrum 方法论的工具。里程碑适用于有时间限制的迭代和处理批量问题的冲刺。
- Projects 是 看板 方法的工具。项目有利于持续交付和稳定的工作流程。
项目的一个好处是它们比里程碑更自由。您可以只在其中添加注释并 link 处理问题,然后按照适合您的方式组织它们。它们非常适合记下想法、制定路线图以及列出资源和依赖项。过去我用问题和 wiki 做同样的事情,但我发现两者都太正式和事务性(即更高的开销)。
里程碑 是一种标签,用于标记和分组预计在某个时间点交付的门票。您可以从 Issues
页面访问的 Milestones
页面非常清楚 - 您可以看到针对特定里程碑和截止日期完成的工单百分比。您还可以按截止日期对里程碑进行排序,并在特定里程碑内对工单进行优先排序。
这里的重点是交货日期和跟踪进度。
另一方面,项目 在 GitHub 中实现为 Kanban 带有一些花哨功能的看板。您可以指定多个列( 和 泳道 - 正如@Doug 在下面所说 泳道 不受支持yet) 创建简单的工作流程。然后,您可以从一个或多个存储库添加工单,确定它们的优先级,然后在处理它们时将它们从一列推进到另一列。例如,您可以有 'Backlog'、'In Progress'、'Under Review'、'In Testing' 和 'Done' 列,并从左到右或从右到如果有缺陷的票从 'In Testing' 退回到 'Backlog',则离开。
这里的重点是组织和管理工作。
那么你如何组织和划分工作由你决定。您可以为每个里程碑创建一个项目,或者在一个项目中有多个里程碑,或者将里程碑拆分为更短的 sprints。您还可以有多个项目涵盖产品工作的不同方面,例如,一个针对开发人员,一个针对测试人员。
我的看法:
- 一个项目是关于一个过程和人。
- 一个里程碑是关于一个产品。
项目最适合深入了解组中人使用的流程。更好的名称是 "workflow" 或 "process"。与创建新里程碑相比,创建新项目涉及更多开销。所以你真的只想在你的团队中有一个新的 process 时创建一个新项目:必须选择、配置和排序通道。它们在每个项目中也可能非常不同。我回想起丰田最初使用看板的方式:管理人员及其工作量。
A Project answers the question, "What are we working on at the moment?"
两个很棒的项目示例:软件开发和博客。每个配置将支持不同组的人员流程;他们如何合作并签署协议。
相比之下,里程碑的工作原理都是一样的。它们是一个有序的任务列表,必须全部关闭才能使工作产品被视为完成。可选地,可以设置截止日期,这只是提供提醒,但不会改变里程碑功能。
A milestone answers the question, "What is remaining to finish this product?"
在 GitHub 上:
- 项目是一个有始无终的过程。
- 里程碑是一个强调结束时间的过程。
因此使用里程碑将项目拆分为多个阶段并带有结束时间是正确的。
我是这样使用的:
- Organization Project用于组织多个repositories的过程
- Repository Project用于组织长期分支的迭代过程,如develop branch,custom branch。
- 里程碑是一个迭代阶段。
最近对 GitHub 的更新在 GitHub 工作流程中添加了一个叫做 Projects 的东西,因为我对 项目跟踪工具 没有任何特别的经验,例如 Jira 或 Trello (嘿,至少我注意到了相似性),任何人都可以,请 详细说明 GitHub 的 里程碑 与新 项目?
如果我理解正确,里程碑 是一种将问题组织成更小 "sub-projects" 的方式 - 比整个 "project"(在我的世界观中,它由 存储库 表示)。当所有问题都done/closed时,里程碑可以视为完成。
新推出的 项目 在我看来也是一种将问题组织成 更小的方式-比存储库 "sub-projects"(尽管称为项目)。我知道工作流程应该与 "mere" Milestones.
略有不同并且更细粒度那么,项目 是对 里程碑 的补充(或者说 里程碑 补充 Projects 现在?)还是我应该将 Projects 视为 replacement 的 个里程碑?
项目究竟在哪里属于repository[-milestone]-issue
层次结构?
可悲的是,GitHub关于介绍 Projects 的博客条目没有提及任何关系(https://github.com/blog/2256-a-whole-new-github-universe-announcing-new-tools-forums-and-features).
不知怎的我觉得有一个,但我不能指手画脚。
我也在想同样的事情。这是我想出的。
首先,让我们回顾一下主要的相同点和不同点:
- 一个问题可以属于多个项目,但只能属于一个里程碑。
项目永远不会完成。没有进度条或截止日期。项目没有进度条或截止日期(他们现在有,尽管它作为“跟踪项目进度”隐藏在项目菜单中" 复选标记,并且没有进度的百分比计算),但现在可以关闭(正如@Sheen 所指出的)- 另一方面,里程碑拥有所有这些,但缺乏任何形式的组织。问题要么处于里程碑中,要么不处于里程碑中。 (可以按照@Nick McCurdy 的指示进行订购)
问题可以按里程碑过滤,但不能按项目过滤。正如@cmonkey 所指出的,问题现在可以按项目和里程碑过滤。- 项目可以包含 注释(可以转换为问题),因此它不会用模糊的想法污染问题跟踪器
- 一个项目可以跨越多个里程碑,一个里程碑可以包含不同项目的一部分。
- 组织也可以有项目。这些项目可以包括来自组织中任何存储库的票证,这非常有用。
所以我的看法是,项目 是一种完全独立的方式,可以在更高层次上可视化和组织您的工作(想想“项目管理”,多个团队,多个存储库等),而 里程碑 是一种在更基本的层面上组织截止日期和发布的方式(想想“发布管理”、“版本”等)。考虑到这一点,一个问题只属于一个里程碑(它只发布或推送到生产一次)但可以属于不同项目的一部分是有道理的。
不过我敢肯定他们还有其他方式来看待它,我很想听听其他意见。
编辑 2017 年 12 月
前段时间,在使用里程碑和项目一年多之后,我意识到我完全忽略了另一个重要方面。
- 里程碑 是 Scrum 方法论的工具。里程碑适用于有时间限制的迭代和处理批量问题的冲刺。
- Projects 是 看板 方法的工具。项目有利于持续交付和稳定的工作流程。
项目的一个好处是它们比里程碑更自由。您可以只在其中添加注释并 link 处理问题,然后按照适合您的方式组织它们。它们非常适合记下想法、制定路线图以及列出资源和依赖项。过去我用问题和 wiki 做同样的事情,但我发现两者都太正式和事务性(即更高的开销)。
里程碑 是一种标签,用于标记和分组预计在某个时间点交付的门票。您可以从 Issues
页面访问的 Milestones
页面非常清楚 - 您可以看到针对特定里程碑和截止日期完成的工单百分比。您还可以按截止日期对里程碑进行排序,并在特定里程碑内对工单进行优先排序。
这里的重点是交货日期和跟踪进度。
另一方面,项目 在 GitHub 中实现为 Kanban 带有一些花哨功能的看板。您可以指定多个列( 和 泳道 - 正如@Doug 在下面所说 泳道 不受支持yet) 创建简单的工作流程。然后,您可以从一个或多个存储库添加工单,确定它们的优先级,然后在处理它们时将它们从一列推进到另一列。例如,您可以有 'Backlog'、'In Progress'、'Under Review'、'In Testing' 和 'Done' 列,并从左到右或从右到如果有缺陷的票从 'In Testing' 退回到 'Backlog',则离开。
这里的重点是组织和管理工作。
那么你如何组织和划分工作由你决定。您可以为每个里程碑创建一个项目,或者在一个项目中有多个里程碑,或者将里程碑拆分为更短的 sprints。您还可以有多个项目涵盖产品工作的不同方面,例如,一个针对开发人员,一个针对测试人员。
我的看法:
- 一个项目是关于一个过程和人。
- 一个里程碑是关于一个产品。
项目最适合深入了解组中人使用的流程。更好的名称是 "workflow" 或 "process"。与创建新里程碑相比,创建新项目涉及更多开销。所以你真的只想在你的团队中有一个新的 process 时创建一个新项目:必须选择、配置和排序通道。它们在每个项目中也可能非常不同。我回想起丰田最初使用看板的方式:管理人员及其工作量。
A Project answers the question, "What are we working on at the moment?"
两个很棒的项目示例:软件开发和博客。每个配置将支持不同组的人员流程;他们如何合作并签署协议。
相比之下,里程碑的工作原理都是一样的。它们是一个有序的任务列表,必须全部关闭才能使工作产品被视为完成。可选地,可以设置截止日期,这只是提供提醒,但不会改变里程碑功能。
A milestone answers the question, "What is remaining to finish this product?"
在 GitHub 上:
- 项目是一个有始无终的过程。
- 里程碑是一个强调结束时间的过程。
因此使用里程碑将项目拆分为多个阶段并带有结束时间是正确的。
我是这样使用的:
- Organization Project用于组织多个repositories的过程
- Repository Project用于组织长期分支的迭代过程,如develop branch,custom branch。
- 里程碑是一个迭代阶段。