在一家从事长期软件项目的公司中,有6到9名开发人员在同一办公室工作。
开发团队使用JIRA进行bug跟踪,使用CVS (和一些SVN)控制与软件应用程序相关的不同Java Web应用程序的版本。
团队使用REST在不同服务器上的Web应用程序之间进行通信。该环境由Amazon和Google应用程序组成,它们都是用EC2、HTML、CSS和JavaScript编写的。
开发团队每天提交代码。使用这种策略,部署每20-25天进行一次,但他们希望每周部署一次,或者每两周部署一次。
当代码通过测试时,测试人员会发现并报告错误,但是当开发团队修复错误并部署软件时,软件中有时会出现更多的bug,因为开发人员仍然在将代码提交到存储库。
有时销售团队或客户在生产系统上也会发现错误。我们的想法是,我们可以查看代码的副本是稳定的,并在那里进行更改。
我怀疑这是一个如何使用版本控制的问题,但它可能是在过程中的其他东西。这个由6-9个人组成的敏捷开发团队应该如何确保发布都是频繁的,每周一次或每两周一次,并且部署是高质量的,没有任何回归错误?
发布于 2011-10-12 22:34:52
根据我的经验,处理类似问题的最有效率的方法是在某种程度上官方发展援助循环中跟踪、反映-调整开发过程。关键的技巧是在需要时隔离,为dev和QA设置明确的检查点,以便进行通信(如果您愿意的话是“内部版本”),而不是担心什么不重要。
现在,让我们看看你提到的一些问题.
当代码通过测试时,测试人员会发现并报告错误,但是当开发团队修复错误并部署软件时,软件中有时会出现更多的bug,因为开发人员仍然在将代码提交到存储库。
我所知道的稳定将要部署软件质量的唯一有效方法(发布候选版本)是将其与主存储库隔离开来(阅读:专用分支,具有自己的专用特性冻结和代码冻结迷你里程碑)。
有时销售团队或客户在生产系统上也会发现错误。我们的想法是,我们可以查看代码的副本是稳定的,并在那里进行更改。
不一定是这样。很抱歉我说得很含糊,但我怀疑在这里能否提出技术上精确的配方。这类信息更适合与产品涉众进行沟通。开发人员和QA团队能够(应该)在讨论表中带来的一件事是,对修补旧版本与部署新版本所涉及的工作进行比较估计。
发布于 2011-10-12 21:18:58
而不是“查看稳定的代码副本并在那里进行更改”。对每个特性使用分支。
设置一个连续集成服务器。当您将代码签入主" dev“分支时,它将自动生成到您的dev服务器。
当您有一个新的任务/特性/etc时,您将开发代码分支到一个特性分支中。开发,然后合并到开发中。
您还维护了QA/Test分支,同样,它有自动构建的设置来部署到QA/Test服务器上。
每个特性都可以独立部署到dev中,然后再部署到QA中。
需要控制对QA分支的签入权限。这样,如果QA开始测试,那么在他们签署协议并将QA分支合并到生产中(或中间的一个阶段步骤)之前,就不能再迁移到那里了。
这样,开发人员就不会破坏QA试图测试的内容。而且只有在QA签字后才会被刺激。然后,一旦他们签署并被部署到prod,您就会发布另一批特性,这些特性已经准备好放到QA分支中,然后交给QA。
泡沫,冲洗,重复。
发布于 2011-10-12 21:11:15
我所能建议的就是一个更紧密的反馈循环,通过
我认为,您会发现,这样做将允许您减少错误的数目,以测试人员。
https://softwareengineering.stackexchange.com/questions/114007
复制相似问题