敏捷 - 数据库部署

时间:2012-06-18 10:24:23

标签: database agile scrum agile-processes

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

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

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

我们努力鼓励团队实现跨职能,并鼓励测试人员帮助测试人员阻止部署,但这并非总是实用。我们的目标也是约1-2天,所以我们不能很容易地分解项目的持续时间。

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

1 个答案:

答案 0 :(得分:2)

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

我已经使用过这种方法几次,并且当它已经取得成功时,它取得了巨大成功 - 使团队和每个开发人员的移动速度明显加快。

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

如果您想深入了解,我建议"Refactoring Databases"

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

我完全推荐这种方法。

[更新]我刚刚看到软件工程广播在几个月前就此主题发表了podcast episode