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

Переработка страницы, начало
(Адаптация)
(Переработка страницы, начало)
Строка 5: Строка 5:
Почему программистов называют разработчиками? 🤔
Почему программистов называют разработчиками? 🤔


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


Название для этого '''странного''' процесса искали долго и по всему миру. В итоге нашлось хорошее, изначально французское слово «'''разворот'''», давно позаимствованное в английский и дополненное смыслами. '''Development''' — это рост и развитие, '''раскрытие''' потенциала. В русском языке слово девелопмент уже заняли за собой строители, поэтому довольствуемся скромным «разработка» 🤷
Название для этого '''странного''' процесса искали долго и по всему миру. В итоге нашлось хорошее, изначально французское слово «'''разворот'''», давно позаимствованное в английский и дополненное смыслами. '''Development''' — это рост и развитие, '''раскрытие''' потенциала. В русском языке слово девелопмент уже заняли за собой строители, поэтому довольствуемся скромным «разработка» 🤷


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


Что объединяет журналистов и разработчиков программ?
Что объединяет журналистов и разработчиков программ?
Строка 21: Строка 21:
* 🫡 Они должны выполнять требования ''редактора'' (руководителя проекта).
* 🫡 Они должны выполнять требования ''редактора'' (руководителя проекта).


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


== А если серьезно ==
== А если серьезно ==
Строка 39: Строка 39:
* Релиз (release) — «запуск в печать». Доставка приложения или результатов его работы конечным пользователям.
* Релиз (release) — «запуск в печать». Доставка приложения или результатов его работы конечным пользователям.
* Сопровождение — исправление багов и доработки.
* Сопровождение — исправление багов и доработки.
=== Кто участвует в разработке ПО ===
Набор необходимых специалистов отличается от проекта к проекту. Но можно выделить такие основные направления:
* Ключевые директора (Executive team)
** Генеральный директор (Chief Executive Officer / CEO)
** Операционный директор (Chief Operating Officer / COO)
** Финансовый директор (Chief Financial Officer / CFO)
** Технический директор (Chief Technology Officer / CTO)
* Отдел развития бизнеса (Business development / BD) — глобальная стратегия и планы развития компании
** Бизнес-аналитика (Business Intelligence / BI)
*** Аналитик данных (Data Analyst) — извлекает из «бесполезных» данных полезный результат, который используется другими специалистами
** Другие отделы, отвечающие за стратегические партнерства, планирования, анализ процессов внутри компании
*** Бизнес аналитики, менеджеры, координаторы — работают над тем, как сделать хорошо компании
* Коммерческий отдел (Commercial department) или — увеличение доходов, работа с клиентами
** Обслуживание клиентов (Customer Service)
*** Аккаунт менеджер — индивидуальная работа с ключевыми клиентами
** Отдел продаж — поиск новых клиентов
** Маркетинг — продвижение бренда компании и его IT продуктов
* Продуктовый отдел (Product Management) — рост компании через улучшение выпускаемых IT продуктов и разработку новых
** Менеджер продукта (Product Manager) — отвечает за работу продуктовой команды и определяет стратегию развития продукта
** Продуктовый аналитик (Product Analyst / PA) — думает, как сделать хорошо пользователям продукта
** Системный аналитик (Systems Analyst) — формализует требования, пишет технические задания.
** UI / UX Дизайнер — создает визуальные прототипы продукта и сценарии взаимодействия
** Владелец продукта (Product owner) — собирает итоговые задачи и приоритеты, делит их на проекты, передает их в работу в рамках методологии Agile
** Менеджер проекта (Project Manager / PM) — собирает команду для проекта и отвечает за его выполнение
* Отдел разработки (Development) — отдел, где и работают разработчики (программисты)
** Руководитель отдела (Development Director)
** Системный архитектор (System Architect) — отвечает за базовую архитектуру программного обеспечения
** Тимлид (Development Team Lead)
** Разработчик (Developer)
* Обеспечение качества (Quality Assurance / QA)
** Инженер по качеству (QA Engineer)
** Тестировщик (Tester)
** Инженер по автоматизации (Automation Engineer)
** Тестер по производительности (Performance Tester)
** Тестер по информационной безопасности (Security Tester)
* DevOps
** DevOps Engineer
** Release Engineer
** Site Reliability Engineer (SRE)
** Infrastructure Engineer
** Configuration Management Engineer
** Monitoring and Logging Engineer
* Эксплуатация (IT Operations) — обслуживание IT продукта, инфраструктуры и поддержка пользователей
** Руководитель эксплуатации (IT Operations Manager) — руководитель направления.
** Отдел внедрений (Implementation Department) — отвечает за поставку продукта новым клиентам, первичную настройку и поддержку, обучение клиента
** Служба поддержки
*** Специалист службы поддержки (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)
* Управление персоналом (Human Resources / HR)


=== Как стать разработчиком ===
=== Как стать разработчиком ===