В связи с усложнением процессов
разработки, а также растущим интересом к облачным технологиям, где
старая добрая монолитная система уже не может ответить на все нужды
продукта, многие разработчики столкнулись с тем, что от них требуется
намного больше, чем знать определенный язык или паттерн
программирования. Их сфера деятельности медленно сдвигается в нишу,
которая требует знания не только программирования, но и IT, разбираться в
операционных системах, облачных сервисах, их особенностях и так далее…
Проекты уже не программируют… Их ПРОЕКТИРУЮТ, и эти новшества требуют
иного подхода, а также требуют иной организации разработки проекта.
Раньше в разработке проекта были несколько действующих лиц:
Менеджер проекта, дизайнер, разработчик и тестировщик. Данной команды в принципе хватало, чтобы запустить проект. Однако сейчас список действующих лиц и их обязанности расширились. Взять хотя бы одного только разработчика, ведь сейчас процесс разработки усложнился и теперь бедняга должен не только "творить" одинаково хорошо и в браузере и на сервере, он также должен писать автоматические тесты, учить разные инструменты, знать LINUX, не говоря уже об огромном кол-ве сторонних API, которые "облегчат ему жизнь", а ведь они рождаются каждый день и их сотни а может и тысячи. И даже если он самый лучший, умный и усидчивый разработчик, он не сможет сдвинуть проект дальше своего локального компьютера потому, что проект спроектирован для ОБЛАКА.
В нем десятки серверов, разные базы данных и одним знанием LINUX ему не обойтись, ведь однажды, залив код на сервер, он разошелся на десяток других и теперь ему интересно… "Как же Я смогу его обновить?!".
Тут в игру вступает DevOps. Именно он подкрутит твой GIT репозиторий к сторонним инструментам, которые автоматически будут поднимать твое обновление на десятки серверов, выполняя при этом автоматические тесты. Он настроит мониторинг системы и выведет логи со всей системы в одно место. Правила и критерии, по которым ваша система в облаке будет "дышать". Сервера будут автоматически подниматься и отключаться, базы данных реплицироваться, а данные будут проходить по разным каналам, чтобы в конце концов появиться у вас на экране компьютера. В общем, без DevOps будет оооочень тяжко, либо проект будет хромать, либо разработчик взвалит и этот непомерный груз на свои плечи, что опять таки отразится на качестве и времени разработки проекта.
Следующий специалист, без которого сложно обойтись при проектировании современного проекта, это архитектор. Архитектор — это человек который обладает знаниями как в сфере IT, так и в программировании.
Он видит общую картину проекта с технологической стороны и сможет связать воедино все технические детали разработки и потребностей железа. Архитектор является связующим звеном между менеджером проекта и командой технарей. Возможно, он будет также отвечать за выбор облачного провайдера, либо опираясь на выбранный сервис сумеет использовать существующие сервисы данного провайдера. Точно так, как начальник отдела способен разбить одно большое задание на маленькие, Архитектор разбивает большой проект на компоненты. В общем, человек это должен быть разносторонний в техническом плане и опытный, то есть за его плечами должен быть ни один успешный проект.
Остальные действующие лица, к которым мы уже привыкли, такие как тестировщик и менеджер проекта также присутствуют, однако в этой статье я хотел подчеркнуть относительно "новых" членов команды, а также новые требования к разработке вообще и к разработчику. Несколько раз я сталкивался с непониманием со стороны менеджмента к требованиям нанять стороннего архитектора (за неимением своего) для проекта хотя бы на стадии его планирования. Также до недавнего времени мои коллеги думали, что настроить систему может простая аутсорсовая служба поддержки и совершенно не понимали, для чего нам нужен свой собственный DevOps.
Следует сказать, что после длительного объяснительного процесса, а также разработки пилотного проекта с помощью всех действующих лиц мы за несколько недель успешно подняли прототип продукта, который в последствии перерос в целый сервис. Теперь команда включает в себя всех действующих лиц и работа кипит. Поэтому стоит подчеркнуть, что современные продукты требуют большой разъяснительной работы лицам и компаниям, где еще мыслят по старому.
Раньше в разработке проекта были несколько действующих лиц:
Менеджер проекта, дизайнер, разработчик и тестировщик. Данной команды в принципе хватало, чтобы запустить проект. Однако сейчас список действующих лиц и их обязанности расширились. Взять хотя бы одного только разработчика, ведь сейчас процесс разработки усложнился и теперь бедняга должен не только "творить" одинаково хорошо и в браузере и на сервере, он также должен писать автоматические тесты, учить разные инструменты, знать LINUX, не говоря уже об огромном кол-ве сторонних API, которые "облегчат ему жизнь", а ведь они рождаются каждый день и их сотни а может и тысячи. И даже если он самый лучший, умный и усидчивый разработчик, он не сможет сдвинуть проект дальше своего локального компьютера потому, что проект спроектирован для ОБЛАКА.
В нем десятки серверов, разные базы данных и одним знанием LINUX ему не обойтись, ведь однажды, залив код на сервер, он разошелся на десяток других и теперь ему интересно… "Как же Я смогу его обновить?!".
Тут в игру вступает DevOps. Именно он подкрутит твой GIT репозиторий к сторонним инструментам, которые автоматически будут поднимать твое обновление на десятки серверов, выполняя при этом автоматические тесты. Он настроит мониторинг системы и выведет логи со всей системы в одно место. Правила и критерии, по которым ваша система в облаке будет "дышать". Сервера будут автоматически подниматься и отключаться, базы данных реплицироваться, а данные будут проходить по разным каналам, чтобы в конце концов появиться у вас на экране компьютера. В общем, без DevOps будет оооочень тяжко, либо проект будет хромать, либо разработчик взвалит и этот непомерный груз на свои плечи, что опять таки отразится на качестве и времени разработки проекта.
Следующий специалист, без которого сложно обойтись при проектировании современного проекта, это архитектор. Архитектор — это человек который обладает знаниями как в сфере IT, так и в программировании.
Он видит общую картину проекта с технологической стороны и сможет связать воедино все технические детали разработки и потребностей железа. Архитектор является связующим звеном между менеджером проекта и командой технарей. Возможно, он будет также отвечать за выбор облачного провайдера, либо опираясь на выбранный сервис сумеет использовать существующие сервисы данного провайдера. Точно так, как начальник отдела способен разбить одно большое задание на маленькие, Архитектор разбивает большой проект на компоненты. В общем, человек это должен быть разносторонний в техническом плане и опытный, то есть за его плечами должен быть ни один успешный проект.
Остальные действующие лица, к которым мы уже привыкли, такие как тестировщик и менеджер проекта также присутствуют, однако в этой статье я хотел подчеркнуть относительно "новых" членов команды, а также новые требования к разработке вообще и к разработчику. Несколько раз я сталкивался с непониманием со стороны менеджмента к требованиям нанять стороннего архитектора (за неимением своего) для проекта хотя бы на стадии его планирования. Также до недавнего времени мои коллеги думали, что настроить систему может простая аутсорсовая служба поддержки и совершенно не понимали, для чего нам нужен свой собственный DevOps.
Следует сказать, что после длительного объяснительного процесса, а также разработки пилотного проекта с помощью всех действующих лиц мы за несколько недель успешно подняли прототип продукта, который в последствии перерос в целый сервис. Теперь команда включает в себя всех действующих лиц и работа кипит. Поэтому стоит подчеркнуть, что современные продукты требуют большой разъяснительной работы лицам и компаниям, где еще мыслят по старому.
Комментариев нет:
Отправить комментарий