Контекст: я работаю в небольшой компании, занимающейся разработкой программного обеспечения, которая традиционно занимается исследовательской работой и не имеет большого опыта в коммерческой сфере. Сейчас мы пытаемся продвинуться в коммерческий мир. Из-за того, что мы занимаемся исследованиями, мы привыкли к очень быстрому циклу разработки и очень небольшой структуре с точки зрения поддержки правильных версий проектов.
Проблема: отсутствие структуры теперь оказывается некоторым препятствием, поскольку каждый разработчик имеет несколько иное представление о кодовой базе. Проблема, обнаруженная одним разработчиком, не может быть воспроизведена другим разработчиком, и проблемы, обнаруженные в одной сборке, могут исчезнуть в следующей (или, что еще хуже, могут появиться новые проблемы). Это очень расстраивает того, кто отвечает за интеграцию всех проектов и обеспечение соблюдения стандартов качества и производительности, то есть меня.
Возможное решение: лично я убежден, что нам нужно обеспечить лучшую структуру с помощью фиксированных номеров версий и регулярных выпусков. Должно быть самоочевидно, как правильное управление версиями поможет со многими из наших проблем, но, конечно, не без проблем - разработчикам нужно проделать дополнительную работу для выполнения и тестирования выпусков, и они больше не смогут использовать последние версии все.
Вопрос: Подойдя к сути - какие стратегии вы рекомендуете для обеспечения максимально гладкого процесса и усилий, необходимых для выпуска релизов? Мы используем git для контроля версий, maven для нашей системы сборки, и у нас работают системы отслеживания ошибок и непрерывной интеграции, поэтому я считаю, что инструменты есть. Я просто не уверен, как должен выглядеть надлежащий процесс выпуска.