Методика - Помогите! В Компании Нет Инфраструктуры Развития! Мне Поручили Это Реализовать!

  • Автор темы Tarapsa
  • Обновлено
  • 22, Oct 2024
  • #1

Фон: Недавно я начал работать в компании, и мне было поручено существенно модернизировать команду/отдел разработчиков. На данный момент проблемы следующие:

  • В настоящее время разработчики разрабатывают действующий сайт.
  • Резервные копии сайтов сохраняются, но у них нет системы контроля версий.
  • Никакого промежуточного процесса (разработка, контроль качества, UAT, работа в режиме реального времени).
  • Нет автоматизированного процесса сборки.
  • Нет СДЛК.
  • Минимальная (если есть) документация.
  • Сайты используют разные технологии.
  • Сроки безумные из-за огромных задержек в разработке.
  • Команда разработчиков не знает общих инструментов, которые могут помочь в отладке/разработке.

План Мои мысли на данный момент (в произвольном порядке):

  • Довести все проекты до использования одних и тех же технологий.

  • Перенесите все активные проекты в систему контроля версий.

  • Реализовать промежуточную реализацию, чтобы у нас были Dev, QA, UAT и Live.

  • Внедрить CI/CD

  • Внедрение инструментов и обучение настройке для команды разработчиков.

  • Внедряйте стандарты кодирования.

  • Представьте методологию, более подходящую для того, как в настоящее время работает команда, скорее всего, Agile или Scrum, а также соответствующие инструменты и шаблоны документации.

Вопросы

  • Были ли вы в этом сценарии раньше? Как вы преодолели эти препятствия? Сколько времени ушло на реализацию? (как приблизительная идея)

  • Как бы вы расставили приоритеты в выполнении перечисленных выше задач?

  • Что бы вы порекомендовали мне изучить/исследовать? (Меня особенно интересует CI/CD и то, как решить такую ​​огромную задачу)

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

Заключительные замечания Мы будем очень признательны за любые ресурсы, ссылки, просто подборку материалов и т. д.

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

#методология #стартап

Tarapsa


Рег
12 Feb, 2016

Тем
86

Постов
195

Баллов
645
  • 25, Oct 2024
  • #2

Были ли вы в этом сценарии раньше?

Да. По моему опыту, довольно стандартный сценарий.

Как вы преодолели эти препятствия?

Очень маленькими шагами.

Сколько времени ушло на реализацию? (как приблизительная идея)

Очень долго; в одном довольно крупном крайнем случае: более 10 лет и продолжается до сих пор.

Как бы вы расставили приоритеты в выполнении перечисленных выше задач?

Мой приоритет, с дополнительными комментариями:

  • Перенесите все активные проекты в систему контроля версий.
    • Это действительно должно быть простым и легко висящим плодом.
  • Внедряйте стандарты кодирования.
    • Разумно.
  • Представьте методологию, более подходящую для того, как в настоящее время работает команда, скорее всего, Agile или Scrum, а также соответствующие инструменты и шаблоны документации.
    • Если сейчас вообще нет методологии, то я бы сначала начал с очень мягкого Канбана, что по сути означает просто создание системы заявок и неустанное отслеживание всего. Я бы отложил полноценный Scrum до тех пор, пока все не пойдет по плану и вы не зарекомендуете себя как хороший парень.
  • Реализовать промежуточную реализацию, чтобы у нас были Dev, QA, UAT и Live.
    • Это приводит к еще большему разделению; то есть разработчиков необходимо отлучить от производственных систем.
  • Внедрение инструментов и обучение настройке для команды разработчиков.
    • Постарайтесь, если это возможно, предложить командам разработать свои собственные инструменты.
  • Внедрить CI/CD
  • Довести все проекты до использования одних и тех же технологий.
    • Это может быть просто неосуществимо, если под технологиями вы подразумеваете языки и библиотеки. Если вы имеете в виду Docker, OpenShift или что-то еще, то конечно.

Самый важный совет из моего опыта: любой ценой избегайте делать все самостоятельно. Дайте «импульсы» командам, но они должны сделать это (каким бы «это» ни было) сами. Если вы выполняете всю работу (лично или со своей отдельной «командой DevOps»), то в конечном итоге вы не получите столько пользы, поскольку все будут просто постоянно зависеть от вас.

 

Snake48


Рег
09 Nov, 2008

Тем
68

Постов
197

Баллов
537
  • 25, Oct 2024
  • #3

Я бы отдал приоритет таким вещам:

  1. поставить все проекты под контроль версий

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

  3. создайте хотя бы одну промежуточную среду, автоматизируйте развертывание в ней, начните создавать/развивать автоматическое тестирование и подключите их всех к системе CI — теперь они будут получать быструю обратную связь, включая тестирование.

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

 

Slavik_903


Рег
05 May, 2006

Тем
78

Постов
208

Баллов
618
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно