Перейти к содержанию

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

м
нет описания правки
(Тестирование изображений)
мНет описания правки
 
(не показано 5 промежуточных версий этого же участника)
Строка 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''' — это рост и развитие, '''раскрытие''' потенциала. В русском языке слово девелопмент уже заняли за собой строители, поэтому довольствуемся скромным «разработка» 🤷
Строка 21: Строка 21:
*🫡 Они должны выполнять требования ''редактора'' (руководителя проекта).
*🫡 Они должны выполнять требования ''редактора'' (руководителя проекта).


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


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


===Из чего состоит разработка ПО ===
===Из чего состоит разработка ПО ===
Программирование — только одна из составляющих частей процесса разработки ПО, наряду со сбором требований, проектированием, тестированием, документированием и сопровождением.
 
[[Файл:Software development projects, wmcon14 berlin.jpg|мини|200px|Разработчики на совещании]]
 
Программирование — только одна из составляющих частей процесса разработки ПО, наряду со сбором требований, проектированием, тестированием, документированием и сопровождением:


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


===Кто участвует в разработке ПО===
===Кто участвует в разработке ПО===
Строка 64: Строка 72:
**Другие отделы, отвечающие за стратегические партнерства, планирования, анализ процессов внутри компании
**Другие отделы, отвечающие за стратегические партнерства, планирования, анализ процессов внутри компании
***'''Бизнес аналитики, координаторы и прочие менеджеры''' — делают компанию лучше и эффективнее
***'''Бизнес аналитики, координаторы и прочие менеджеры''' — делают компанию лучше и эффективнее
*Коммерческий отдел (Commercial department) или — увеличение доходов, работа с клиентами
*Коммерческий отдел (Commercial department) — увеличение доходов, работа с клиентами
**Обслуживание клиентов (Customer Service) — работа на удержание клиентов
**Обслуживание клиентов (Customer Service) — работа на удержание клиентов
***'''Аккаунт менеджер''' (Account manager) — индивидуальная работа с ключевыми клиентами
***'''Аккаунт менеджер''' (Account manager) — индивидуальная работа с ключевыми клиентами
**Отдел продаж (Sales)— поиск новых клиентов
**Отдел продаж (Sales)— поиск новых клиентов
**Маркетинг (Marketing) — продвижение бренда компании и его IT продуктов
**Маркетинг (Marketing) — продвижение бренда компании и его IT продуктов, реклама
*Продуктовый отдел (Product Management) — рост компании через улучшение выпускаемых IT продуктов и разработку новых
*Продуктовый отдел (Product Management) — рост компании через улучшение выпускаемых IT продуктов и разработку новых
**'''Менеджер продукта''' (Product Manager) — отвечает за работу продуктовой команды и определяет стратегию развития продукта
**'''Менеджер продукта''' (Product Manager) — отвечает за работу продуктовой команды и определяет стратегию развития продукта