【问题标题】:Agile - database deployments [closed]敏捷 - 数据库部署 [关闭]
【发布时间】:2012-06-18 10:24:22
【问题描述】:

我们正在交付一个核心系统的彻底重写,交付团队在 Scrum 环境中工作。由于团队的规模,我们现在分成两个 Scrum 团队,他们的目标是每天集成代码。每当测试团队部署到我们的系统测试环境时(通常是每天),我们都会拆除数据库并重新填充所有参考数据 - 这是为了确保测试的基线。

这种方法的问题在于,当一个测试团队正在等待部署修复程序而另一个正在执行中期测试时,我们会严重影响我们的速度。为了尝试解决这个问题,我们提出了以下建议:

  • 创建另一个测试环境(这非常昂贵),此外,我们仍然会遇到延迟,因为团队中的一名测试人员仍然无法部署他们的修复程序。
  • 仅代码部署的选项(避免数据库崩溃)。

我们尝试并鼓励团队跨职能,并鼓励测试人员帮助测试人员找出阻碍部署的人,但这并不总是可行的。我们的目标也是让任务大约需要 1-2 天的时间,所以我们不能很容易地分解项目的持续时间。

其他人在他们的环境中采用了哪些方法?

【问题讨论】:

  • 如果我对您的理解正确,您有 2 个 Scrum 风格的开发团队和一个单独的测试团队。您是否考虑将测试人员添加到您的 Scrum 团队?这应该会大大减少在部署后发现的阻塞错误的数量(并且还培养了交付“完成”软件的 scrum 理想)。
  • 我投票决定将此问题作为题外话结束,因为从help center 中的What questions Should I avoid Asking? 开始,您应该避免出现“...您的答案与问题一起提供的问题,你期待更多的答案:“我用 ______ 代表 ______,你用什么?”

标签: database agile scrum agile-processes


【解决方案1】:

与其拆除并重新开始,不如考虑一种方法来“发展”数据库,通过将每个更改制定为“增量脚本”,从而进行结构更改(添加表、重命名列等)和迁移数据.

我已经使用过这种方法几次,当它成功时,它取得了巨大的成功 - 使团队和每个开发人员都能显着加快行动。

如果有兴趣,我有一篇博文,其中描述了我的一项工作:http://dearjunior.blogspot.se/2008/05/version-of-data-in-database.html

如果你想深入,我推荐"Refactoring Databases"

我们获得最多的团队开发了一大堆 bash 脚本来管理所有内容。但是,现在也有一些简洁的框架。我们已经开始使用dbmaintain,这实际上与我们自己开发的非常相似。

我强烈推荐这种方法。

[更新] 几个月前,我刚刚看到软件工程电台在这个主题上运行了 podcast episode

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多