[Team Development] Организация коллективной разработки

BArter

Здравствуйте.
Работаю в небольшой фирме, программирую. Отдел небольшой, поэтому приходится делать много чего сопутствующего. Сейчас вот доросли до ситуации, когда основной проект в компании хочется поставить на промышленные рельсы сборки. Поясню:
Проект - приложение БД - набор проектов в Делфи + база в оракле. Сейчас для обновления программист собирает модуль, выкладывает вместе с ним в патч sql-файлы, аккуратненько обновляет файлы в Microsoft SourceSafe. Есть еще отчеты (Crystal Reports) которые по необходимости тоже кладутся в патч и в SourceSafe параллельно.
Минусов у такой системы много: программисту надо кучу всего "не забыть"; полный бардак, когда требуется получить не последнюю версию, а одну из старых (т.к. версии базы и модулей программы не синхронизированы).
Хочется весь процесс разработки упорядочить, но не хватает опыта в организации процесса. В связи с чем обращаюсь с вопросом: поделитесь, как у вас решаются подобные вопросы разработки. Какие программные средства можно использовать? Проект относительно небольшой, разработчиков в нем участвуют 2-4 человека.

Serab

Написаны вручную скрипты для сборки на JScript.
Беред исходники, собриает, публикует, шлет отчеты.
Базы данных не разрабатываем, но думаю, и на них можно все расширить.
Вроде в TFS есть что-то такое, нет разве?

SCIF32

пару раз встречал такую схему, правда под linux (так что инструменты другие, но схема мне нравилась и полностью правдывает себя).
разрабатывались приложение + СУБД
код лежит в svn, схема БД тоже в svn, помимо схемы в svn кладутся скрипты, апгрейдящие базу от версии к версии.
для кода ведутся ветки - последняя стабильная ветка (предыдущие сохраняются, но не правятся) и девелоперская ветка.
заводится несколько баз:
1. последняя стабильная
2. текущая девелоперская
3. стабильная для тестеров
4. по необходимости дополнительные, персональные для девелоперов
Редактирование структуры БД осуществляется по принципу:
изменения делаются только в девелоперской версии,
все изменения зарисовываются на схеме,
все изменения вносятся в файл, который будет апгрейдить стабильную до следующей версии.
При создании следующей стабильной версии:
1. делаем клон стабильной базы, апгрейдим ее скриптом
2. делаем клон девелоперской ветки кода в стабильную
3. отдаем тестерам.
откат более чем на одну ступень возможен только если есть бекап стабильной базы перед апгрейдом, но такого не разу не требовалось

bansek

по поводу БД гугл поможет (database change management, database version management, database refactoring):
http://dbdeploy.com/
http://www.liquibase.org/
http://www.agiledata.org/essays/tools.html
Оставить комментарий
Имя или ник:
Комментарий: