GitHub项目与里程碑之间的区别/关系是什么?


163

GitHub的最新更新在GitHub工作流程中添加了一个名为Projects的项目,并且由于我对Jira或Trello之类的项目跟踪工具没有任何特别的经验(嘿,至少我注意到了相似之处),请有人详细说明 GitHub 里程碑和新项目之间的(主要)区别是什么?

如果我理解正确,里程碑是一种将问题组织到较小的“子项目”中的方法-小于整个“项目”(在我的世界中,该项目由存储库表示)。完成/关闭所有问题后,该里程碑可以被视为完成

正如我所看到的,新引入的Projects也是一种将问题组织成比存储库小的 “子项目”(尽管称为Projects)的方式。我知道工作流程应该比“仅” 里程碑稍有不同,并且粒度更细。

那么,项目的东西,补充里程碑(或者更确切地说里程碑补充项目现在呢?),还是应该我宁愿查看项目作为替代里程碑

这些项目实际上到底属于哪里repository[-milestone]-issue

可悲的是,GitHub关于项目引入的博客条目没有提及任何关系(https://github.com/blog/2256-a-whole-new-github-universe-announcing-new-tools-forums-and-功能)。

我莫名其妙地感觉到有一个,但是我不能动弹。


我投票结束这个题为离题,因为它与编程无关。
哔哔声,

20
由于帮助中心明确指出:“ [...如果您的问题通常涵盖程序员常用的软件工具;并且是一个实际的,可回答的问题,是软件开发所独有的,那么...在正确的地方问您的问题!” ,我认为没有任何原因。
Smuuf

Answers:


155

我想知道完全相同的事情。这是我想出的。

首先,让我们回顾一下主要的异同点:

  • 一个问题可以属于多个项目,但只能属于一个里程碑。
  • 项目永远不会完成。没有进度条或截止日期。 项目没有进度条或截止日期,但现在可以关闭(由@Sheen指出)
  • 另一方面,里程碑具有所有这些,但缺乏任何形式的组织。问题要么是里程碑,要么不是。(可以按照@Nick McCurdy的指示订购)
  • 可以按里程碑过滤问题,但不能按项目过滤。 正如@cmonkey指出的那样,问题现在可以通过Project以及Milestone进行过滤。
  • 项目可以包含Notes(可以将其转换为问题),因此它不会污染含糊的想法。
  • 一个项目可以跨越多个里程碑,一个里程碑可以包含不同项目的一部分。
  • 一个组织也可以有项目。这些项目可以包括组织中任何存储库中的票证,这非常有用。

因此,我的看法是,项目是一种完全独立的方式来可视化和组织更高级别的工作(例如“项目管理”,多个团队,多个存储库等),而里程碑则是一种组织您的工作的方式。期限和发布的更基本层次(请考虑“发布管理”,“版本”等)。考虑到这一点,有意义的是,一个问题仅属于一个里程碑(仅发布或推送到生产阶段一次),但可以属于不同项目。

我敢肯定,他们是查看它的其他方式,而且我很想听听其他意见。

编辑2017年12月

前一段时间,在与Milestones and Projects合作了一年多之后,我意识到我完全忽略了另一个重要方面。

  • 里程碑是用于Scrum方法的工具。里程碑非常适合于时间盒式迭代,并且可以处理带有批次问题的sprint。
  • 项目看板方法的工具。项目有利于持续交付和稳定的工作流程。

3
感谢您的总结,我自己一直在想。认为我要避免整个Projects事情发生,因为它不适用于我的...项目。在我看来,Github Projects似乎“颠倒了”,因为我通常对一个项目有多个存储库,而不是相反。
KEK

1
@KEK,在GitHub Enterprise中,我使用的组织具有一个没有代码的同名存储库,但是用于将所有项目及其问题集中化。针对保存代码的存储库的“拉取请求”简要引用了中央存储库的问题。
yegeniy

我的感觉是,里程碑主要是在接下来的几周/几个月内,所有问题或多或少都为人所知,而项目为期长达几个月甚至一年,而并非所有问题都被人们所知。两者之间进行进一步整合以减少重叠可能实际上是值得的。
Trilarion '17

1
如果使用列自动化预设,则项目现在具有进度条。
emlai

这是太棒了。但是,我仍然不清楚是应该同时使用里程碑和项目,还是应该仅使用两者之一。你怎么看?
chrisdembia,

41

我的看法:

  • 一个项目是关于一个过程人们的
  • 一个里程碑是关于一个产品

一个项目最适合深入了解团队中的人们使用的过程。更好的名称是“工作流”或“过程”。与创建新里程碑相比,创建新项目涉及更多的开销。因此,您实际上只想在团队中有一个新流程时创建一个新项目:必须选择,配置和订购通道。它们在每个项目中也可能非常不同。我回想起丰田最初使用看板的方法:管理人员及其工作量。

一个项目回答了以下问题:“我们目前正在做什么?”

两个很棒的Project例子:软件开发和博客。每个配置将支持不同组的人员流程。他们如何一起工作并签署协议。

相反,里程碑的工作原理相同。它们是任务的有序列表,必须将所有任务关闭才能使工作产品完成。(可选)可以设置截止日期,该截止日期仅提供提醒,但不更改里程碑功能。

一个里程碑回答了以下问题:“完成该产品还剩下什么?”


14

关于项目的一件好事是,它们比里程碑更具自由形式。您可以仅在其中插入笔记并链接到问题,并根据需要组织它们。它们非常适合记下想法,制定路线图以及列出资源和依赖项。过去,我使用问题和Wiki进行相同的操作,但是我发现两者都过于正式和事务性(即更高的开销)。


10

里程碑是一种标签,用于标记和分组预计在某个时间点交付的票证。Milestones您可以从该页面访问的Issues页面可以清楚地看到-您可以查看特定里程碑完成的票证的百分比以及截止日期。您还可以按截止日期对里程碑进行排序,并对特定里程碑中的票证进行优先排序。

这里的重点是交货日期和跟踪进度。

另一方面,项目在GitHub中作为看板板实现,带有一些风吹草动。您可以指定多个列(泳道 -如下面的@Doug所述,泳道尚不支持)以创建简单的工作流程。然后,您可以从一个或多个存储库中添加票证,对其进行优先级排序,然后在进行处理时将它们从一列推进到另一列。例如,您可以具有“待办事项”,“进行中”,“审核中”,“测试中”和“完成”列,并从左向右移动票证,或者,例如,如果有缺陷,则从右向左移动票证票证从“测试中”退回“待办事项”。

这里的重点是组织和管理工作。

然后,如何组织和划分工作范围取决于您。您可以为每个里程碑创建一个项目,或者在一个项目中具有多个里程碑,或者将里程碑拆分为较短的sprint。您可能还会有几个项目涉及产品的不同方面,例如,一个针对开发人员,一个针对测试人员。


泳道不是看板中的列。他们是行。Github目前不支持将泳道作为头等功能。
道格

感谢您的修正@Doug。您能否说明在这种情况下一流的功能是什么?它可以在Beta中使用吗?
约翰尼·布洛尼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.