Разработка программного обеспечения: различия между версиями

Тестирование изображений
(Тестирование изображений)
Метка: ручная отмена
(Тестирование изображений)
Строка 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|мини|200x200пкс|Разработчики выкатывают приложение в продакшн]]
Почему программистов называют разработчиками? 🤔
Почему программистов называют разработчиками? 🤔


Строка 13: Строка 13:
Что объединяет журналистов и разработчиков программ?
Что объединяет журналистов и разработчиков программ?


* ⚒️ Они должны использовать профессиональные инструменты индивидуальной и командной работы.
*⚒️ Они должны использовать профессиональные инструменты индивидуальной и командной работы.
* 🚯 Они должны соблюдать производственные стандарты.
*🚯 Они должны соблюдать производственные стандарты.
* 👪 Они должны эффективно работать в команде по правилам (методологиям).
*👪 Они должны эффективно работать в команде по правилам (методологиям).
* 📅 Они должны понимать, что делает и зачем. Работать на результат и соблюдать сроки.
*📅 Они должны понимать, что делает и зачем. Работать на результат и соблюдать сроки.
* 💎 Они должны ''писать'' качественно, простым понятным языком.
*💎 Они должны ''писать'' качественно, простым понятным языком.
* 🚑 Они должны помогать коллегам.
*🚑 Они должны помогать коллегам.
* 🫡 Они должны выполнять требования ''редактора'' (руководителя проекта).
*🫡 Они должны выполнять требования ''редактора'' (руководителя проекта).


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


== А если серьезно ==
==А если серьезно==


=== Из чего состоит разработка ПО ===
===Из чего состоит разработка ПО ===
Программирование — только одна из составляющих частей процесса разработки ПО, наряду со сбором требований, проектированием, тестированием, документированием и сопровождением.
Программирование — только одна из составляющих частей процесса разработки ПО, наряду со сбором требований, проектированием, тестированием, документированием и сопровождением.


* Идея — с чего всё начинается. Обычно это предложение по решению конкретной проблемы.
*Идея — с чего всё начинается. Обычно это предложение по решению конкретной проблемы.
* Продуктовый анализ — это проверка идеи на адекватность: анализ конкурентов, опросы пользователей, оценка экономических показателей (затраты, прибыль и т.п.).
*Продуктовый анализ — это проверка идеи на адекватность: анализ конкурентов, опросы пользователей, оценка экономических показателей (затраты, прибыль и т.п.).
* Системный анализ — сбор требований и их документирование в виде технического задания.
*Системный анализ — сбор требований и их документирование в виде технического задания.
* Проектирование — один из важнейших этапов, здесь происходит выбор технологий и инструментов. Прорабатываются модели процессов и модели данных.
*Проектирование — один из важнейших этапов, здесь происходит выбор технологий и инструментов. Прорабатываются модели процессов и модели данных.
* Планирование — оценка трудозатрат и календарных сроков.
*Планирование — оценка трудозатрат и календарных сроков.
* Программирование — написание исходного кода программ на определенных языках программирования.
*Программирование — написание исходного кода программ на определенных языках программирования.
* Код-ревью (code review) — проверка исходного кода программы другим более опытным разработчиком.
*Код-ревью (code review) — проверка исходного кода программы другим более опытным разработчиком.
* Тестирование — проверка, что программа удовлетворяет требованиям. В крупных компаниях, тестирование является частью отдельного направления контроля качества (QA)
*Тестирование — проверка, что программа удовлетворяет требованиям. В крупных компаниях, тестирование является частью отдельного направления контроля качества (QA)
* Документирование — состоит из документирования исходного кода, документирования API (описания того как программа будет взаимодействовать с другими программами), подготовки документации для пользователей
*Документирование — состоит из документирования исходного кода, документирования API (описания того как программа будет взаимодействовать с другими программами), подготовки документации для пользователей
* Релиз (release) — «запуск в печать». Доставка приложения или результатов его работы конечным пользователям.
*Релиз (release) — «запуск в печать». Доставка приложения или результатов его работы конечным пользователям.
* Сопровождение — исправление багов и доработки.
*Сопровождение — исправление багов и доработки.


=== Кто участвует в разработке ПО ===
===Кто участвует в разработке ПО===
Набор необходимых специалистов отличается от проекта к проекту. Но можно выделить такие основные направления:
Набор необходимых специалистов отличается от проекта к проекту. Но можно выделить такие основные направления:


* Менеджеры — отвечают за организацию процессов
*Менеджеры — отвечают за организацию процессов
* Коммерсанты — отвечают за продажи и удержание клиентов
*Коммерсанты — отвечают за продажи и удержание клиентов
* Аналитики — решают сложные проблемы
*Аналитики — решают сложные проблемы
* Разработчики — программируют
*Разработчики — программируют
* Тестировщики — тестируют
* Тестировщики — тестируют
* Сисадмины — обслуживают
*Сисадмины — обслуживают


Пример структуры IT-компании среднего размера:
Пример структуры IT-компании среднего размера:
Строка 59: Строка 59:
**'''Финансовый директор''' (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) — извлекает из «бесполезных» данных полезный результат, который используется другими специалистами
Строка 65: Строка 65:
***'''Бизнес аналитики, координаторы и прочие менеджеры''' — делают компанию лучше и эффективнее
***'''Бизнес аналитики, координаторы и прочие менеджеры''' — делают компанию лучше и эффективнее
*Коммерческий отдел (Commercial department) или — увеличение доходов, работа с клиентами
*Коммерческий отдел (Commercial department) или — увеличение доходов, работа с клиентами
** Обслуживание клиентов (Customer Service) — работа на удержание клиентов
**Обслуживание клиентов (Customer Service) — работа на удержание клиентов
***'''Аккаунт менеджер''' (Account manager) — индивидуальная работа с ключевыми клиентами
***'''Аккаунт менеджер''' (Account manager) — индивидуальная работа с ключевыми клиентами
**Отдел продаж (Sales)— поиск новых клиентов
**Отдел продаж (Sales)— поиск новых клиентов
Строка 90: Строка 90:
**'''Тестер по информационной безопасности''' (Security Tester) — тестирует приложения на проблемы по ИБ
**'''Тестер по информационной безопасности''' (Security Tester) — тестирует приложения на проблемы по ИБ
*DevOps — связующее звено между разработкой (Dev) и обслуживанием (Ops)
*DevOps — связующее звено между разработкой (Dev) и обслуживанием (Ops)
** '''Инженер по инфраструктуре''' (Infrastructure Engineer) — из набора серверов, сетей и сервисов проектирует единую надежную систему
**'''Инженер по инфраструктуре''' (Infrastructure Engineer) — из набора серверов, сетей и сервисов проектирует единую надежную систему
**'''Инженер по надежности''' (Site Reliability Engineer / '''SRE''') — отвечает за масштабируемость и высокую производительность приложений
**'''Инженер по надежности''' (Site Reliability Engineer / '''SRE''') — отвечает за масштабируемость и высокую производительность приложений
** '''Девопс инженер''' (DevOps Engineer) — отвечает за автоматизацию процессов сборки и доставки приложений на сервера
**'''Девопс инженер''' (DevOps Engineer) — отвечает за автоматизацию процессов сборки и доставки приложений на сервера
**'''Инженер по конфигурации''' (Configuration Management Engineer) — работает с ПО для управления параметрами приложений
**'''Инженер по конфигурации''' (Configuration Management Engineer) — работает с ПО для управления параметрами приложений
**'''Релиз инженер''' (Release Engineer) — непосредственно запускает приложения в продакшн
**'''Релиз инженер''' (Release Engineer) — непосредственно запускает приложения в продакшн
Строка 100: Строка 100:
**'''Менеджер внедрений''' (Implementation Manager) — отвечает за поставку продукта новым клиентам, первичную настройку и поддержку, обучение клиента
**'''Менеджер внедрений''' (Implementation Manager) — отвечает за поставку продукта новым клиентам, первичную настройку и поддержку, обучение клиента
**'''Специалист службы поддержки''' (Help Desk / Support Technician) — обработка входящих обращений от пользователей и решение простых проблем.
**'''Специалист службы поддержки''' (Help Desk / Support Technician) — обработка входящих обращений от пользователей и решение простых проблем.
** '''Технический аналитик''' (Technical Analyst) — решает сложные технические и технологические проблемы
**'''Технический аналитик''' (Technical Analyst) — решает сложные технические и технологические проблемы
**Системное администрирование
**Системное администрирование
***'''Системный администратор''' (System Administrator) — установка, настройка и обслуживание ПО.
***'''Системный администратор''' (System Administrator) — установка, настройка и обслуживание ПО.
Строка 107: Строка 107:
***'''BC/DR Специалист''' (Disaster Recovery / Business Continuity Specialist) — готовит планы аварийного восстановления и отвечает за бэкапы (резервные копии).
***'''BC/DR Специалист''' (Disaster Recovery / Business Continuity Specialist) — готовит планы аварийного восстановления и отвечает за бэкапы (резервные копии).
*Информационная безопасность (InfoSec) — защита от взломов и утечек данных
*Информационная безопасность (InfoSec) — защита от взломов и утечек данных
** '''Директор по ИБ''' (Chief Information Security Officer / '''CISO''') — руководитель направления.
**'''Директор по ИБ''' (Chief Information Security Officer / '''CISO''') — руководитель направления.
**'''Архитектор ИБ''' (Security Architect) — отвечает за стратегию, политики, процедуры.
**'''Архитектор ИБ''' (Security Architect) — отвечает за стратегию, политики, процедуры.
**'''Инженер ИБ''' (Security Engineer) — отвечает за внедрение инструментов обеспечения ИБ (сетевые экраны, антивирусы, системы обнаружения вторжений, системы шифрования данных)
**'''Инженер ИБ''' (Security Engineer) — отвечает за внедрение инструментов обеспечения ИБ (сетевые экраны, антивирусы, системы обнаружения вторжений, системы шифрования данных)
Строка 120: Строка 120:
Рекомендации:  
Рекомендации:  


# Определите интересные для вас предметные области, например: финансы, туризм, компьютерные игры.
#Определите интересные для вас предметные области, например: финансы, туризм, компьютерные игры.
# Определите интересные и подходящие для вас направления работы: программирование, тестирование, аналитика, менеджмент и т.п.
#Определите интересные и подходящие для вас направления работы: программирование, тестирование, аналитика, менеджмент и т.п.
# Найдите вакансии IT компаний, которые соответствуют вашим навыкам, интересам и опыту, изучите требования.
#Найдите вакансии IT компаний, которые соответствуют вашим навыкам, интересам и опыту, изучите требования.
# Пройдите базовое или дополнительное обучение по выбранному направлению, самостоятельно или с помощью курсов.
#Пройдите базовое или дополнительное обучение по выбранному направлению, самостоятельно или с помощью курсов.
# Налаживайте полезные связи — общайтесь на форумах и чатах. Посещайте тематические мероприятия.
#Налаживайте полезные связи — общайтесь на форумах и чатах. Посещайте тематические мероприятия.
# Обновите свое резюме, чтобы оно соответствовало требованиям интересующих вас IT-компаний, укажите свой опыт и навыки.
#Обновите свое резюме, чтобы оно соответствовало требованиям интересующих вас IT-компаний, укажите свой опыт и навыки.
# Разместите свое резюме на сайтах поисков работы и откликайтесь на вакансии. Обязательно заполняйте к отклику сопроводительное письмо.
#Разместите свое резюме на сайтах поисков работы и откликайтесь на вакансии. Обязательно заполняйте к отклику сопроводительное письмо.
# Подготовьтесь к собеседованию: изучите информацию о компании, попрактикуйтесь в ответах на общие вопросы, будьте готовы ответить на технические вопросы.
#Подготовьтесь к собеседованию: изучите информацию о компании, попрактикуйтесь в ответах на общие вопросы, будьте готовы ответить на технические вопросы.
# Пройдите собеседование и получите предложение о трудоустройстве.
#Пройдите собеседование и получите предложение о трудоустройстве.
# Продолжайте обучаться для дальнейшего карьерного роста.
#Продолжайте обучаться для дальнейшего карьерного роста.
[[Категория:Информационные технологии]]
[[Категория:Информационные технологии]]