Close

Зачем вашей организации нужно решение Git

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

Развитие организации

Git для разработки


Рабочий процесс с функциональными ветками

Одно из самых больших преимуществ Git — возможность ветвления. В отличие от централизованных систем управления версиями, в Git ветки не требуют много ресурсов и легко объединяются. Это позволяет реализовать рабочий процесс с функциональными ветками, который так популярен среди пользователей Git.

Рабочий процесс с функциональными ветками

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

Использование функциональных веток не только более надежно, чем прямое редактирование окончательного кода, но и дает организационные преимущества: процесс разработки можно представить с такой же степенью детализации, которую имеет ваш agile-бэклог. Например, можно реализовать политику, в которой каждая заявка в Jira будет выполняться в отдельной функциональной ветке.

Логотип Git
Связанные материалы

Шпаргалка по Git

Логотип Bitbucket
СМ. РЕШЕНИЕ

Изучите Git с помощью Bitbucket Cloud

Распределенная разработка

В SVN каждый разработчик получает рабочую копию, которая ссылается на единый центральный репозиторий. Git же — это распределенная система управления версиями. Вместо рабочей копии каждый разработчик получает свой локальный репозиторий с полной историей коммитов.

Распределенная разработка

Благодаря локальной доступности всей истории Git работает быстро, поскольку для создания коммитов, проверки предыдущих версий файла или вычисления разницы между коммитами не требуется сетевое подключение.

Распределенная разработка также упрощает масштабирование команды. Если кто-то испортит рабочую ветку в SVN, другие разработчики не смогут вносить изменения, пока она не будет исправлена. В Git такой блокировки нет. Все могут спокойно работать в своих локальных репозиториях.

Распределенная разработка, как и функциональные ветки, повышает надежность среды. Даже если разработчик вдруг уничтожит свой репозиторий, он может просто клонировать чей-нибудь и снова приступить к работе.

Запросы pull

Многие инструменты управления исходным кодом, такие как Bitbucket, дополняют базовую функциональность Git запросами pull. С помощью запроса pull можно попросить другого разработчика объединить одну из ваших веток со своим репозиторием. Благодаря этому руководителям легче отслеживать работу над проектом, а инженерам — получать отзывы о своем коде, прежде чем интегрировать его с остальной базой.

Запросы pull

Поскольку запросы pull — это, по сути, потоки комментариев к функциональной ветке, они чрезвычайно универсальны. Например, если разработчик сталкивается с трудной задачей, он может открыть запрос pull, чтобы попросить помощи у остальной команды. А для младших разработчиков запрос pull служит формальной проверкой кода, благодаря чему они могут не опасаться, что погубят весь проект.

Сообщество

Сегодня Git рассматривается как система контроля версий по умолчанию в самых разных областях. Если в вашей команде используют Git, скорее всего, вам не придется обучать новых сотрудников рабочему процессу, потому что они и так будут знакомы с распределенной разработкой.

Сообщество Git

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

Ускоренный цикл релизов

Функциональные ветки, распределенная разработка, запросы pull и стабильное сообщество в конечном счете ускоряют цикл релизов. Все эти возможности способствуют работе по методологии agile, в рамках которой разработчикам рекомендуется делиться часто небольшими изменениями. Такие изменения продвигаются по конвейеру развертывания быстрее, чем монолитные релизы, которые характерны для централизованных систем управления версиями.

Ускоренный цикл релизов

Нетрудно догадаться, что Git отлично подходит для сред с непрерывной интеграцией и поставкой. Хуки Git позволяют запускать скрипты при определенных событиях внутри репозитория, что дает возможность автоматизировать развертывание настолько, насколько вы этого захотите. Можно даже собирать или развертывать код из определенных веток на разных серверах.

Например, можно настроить Git для развертывания последнего коммита из ветки разработки на тестовый сервер сразу после ее объединения с запросом pull. Автоматизация сборки и оценка со стороны коллег дает максимальную уверенность в качестве кода при переносе из среды разработки в промежуточную и затем рабочую среду.

Git для маркетинга


Чтобы понять, как использование Git влияет на маркетинговую деятельность компании, представьте, что на ближайшие несколько недель ваша команда разработчиков запланировала три отдельных изменения:

  • Вся команда заканчивает принципиально новую функцию, над которой работала последние 6 месяцев.
  • Мэри внедряет не связанную с этим небольшую функцию, которая влияет только на существующих клиентов.
  • Рик вносит крайне необходимые обновления в пользовательский интерфейс.

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

С более коротким циклом разработки, которому способствует Git, разбить эти изменения на отдельные релизы будет значительно проще. Так маркетологи смогут доводить до клиентов больше информации и делать это чаще. В приведенном выше сценарии отдел маркетинга может разработать три кампании — по одной для каждой отдельной функции, — нацеленные на вполне конкретные сегменты рынка.

Git для маркетинга

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

Git для управления продуктами


В области управления продуктом Git обладает почти такими же преимуществами, как и в сфере маркетинга. Чем чаще будут выходить релизы, тем чаще вы будете получать отзывы от клиентов и тем быстрее вы будете выпускать обновления по этим отзывам. Вместо того чтобы ждать релиза еще 8 недель, можно отправить решение клиентам сразу после того, как разработчики напишут код.

Управление приоритетами с рабочим процессом git

Рабочий процесс с функциональными ветками обеспечивает гибкость и при смене приоритетов. Предположим, вы прошли половину цикла релиза и захотели отложить одну функцию в угоду другой, критичной по времени. Никаких проблем. Первая функция может оставаться в своей ветке, пока у инженеров не освободится время, чтобы к ней вернуться.

Та же функциональность упрощает управление инновационными проектами, бета-тестами и быстрыми прототипами в виде независимых баз кода.

Git для дизайнеров


Функциональные ветки хорошо подходят для быстрого прототипирования. Неважно, хотят дизайнеры интерфейса реализовать совершенно новый пользовательский сценарий или просто заменить некоторые значки. Переключившись на новую ветку, они без угрозы для существующих функций смогут поэкспериментировать с изменениями в изолированной среде и посмотреть, как изменения будут выглядеть в реальном рабочем экземпляре продукта.

Безопасное управление версиями с Git

Инкапсулированные таким образом изменения пользовательского интерфейса проще показывать заинтересованным лицам. Например, если технический директор хочет посмотреть, над чем работает команда дизайнеров, ему достаточно переключиться на соответствующую ветку.

Запросы pull позволяют сделать еще один шаг вперед и предоставить заинтересованным сторонам место для организованного обсуждения нового интерфейса. Дизайнеры могут вносить любые необходимые изменения, и соответствующие коммиты появятся в запросе pull. Таким образом, каждый может принимать участие в процессе итерации.

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

Git для службы поддержки


Служба поддержки клиентов часто смотрит на обновления с иной точки зрения, чем менеджеры по продуктам. Клиенты обращаются в службу поддержки с проблемами. Если проблема вызвана программным обеспечением вашей компании, исправление бага нужно выпустить как можно скорее.

С оптимизированным циклом разработки Git исправление багов можно не откладывать до следующего монолитного релиза. Разработчик может выпустить патч и отправить его непосредственно в рабочую среду. Чем быстрее исправляются ошибки, тем довольнее будут клиенты и тем меньше будет повторных заявок в службу поддержки. Вместо того чтобы твердить: «Извините, мы сейчас же этим займемся», — в службе поддержки клиентов смогут отвечать: «Мы уже все исправили!»

Git для службы персонала


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

Сотрудники тянутся в компании, которые предоставляют возможности карьерного роста, а опыт работы с Git как в больших, так и в маленьких организациях принесет пользу любому программисту. Выбирая Git в качестве системы управления версиями, вы принимаете решение привлекать прогрессивных разработчиков.

Git для управления бюджетом


Git — это в первую очередь эффективность. Разработчики смогут экономить время на всем: от передачи коммитов по сети до трудозатрат на интеграцию изменений в централизованную систему контроля версий. В Git эффективнее работают даже младшие разработчики, поскольку они могут трудиться в безопасной среде. Все это влияет на прибыль вашего технического отдела.

Распределенная команда Git

Важно понимать, эта эффективность простирается далеко за пределы команды разработчиков. Отдел маркетинга не тратит силы на подготовку материалов по непопулярным функциям. Дизайнеры получают возможность тестировать новые интерфейсы на реальном продукте с небольшими накладными расходами. Служба поддержки может без промедления реагировать на жалобы клиентов.

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


Поделитесь этой статьей
Следующая тема

Рекомендуемые статьи

Добавьте эти ресурсы в закладки, чтобы изучить типы команд DevOps или получать регулярные обновления по DevOps в Atlassian.

Люди сотрудничают друг с другом, используя стену со множеством инструментов

Блог Bitbucket

Рисунок: DevOps

Образовательные программы DevOps

Демонстрация функций в демо-зале с участием экспертов Atlassian

Как инструмент Bitbucket Cloud работает с Atlassian Open DevOps

Подпишитесь на информационную рассылку по DevOps

Thank you for signing up