2012-06-18 4 views
2

Мы поставляем переработку основной системы с командой доставки, работающей в среде Scrum. Из-за размера команды мы теперь разделились на две команды схватки, которые стремятся интегрировать код на ежедневной основе. Всякий раз, когда тестовая группа развертывается в нашей тестовой среде (ежедневно в качестве нормы), мы разрушаем базу данных и повторно заполняем все ссылочные данные - это является базой для тестирования.Agile - развертывание баз данных

Проблема с этим подходом заключается в том, что мы очень сильно влияем на нашу скорость, в то время как одна из тестовых команд ждет развертывания исправления, а другая - в ходе выполнения среднего теста. Для того, чтобы попытаться решить эту проблему, мы предложили следующее:

  • Создание другой тестовой среды (что довольно дорого), кроме того, мы бы до сих пор сталкиваются с задержками, так как один тестер в команде по-прежнему не в состоянии развернуть их исправить.
  • Опция для развертывания только кода (исключая разрыв базы данных).

Мы стараемся, чтобы команда была перекрестной функциональностью и поощряла тестеров помочь тестеру, который блокирует развертывание, но это не всегда практично. Мы также стремимся к тому, чтобы задачи составляли примерно 1-2 дня, поэтому мы не можем очень легко разбить продолжительность предметов.

Какие подходы используются другими в их среде?

+1

Если я правильно понимаю вас, у вас есть две команды разработчиков стиля scrum и отдельная группа тестирования. Рассматривали ли вы добавление тестеров в свои команды по схватке? Это должно значительно уменьшить количество блокирующих ошибок, обнаруженных после развертывания (а также способствовать идеальному решению задачи «готового» программного обеспечения). –

+0

Я голосую, чтобы закрыть этот вопрос как не относящийся к теме, потому что из [Какие вопросы я должен избегать Asking?] (Https://stackoverflow.com/help/dont-ask) в [help], вы должны избегать вопросов где «... ваш ответ предоставляется вместе с вопросом, и вы ожидаете больше ответов:« Я использую ______ для ______, что вы используете? » – EJoshuaS

ответ

2

Вместо того чтобы срываться и начинать, рассмотрите подход, в котором вы «развиваете» свою базу данных, формулируя каждое изменение как «дельта-скрипт», который делает как структурное изменение (добавить таблицу, переименовать столбец и т. Д.), Так и перенести данные.

Я использовал этот подход несколько раз, и когда он ухватился за него, он имел большой успех, позволяя команде и каждому разработчику двигаться значительно быстрее.

Если интересно, у меня есть запись в блоге, где я описываю одну из моих усилий: http://dearjunior.blogspot.se/2008/05/version-of-data-in-database.html

Если вы хотите, чтобы попасть в глубину, я рекомендую "Refactoring Databases"

Команда, где мы получили дальше мы разработали загружать скрипты bash для управления всем. Тем не менее, в настоящее время существуют и некоторые аккуратные рамки. Мы начали использовать dbmaintain, что на самом деле очень похоже на то, что мы разработали сами.

Настоятельно рекомендую этот подход.

[Обновить] Я только что наткнулся на то, что Software Engineering Radio провела podcast episode по этой теме всего несколько месяцев назад.