小型团队的开发工作流程

Development workflow for small team

所以,我在一家小型 event/entertainment 公司工作,最近接管了开发团队(大部分时间是 PHP 应用程序)。当前的工作流程看起来有点像这样:

我觉得这很可怕,所以我想出了这个主意:

这种工作流程有什么完全不对的地方吗?我在我自己的项目中使用过 Mercurial,但我以前从未在团队中使用过它,而且我对所有这些团队管理的东西也很陌生。我会很感激一些建议。

谢谢, 克里斯

这是我工作了几年的工作流程...

多个生产服务器, 1 x 项目(测试)服务器, Git(比特桶), 詹金斯, JIRA(问题跟踪), HipChat(团队聊天) 1 x 大师 Git 分支, 1 个项目 Git 分支机构

  • 提出新票(在 JRIA)
  • 从 master 分支签出一个新的本地分支
  • 完成工作
  • 提交拉取请求的分支(post 一个 link 到团队聊天中的拉取请求,以便其他开发人员知道是否是 PR)并进行所需的任何更改
  • 通过后,将我的本地分支合并到项目分支中
  • 使用 Jenkins 克隆项目 git repo,运行 测试并部署到项目服务器
  • Application Tester 测试所有东西
  • 票已通过
  • 将我的本地分支合并到主分支并推送
  • 同样,使用 Jenkins 克隆主分支和 运行 测试
  • 手动让 Jenkins 将 master 分支部署到生产服务器

我在上面提到了 Jenkins,对于希望实施新流程的开发团队来说,这可能有点过头了,现在我建议使用一些更基本的东西,例如 FTPloy,有一个很好的设置指南这里:https://daveismyname.com/website-deployment-with-bitbucket-and-ftploy-bp

让您的开发人员在本地工作很有意义。 PHP 的最大优势是反馈周期短,如果他们必须将可能损坏的东西推送到共享开发箱中,那么就会打破反馈周期短。您可以使用 Vagrant 之类的工具来简化开发人员在其开发机器上的环境设置。

至于其余部分:我会将您的 development/test 服务器与您的中央存储库分开。原因是当你在你的项目上工作时,你们很可能会开始为不同的发布版本使用分支。您的项目很可能会有一个 "Stable"/Currently released 分支和一个 "Feature" 分支(您正在处理的新内容)。直接发布到开发服务器对于我所建议的基本分支工作流来说甚至没有意义。

我在这里看到的另一个大问题是您的所有开发人员都可以发布到生产服务器。通常,即使在较小的组织中,在发布到生产服务器之前也会有指定的人员和指定的标准。我建议你这样做。另外,在发布之前,你们应该始终标记您要发布的版本。这应该是您发布工作流程的一部分。

您没有提及的另一件事是问题跟踪。就我而言,JIRA 是问题跟踪软件的黄金标准。我们喜欢使用 JIRA 和 Fisheye 来管理我们的代码并协调特定问题的提交。