Разработка программного обеспечения: различия между версиями
AE (обсуждение | вклад) (Оптимизация размера) |
AE (обсуждение | вклад) мНет описания правки |
||
(не показано 14 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
Разработка программного обеспечения — это производство программ для | Разработка программного обеспечения — это производство [[Компьютерная программа|программ]] для [[Компьютер|компьютеров]] как продуктов полностью готовых к использованию. Могут предназначаться для внутреннего использования или для внешнего заказчика, для перепродажи или для бесплатного распространения. | ||
== Объясните простыми словами, пожалуйста == | == Объясните простыми словами, пожалуйста == | ||
[[Файл:The Caxton Celebration - William Caxton showing specimens of his printing to King Edward IV and his Queen.jpg|мини| | [[Файл:The Caxton Celebration - William Caxton showing specimens of his printing to King Edward IV and his Queen.jpg|мини|200px|Разработчики выкатывают приложение в продакшн]] | ||
Почему программистов называют разработчиками? 🤔 | Почему программистов называют разработчиками? 🤔 | ||
Это слова часто используют вместе, но это не совсем одно и то же. В разработке '''современных''' качественных приложений только программирования '''недостаточно'''. Это сложный процесс и со стороны упрощенно выглядит так: несколько человек собираются вместе, начинают спорить и ругаться, а в перерывах стучат по клавиатурам. Это может длиться месяцами и годами. И в '''результате''' всего этого компьютеры начинают делать то, что раньше не делали, или начинают делать что-то '''лучше'''. | Это слова часто используют вместе, но это не совсем одно и то же. В разработке '''современных''' качественных приложений только [[Программирование|программирования]] '''недостаточно'''. Это сложный процесс и со стороны упрощенно выглядит так: несколько человек собираются вместе, начинают спорить и ругаться, а в перерывах стучат по клавиатурам. Это может длиться месяцами и годами. И в '''результате''' всего этого компьютеры начинают делать то, что раньше не делали, или начинают делать что-то '''лучше'''. | ||
Название для этого '''странного''' процесса искали долго и по всему миру. В итоге нашлось хорошее, изначально французское слово «'''разворот'''», давно позаимствованное в английский и дополненное смыслами. '''Development''' — это рост и развитие, '''раскрытие''' потенциала. В русском языке слово девелопмент уже заняли за собой строители, поэтому довольствуемся скромным «разработка» 🤷 | Название для этого '''странного''' процесса искали долго и по всему миру. В итоге нашлось хорошее, изначально французское слово «'''разворот'''», давно позаимствованное в английский и дополненное смыслами. '''Development''' — это рост и развитие, '''раскрытие''' потенциала. В русском языке слово девелопмент уже заняли за собой строители, поэтому довольствуемся скромным «разработка» 🤷 | ||
Строка 13: | Строка 13: | ||
Что объединяет журналистов и разработчиков программ? | Что объединяет журналистов и разработчиков программ? | ||
* ⚒️ Они должны использовать профессиональные инструменты индивидуальной и командной работы. | *⚒️ Они должны использовать профессиональные инструменты индивидуальной и командной работы. | ||
* 🚯 Они должны соблюдать производственные стандарты. | *🚯 Они должны соблюдать производственные стандарты. | ||
* 👪 Они должны эффективно работать в команде по правилам (методологиям). | *👪 Они должны эффективно работать в команде по правилам (методологиям). | ||
* 📅 Они должны понимать, что делает и зачем. Работать на результат и соблюдать сроки. | *📅 Они должны понимать, что делает и зачем. Работать на результат и соблюдать сроки. | ||
* 💎 Они должны ''писать'' качественно, простым понятным языком. | *💎 Они должны ''писать'' качественно, простым понятным языком. | ||
* 🚑 Они должны помогать коллегам. | *🚑 Они должны помогать коллегам. | ||
* 🫡 Они должны выполнять требования ''редактора'' (руководителя проекта). | *🫡 Они должны выполнять требования ''редактора'' (руководителя проекта). | ||
Разработка '''больших''' и важных приложений требует участия большого количество людей и все они заняты '''не только''' программированием. Менеджеры, дизайнеры, аналитики, тестировщики, системные администраторы и другие специалисты вносят '''огромный''' вклад в конечный результат. К сожалению, про них часто и несправедливо забывают, называя разработчиками только программистов | Разработка '''больших''' и важных приложений требует участия большого количество людей и все они заняты '''не только''' программированием. Менеджеры, дизайнеры, аналитики, тестировщики, системные администраторы и другие специалисты вносят '''огромный''' вклад в конечный результат. К сожалению, про них часто и несправедливо забывают, называя разработчиками только программистов 😒 | ||
Но никто не обижается 😅 | |||
=== | ==А если серьезно== | ||
===Из чего состоит разработка ПО === | |||
=== Кто участвует в разработке ПО === | [[Файл:Software development projects, wmcon14 berlin.jpg|мини|200px|Разработчики на совещании]] | ||
Программирование — только одна из составляющих частей процесса разработки ПО, наряду со сбором требований, проектированием, тестированием, документированием и сопровождением: | |||
*Идея — с чего всё начинается. Обычно это предложение по решению конкретной проблемы. | |||
*Продуктовый анализ — создание концепта: определение характеристик, анализ конкурентов, опросы пользователей. | |||
*Финансовый анализ — оценка экономических показателей: расходов, доходов, период окупаемости, оценка рисков. | |||
*Системный анализ — сбор всех требований и их документирование в виде технического задания. | |||
*Проектирование — создание проекта: проработка дизайна, выбор технологий и инструментов. Для сложных проектов прорабатываются модели процессов и модели данных. | |||
*Планирование — финальная оценка трудозатрат и календарных сроков. | |||
*[[Программирование]] — написание исходного кода программ на определенных языках программирования. | |||
*Код-ревью (code review) — проверка исходного кода программы другим более опытным разработчиком. | |||
*Тестирование — проверка, что программа удовлетворяет требованиям. В крупных компаниях, тестирование является частью отдельного направления контроля качества (QA). | |||
*Документирование — состоит из документирования исходного кода, документирования API (описания того как программа будет взаимодействовать с другими программами), подготовки документации для пользователей. | |||
*Релиз (release) — «запуск в печать». Доставка приложения или результатов его работы конечным пользователям. | |||
*Маркетинговые мероприятия и запуск рекламы. | |||
*Продажи и внедрения. | |||
*Сопровождение — техническая поддержка, обслуживание, исправление багов и доработки. | |||
===Кто участвует в разработке ПО=== | |||
Набор необходимых специалистов отличается от проекта к проекту. Но можно выделить такие основные направления: | Набор необходимых специалистов отличается от проекта к проекту. Но можно выделить такие основные направления: | ||
* | *Менеджеры — отвечают за организацию процессов | ||
* Коммерсанты — отвечают за продажи и удержание клиентов | *Коммерсанты — отвечают за продажи и удержание клиентов | ||
* Аналитики — решают сложные проблемы | *Аналитики — решают сложные проблемы | ||
* Разработчики — программируют | *Разработчики — программируют | ||
* Тестировщики — тестируют | * Тестировщики — тестируют | ||
* Сисадмины — обслуживают | *Сисадмины — обслуживают | ||
Пример структуры IT-компании среднего размера: | |||
Пример структуры IT-компании среднего размера | |||
'''Структура IT компаний может сильно различаться в зависимости от размера, предметной области работы, количества клиентов. Здесь показан пример усредненный продуктовой IT компании, то есть компании, самостоятельно разрабатывающей и обслуживающей приложения для решения определенных задач.''' | '''Структура IT компаний может сильно различаться в зависимости от размера, предметной области работы, количества клиентов. Здесь показан пример усредненный продуктовой IT компании, то есть компании, самостоятельно разрабатывающей и обслуживающей приложения для решения определенных задач.''' | ||
* Ключевые директора (Executive team) | *Ключевые директора (Executive team) | ||
** Генеральный директор (Chief Executive Officer / CEO) — главный босс | **'''Генеральный директор''' (Chief Executive Officer / '''CEO''') — главный босс | ||
** Операционный директор (Chief Operating Officer / COO) — налаживает взаимодействие между отделами | **'''Операционный директор''' (Chief Operating Officer / '''COO''') — налаживает взаимодействие между отделами | ||
** Финансовый директор (Chief Financial Officer / CFO) — отвечает за то, чтобы у компании не закончились внезапно деньги | **'''Финансовый директор''' (Chief Financial Officer / '''CFO''') — отвечает за то, чтобы у компании не закончились внезапно деньги | ||
** Технический директор (Chief Technology Officer / CTO) — главный по IT | **'''Технический директор''' (Chief Technology Officer / '''CTO''') — главный по IT | ||
* Отдел развития бизнеса (Business development / BD) — глобальная стратегия и планы развития компании | * Отдел развития бизнеса (Business development / '''BD''') — глобальная стратегия и планы развития компании | ||
** Бизнес-аналитика (Business Intelligence / BI) | **Бизнес-аналитика (Business Intelligence / '''BI''') | ||
*** Аналитик данных (Data Analyst) — извлекает из «бесполезных» данных полезный результат, который используется другими специалистами | ***'''Аналитик данных''' (Data Analyst) — извлекает из «бесполезных» данных полезный результат, который используется другими специалистами | ||
** Другие отделы, отвечающие за стратегические партнерства, планирования, анализ процессов внутри компании | **Другие отделы, отвечающие за стратегические партнерства, планирования, анализ процессов внутри компании | ||
*** Бизнес аналитики, менеджеры | ***'''Бизнес аналитики, координаторы и прочие менеджеры''' — делают компанию лучше и эффективнее | ||
* Коммерческий отдел (Commercial department) | *Коммерческий отдел (Commercial department) — увеличение доходов, работа с клиентами | ||
** Обслуживание клиентов (Customer Service) | **Обслуживание клиентов (Customer Service) — работа на удержание клиентов | ||
*** Аккаунт менеджер — индивидуальная работа с ключевыми клиентами | ***'''Аккаунт менеджер''' (Account manager) — индивидуальная работа с ключевыми клиентами | ||
** Отдел продаж — поиск новых клиентов | **Отдел продаж (Sales)— поиск новых клиентов | ||
** Маркетинг — продвижение бренда компании и его IT продуктов | **Маркетинг (Marketing) — продвижение бренда компании и его IT продуктов, реклама | ||
* Продуктовый отдел (Product Management) — рост компании через улучшение выпускаемых IT продуктов и разработку новых | *Продуктовый отдел (Product Management) — рост компании через улучшение выпускаемых IT продуктов и разработку новых | ||
** Менеджер продукта (Product Manager) — отвечает за работу продуктовой команды и определяет стратегию развития продукта | **'''Менеджер продукта''' (Product Manager) — отвечает за работу продуктовой команды и определяет стратегию развития продукта | ||
** Продуктовый аналитик (Product Analyst / PA) — думает, как сделать хорошо пользователям продукта | **'''Продуктовый аналитик''' (Product Analyst / '''PA''') — думает, как сделать хорошо пользователям продукта | ||
** Системный аналитик (Systems Analyst) — формализует требования, пишет технические задания. | **'''Системный аналитик''' (Systems Analyst) — формализует требования, пишет технические задания. | ||
** UI / UX Дизайнер — создает визуальные прототипы продукта и сценарии взаимодействия | **'''UI / UX Дизайнер''' (User Interface / User Experience Designer) — создает визуальные прототипы продукта и сценарии взаимодействия | ||
** Владелец продукта (Product owner) — собирает итоговые задачи и приоритеты, делит их на проекты, передает их в работу в рамках методологии Agile | **'''Владелец продукта''' (Product owner / '''PO''') — собирает итоговые задачи и приоритеты, делит их на проекты, передает их в работу в рамках методологии Agile | ||
** Менеджер проекта (Project Manager / PM) — собирает команду для проекта и отвечает за его выполнение | **'''Менеджер проекта''' (Project Manager / '''PM''') — собирает команду для проекта и отвечает за его выполнение | ||
* Отдел разработки (Development) — отдел, где и работают разработчики (программисты) | *Отдел разработки (Development) — отдел, где и работают разработчики (программисты) | ||
** | **'''Главный разработчик''' (Principal Developer) — начальник всех разработчиков | ||
** Системный архитектор (System Architect) — отвечает за базовую архитектуру программного обеспечения | **'''Системный архитектор''' (System Architect) — отвечает за базовую архитектуру программного обеспечения | ||
** Тимлид (Development Team Lead) — руководит командой разработчиков | **'''Тимлид''' (Development Team Lead) — руководит командой разработчиков, проверяет результат работы (проводит ревью кода) | ||
** Разработчик (Developer) — | **'''Старший Разработчик''' (Senior Developer / Software engineer) — программирует сложные штуки, обучает новичков | ||
* Обеспечение качества (Quality Assurance / QA) | **'''Разработчик''' (Developer / Programmer) — программирует больше всех, решает основные задачи | ||
** Инженер по качеству (QA Engineer) — отвечает за качество в целом | **'''Младший Разработчик''' (Junior Developer / Coder) — обучается и решает простые задачи | ||
** Тестировщик (Tester) — проверяет наличие багов | *Обеспечение качества (Quality Assurance / '''QA''') | ||
** Инженер по автоматизации (Automation Engineer) — создает автотесты | **'''Инженер по качеству''' (QA Engineer) — отвечает за качество в целом | ||
** Тестер по производительности (Performance Tester) — проверяет, как хорошо приложения держат нагрузку | **'''Тестировщик''' (Tester) — проверяет наличие багов | ||
** Тестер по информационной безопасности (Security Tester) — тестирует приложения на проблемы по ИБ | **'''Инженер по автоматизации''' (Automation Engineer) — создает автотесты | ||
* DevOps — связующее звено между разработкой (Dev) и обслуживанием (Ops) | **'''Тестер по производительности''' (Performance Tester) — проверяет, как хорошо приложения держат нагрузку | ||
** Инженер по инфраструктуре (Infrastructure Engineer) — из набора серверов, сетей и сервисов проектирует единую надежную систему | **'''Тестер по информационной безопасности''' (Security Tester) — тестирует приложения на проблемы по ИБ | ||
** Инженер по надежности (Site Reliability Engineer / SRE) — отвечает за масштабируемость и высокую производительность приложений | *DevOps — связующее звено между разработкой (Dev) и обслуживанием (Ops) | ||
** Девопс инженер (DevOps Engineer) — отвечает за автоматизацию процессов сборки и доставки приложений на сервера | **'''Инженер по инфраструктуре''' (Infrastructure Engineer) — из набора серверов, сетей и сервисов проектирует единую надежную систему | ||
** Инженер по конфигурации (Configuration Management Engineer) — работает с ПО для управления параметрами приложений | **'''Инженер по надежности''' (Site Reliability Engineer / '''SRE''') — отвечает за масштабируемость и высокую производительность приложений | ||
** Релиз инженер (Release Engineer) — непосредственно запускает приложения в продакшн | **'''Девопс инженер''' (DevOps Engineer) — отвечает за автоматизацию процессов сборки и доставки приложений на сервера | ||
** Инженер по мониторингу и логам (Monitoring and Logging Engineer) — работает с ПО для отслеживания показателей работы приложений | **'''Инженер по конфигурации''' (Configuration Management Engineer) — работает с ПО для управления параметрами приложений | ||
* Эксплуатация (IT Operations) — обслуживание IT продукта, инфраструктуры и поддержка пользователей | **'''Релиз инженер''' (Release Engineer) — непосредственно запускает приложения в продакшн | ||
** Руководитель эксплуатации (IT Operations Manager) — руководитель направления. | **'''Инженер по мониторингу и логам''' (Monitoring and Logging Engineer) — работает с ПО для отслеживания показателей работы приложений | ||
** Менеджер внедрений (Implementation Manager) — отвечает за поставку продукта новым клиентам, первичную настройку и поддержку, обучение клиента | *Эксплуатация (IT Operations) — обслуживание IT продукта, инфраструктуры и поддержка пользователей | ||
** Специалист службы поддержки (Help Desk / Support Technician) — обработка входящих обращений от пользователей и решение простых проблем. | **'''Руководитель эксплуатации''' (IT Operations Manager) — руководитель направления. | ||
** Технический аналитик (Technical Analyst) — решает сложные технические и технологические проблемы | **'''Менеджер внедрений''' (Implementation Manager) — отвечает за поставку продукта новым клиентам, первичную настройку и поддержку, обучение клиента | ||
** Системное администрирование | **'''Специалист службы поддержки''' (Help Desk / Support Technician) — обработка входящих обращений от пользователей и решение простых проблем. | ||
*** Системный администратор (System Administrator) — установка, настройка и обслуживание ПО. | **'''Технический аналитик''' (Technical Analyst) — решает сложные технические и технологические проблемы | ||
*** Сетевой администратор (Network Administrator) — отвечает за сетевую инфраструктуру. | **Системное администрирование | ||
*** Database Administrator | ***'''Системный администратор''' (System Administrator) — установка, настройка и обслуживание ПО. | ||
*** BC/DR Специалист (Disaster Recovery / Business Continuity Specialist) — готовит планы аварийного восстановления и отвечает за бэкапы (резервные копии). | ***'''Сетевой администратор''' (Network Administrator) — отвечает за сетевую инфраструктуру. | ||
* Информационная безопасность (InfoSec) — защита от взломов и утечек данных | ***'''Администратор баз данных''' (Database Administrator / '''DBA''') — отвечает за работу баз данных. | ||
** Директор по ИБ (Chief Information Security Officer / CISO) — руководитель направления. | ***'''BC/DR Специалист''' (Disaster Recovery / Business Continuity Specialist) — готовит планы аварийного восстановления и отвечает за бэкапы (резервные копии). | ||
** Архитектор ИБ (Security Architect) — отвечает за стратегию, политики, процедуры. | *Информационная безопасность (InfoSec) — защита от взломов и утечек данных | ||
** Инженер ИБ (Security Engineer) — отвечает за внедрение инструментов обеспечения ИБ (сетевые экраны, антивирусы, системы обнаружения вторжений, системы шифрования данных) | **'''Директор по ИБ''' (Chief Information Security Officer / '''CISO''') — руководитель направления. | ||
** Аналитик ИБ (Security Analyst) — следит за ситуаций, документирует и разбирает инциденты | **'''Архитектор ИБ''' (Security Architect) — отвечает за стратегию, политики, процедуры. | ||
** Пентестер (Penetration Tester) — пытается всё сломать, чтобы проверить надежность | **'''Инженер ИБ''' (Security Engineer) — отвечает за внедрение инструментов обеспечения ИБ (сетевые экраны, антивирусы, системы обнаружения вторжений, системы шифрования данных) | ||
** Compliance Officer — | **'''Аналитик ИБ''' (Security Analyst) — следит за ситуаций, документирует и разбирает инциденты | ||
** Тренер по ИБ (Security Educator) — обучает всех в компании, как не косячить по ИБ | **'''Пентестер''' (Penetration Tester) — пытается всё сломать, чтобы проверить надежность | ||
* Финансовый отдел (Finance) — бухгалтеры, финансовые аналитики | **'''Комплаенс офицер''' (Compliance Officer) — контролирует выполнение международных стандартов по ИБ (GDPR, PCI DSS, ISO 27001) | ||
* Юридический отдел (Legal department) — юристы | **'''Тренер по ИБ''' (Security Educator) — обучает всех в компании, как не косячить по ИБ | ||
* Управление персоналом (Human Resources / HR) — найм сотрудников и удержание уже нанятых | *Финансовый отдел (Finance) — бухгалтеры, финансовые аналитики | ||
*Юридический отдел (Legal department) — юристы | |||
*Управление персоналом (Human Resources / '''HR''') — найм сотрудников и удержание уже нанятых | |||
===Как устроиться на работу в IT компанию=== | |||
Рекомендации: | |||
=== Как | |||
#Определите интересные для вас предметные области, например: финансы, туризм, компьютерные игры. | |||
#Определите интересные и подходящие для вас направления работы: программирование, тестирование, аналитика, менеджмент и т.п. | |||
#Найдите вакансии IT компаний, которые соответствуют вашим навыкам, интересам и опыту, изучите требования. | |||
#Пройдите базовое или дополнительное обучение по выбранному направлению, самостоятельно или с помощью курсов. | |||
#Налаживайте полезные связи — общайтесь на форумах и чатах. Посещайте тематические мероприятия. | |||
#Обновите свое резюме, чтобы оно соответствовало требованиям интересующих вас IT-компаний, укажите свой опыт и навыки. | |||
#Разместите свое резюме на сайтах поисков работы и откликайтесь на вакансии. Обязательно заполняйте к отклику сопроводительное письмо. | |||
#Подготовьтесь к собеседованию: изучите информацию о компании, попрактикуйтесь в ответах на общие вопросы, будьте готовы ответить на технические вопросы. | |||
#Пройдите собеседование и получите предложение о трудоустройстве. | |||
#Продолжайте обучаться для дальнейшего карьерного роста. | |||
[[Категория:Информационные технологии]] | |||
[[Категория: |
Текущая версия от 14:40, 11 февраля 2023
Разработка программного обеспечения — это производство программ для компьютеров как продуктов полностью готовых к использованию. Могут предназначаться для внутреннего использования или для внешнего заказчика, для перепродажи или для бесплатного распространения.
Объясните простыми словами, пожалуйста[править | править код]
Почему программистов называют разработчиками? 🤔
Это слова часто используют вместе, но это не совсем одно и то же. В разработке современных качественных приложений только программирования недостаточно. Это сложный процесс и со стороны упрощенно выглядит так: несколько человек собираются вместе, начинают спорить и ругаться, а в перерывах стучат по клавиатурам. Это может длиться месяцами и годами. И в результате всего этого компьютеры начинают делать то, что раньше не делали, или начинают делать что-то лучше.
Название для этого странного процесса искали долго и по всему миру. В итоге нашлось хорошее, изначально французское слово «разворот», давно позаимствованное в английский и дополненное смыслами. Development — это рост и развитие, раскрытие потенциала. В русском языке слово девелопмент уже заняли за собой строители, поэтому довольствуемся скромным «разработка» 🤷
Разработка программного обеспечения похожа на издательство, читатели продукции которого не люди, а привередливые компьютеры. Некоторые издательства выпускают регулярные журналы по определенному графику. Некоторые выпускают редко, но большие издания. Профессиональный писатель (программист) в таком издательстве — это журналист (разработчик), готовый написать текст (программу) на любую сложную и незнакомую тему, погрузившись в неё с головой.
Что объединяет журналистов и разработчиков программ?
- ⚒️ Они должны использовать профессиональные инструменты индивидуальной и командной работы.
- 🚯 Они должны соблюдать производственные стандарты.
- 👪 Они должны эффективно работать в команде по правилам (методологиям).
- 📅 Они должны понимать, что делает и зачем. Работать на результат и соблюдать сроки.
- 💎 Они должны писать качественно, простым понятным языком.
- 🚑 Они должны помогать коллегам.
- 🫡 Они должны выполнять требования редактора (руководителя проекта).
Разработка больших и важных приложений требует участия большого количество людей и все они заняты не только программированием. Менеджеры, дизайнеры, аналитики, тестировщики, системные администраторы и другие специалисты вносят огромный вклад в конечный результат. К сожалению, про них часто и несправедливо забывают, называя разработчиками только программистов 😒
Но никто не обижается 😅
А если серьезно[править | править код]
Из чего состоит разработка ПО[править | править код]
Программирование — только одна из составляющих частей процесса разработки ПО, наряду со сбором требований, проектированием, тестированием, документированием и сопровождением:
- Идея — с чего всё начинается. Обычно это предложение по решению конкретной проблемы.
- Продуктовый анализ — создание концепта: определение характеристик, анализ конкурентов, опросы пользователей.
- Финансовый анализ — оценка экономических показателей: расходов, доходов, период окупаемости, оценка рисков.
- Системный анализ — сбор всех требований и их документирование в виде технического задания.
- Проектирование — создание проекта: проработка дизайна, выбор технологий и инструментов. Для сложных проектов прорабатываются модели процессов и модели данных.
- Планирование — финальная оценка трудозатрат и календарных сроков.
- Программирование — написание исходного кода программ на определенных языках программирования.
- Код-ревью (code review) — проверка исходного кода программы другим более опытным разработчиком.
- Тестирование — проверка, что программа удовлетворяет требованиям. В крупных компаниях, тестирование является частью отдельного направления контроля качества (QA).
- Документирование — состоит из документирования исходного кода, документирования API (описания того как программа будет взаимодействовать с другими программами), подготовки документации для пользователей.
- Релиз (release) — «запуск в печать». Доставка приложения или результатов его работы конечным пользователям.
- Маркетинговые мероприятия и запуск рекламы.
- Продажи и внедрения.
- Сопровождение — техническая поддержка, обслуживание, исправление багов и доработки.
Кто участвует в разработке ПО[править | править код]
Набор необходимых специалистов отличается от проекта к проекту. Но можно выделить такие основные направления:
- Менеджеры — отвечают за организацию процессов
- Коммерсанты — отвечают за продажи и удержание клиентов
- Аналитики — решают сложные проблемы
- Разработчики — программируют
- Тестировщики — тестируют
- Сисадмины — обслуживают
Пример структуры IT-компании среднего размера:
Структура IT компаний может сильно различаться в зависимости от размера, предметной области работы, количества клиентов. Здесь показан пример усредненный продуктовой IT компании, то есть компании, самостоятельно разрабатывающей и обслуживающей приложения для решения определенных задач.
- Ключевые директора (Executive team)
- Генеральный директор (Chief Executive Officer / CEO) — главный босс
- Операционный директор (Chief Operating Officer / COO) — налаживает взаимодействие между отделами
- Финансовый директор (Chief Financial Officer / CFO) — отвечает за то, чтобы у компании не закончились внезапно деньги
- Технический директор (Chief Technology Officer / CTO) — главный по IT
- Отдел развития бизнеса (Business development / BD) — глобальная стратегия и планы развития компании
- Бизнес-аналитика (Business Intelligence / BI)
- Аналитик данных (Data Analyst) — извлекает из «бесполезных» данных полезный результат, который используется другими специалистами
- Другие отделы, отвечающие за стратегические партнерства, планирования, анализ процессов внутри компании
- Бизнес аналитики, координаторы и прочие менеджеры — делают компанию лучше и эффективнее
- Бизнес-аналитика (Business Intelligence / BI)
- Коммерческий отдел (Commercial department) — увеличение доходов, работа с клиентами
- Обслуживание клиентов (Customer Service) — работа на удержание клиентов
- Аккаунт менеджер (Account manager) — индивидуальная работа с ключевыми клиентами
- Отдел продаж (Sales)— поиск новых клиентов
- Маркетинг (Marketing) — продвижение бренда компании и его IT продуктов, реклама
- Обслуживание клиентов (Customer Service) — работа на удержание клиентов
- Продуктовый отдел (Product Management) — рост компании через улучшение выпускаемых IT продуктов и разработку новых
- Менеджер продукта (Product Manager) — отвечает за работу продуктовой команды и определяет стратегию развития продукта
- Продуктовый аналитик (Product Analyst / PA) — думает, как сделать хорошо пользователям продукта
- Системный аналитик (Systems Analyst) — формализует требования, пишет технические задания.
- UI / UX Дизайнер (User Interface / User Experience Designer) — создает визуальные прототипы продукта и сценарии взаимодействия
- Владелец продукта (Product owner / PO) — собирает итоговые задачи и приоритеты, делит их на проекты, передает их в работу в рамках методологии Agile
- Менеджер проекта (Project Manager / PM) — собирает команду для проекта и отвечает за его выполнение
- Отдел разработки (Development) — отдел, где и работают разработчики (программисты)
- Главный разработчик (Principal Developer) — начальник всех разработчиков
- Системный архитектор (System Architect) — отвечает за базовую архитектуру программного обеспечения
- Тимлид (Development Team Lead) — руководит командой разработчиков, проверяет результат работы (проводит ревью кода)
- Старший Разработчик (Senior Developer / Software engineer) — программирует сложные штуки, обучает новичков
- Разработчик (Developer / Programmer) — программирует больше всех, решает основные задачи
- Младший Разработчик (Junior Developer / Coder) — обучается и решает простые задачи
- Обеспечение качества (Quality Assurance / QA)
- Инженер по качеству (QA Engineer) — отвечает за качество в целом
- Тестировщик (Tester) — проверяет наличие багов
- Инженер по автоматизации (Automation Engineer) — создает автотесты
- Тестер по производительности (Performance Tester) — проверяет, как хорошо приложения держат нагрузку
- Тестер по информационной безопасности (Security Tester) — тестирует приложения на проблемы по ИБ
- DevOps — связующее звено между разработкой (Dev) и обслуживанием (Ops)
- Инженер по инфраструктуре (Infrastructure Engineer) — из набора серверов, сетей и сервисов проектирует единую надежную систему
- Инженер по надежности (Site Reliability Engineer / SRE) — отвечает за масштабируемость и высокую производительность приложений
- Девопс инженер (DevOps Engineer) — отвечает за автоматизацию процессов сборки и доставки приложений на сервера
- Инженер по конфигурации (Configuration Management Engineer) — работает с ПО для управления параметрами приложений
- Релиз инженер (Release Engineer) — непосредственно запускает приложения в продакшн
- Инженер по мониторингу и логам (Monitoring and Logging Engineer) — работает с ПО для отслеживания показателей работы приложений
- Эксплуатация (IT Operations) — обслуживание IT продукта, инфраструктуры и поддержка пользователей
- Руководитель эксплуатации (IT Operations Manager) — руководитель направления.
- Менеджер внедрений (Implementation Manager) — отвечает за поставку продукта новым клиентам, первичную настройку и поддержку, обучение клиента
- Специалист службы поддержки (Help Desk / Support Technician) — обработка входящих обращений от пользователей и решение простых проблем.
- Технический аналитик (Technical Analyst) — решает сложные технические и технологические проблемы
- Системное администрирование
- Системный администратор (System Administrator) — установка, настройка и обслуживание ПО.
- Сетевой администратор (Network Administrator) — отвечает за сетевую инфраструктуру.
- Администратор баз данных (Database Administrator / DBA) — отвечает за работу баз данных.
- BC/DR Специалист (Disaster Recovery / Business Continuity Specialist) — готовит планы аварийного восстановления и отвечает за бэкапы (резервные копии).
- Информационная безопасность (InfoSec) — защита от взломов и утечек данных
- Директор по ИБ (Chief Information Security Officer / CISO) — руководитель направления.
- Архитектор ИБ (Security Architect) — отвечает за стратегию, политики, процедуры.
- Инженер ИБ (Security Engineer) — отвечает за внедрение инструментов обеспечения ИБ (сетевые экраны, антивирусы, системы обнаружения вторжений, системы шифрования данных)
- Аналитик ИБ (Security Analyst) — следит за ситуаций, документирует и разбирает инциденты
- Пентестер (Penetration Tester) — пытается всё сломать, чтобы проверить надежность
- Комплаенс офицер (Compliance Officer) — контролирует выполнение международных стандартов по ИБ (GDPR, PCI DSS, ISO 27001)
- Тренер по ИБ (Security Educator) — обучает всех в компании, как не косячить по ИБ
- Финансовый отдел (Finance) — бухгалтеры, финансовые аналитики
- Юридический отдел (Legal department) — юристы
- Управление персоналом (Human Resources / HR) — найм сотрудников и удержание уже нанятых
Как устроиться на работу в IT компанию[править | править код]
Рекомендации:
- Определите интересные для вас предметные области, например: финансы, туризм, компьютерные игры.
- Определите интересные и подходящие для вас направления работы: программирование, тестирование, аналитика, менеджмент и т.п.
- Найдите вакансии IT компаний, которые соответствуют вашим навыкам, интересам и опыту, изучите требования.
- Пройдите базовое или дополнительное обучение по выбранному направлению, самостоятельно или с помощью курсов.
- Налаживайте полезные связи — общайтесь на форумах и чатах. Посещайте тематические мероприятия.
- Обновите свое резюме, чтобы оно соответствовало требованиям интересующих вас IT-компаний, укажите свой опыт и навыки.
- Разместите свое резюме на сайтах поисков работы и откликайтесь на вакансии. Обязательно заполняйте к отклику сопроводительное письмо.
- Подготовьтесь к собеседованию: изучите информацию о компании, попрактикуйтесь в ответах на общие вопросы, будьте готовы ответить на технические вопросы.
- Пройдите собеседование и получите предложение о трудоустройстве.
- Продолжайте обучаться для дальнейшего карьерного роста.