1. Основы разработки ПО: переход от строительных процессов к SDLC и методологиям Agile
Основы разработки ПО: переход от строительных процессов к SDLC и методологиям Agile
Приветствую, коллега! Если вы читаете этот курс, значит, вы решили сменить каску и чертежи в AutoCAD на ноутбук и диаграммы в Jira. Как инженер ПТО (производственно-технического отдела), вы уже обладаете системным мышлением, умеете работать с документацией и понимаете, что такое сроки и бюджет. Это отличный фундамент.
В строительстве цена ошибки колоссальна: если фундамент залит неправильно, здание может рухнуть. В IT «материал» — это код, он пластичен. Однако без правильной организации процесса (менеджмента) даже самый лучший код превратится в долгострой, который никому не нужен.
Сегодня мы разберем, как создается программное обеспечение, чем это похоже на стройку, и углубимся в тему API, которую вы сейчас изучаете.
Жизненный цикл разработки ПО (SDLC)
В строительстве есть четкие этапы: Изыскания Проектирование (Стадия П, Стадия Р) СМР (Строительно-монтажные работы) Сдача в эксплуатацию. В IT это называется SDLC (Software Development Life Cycle) — жизненный цикл разработки ПО.
Давайте проведем параллели:
| Этап в строительстве | Этап в SDLC | Роль аналитика | | :--- | :--- | :--- | | ТЗ от Заказчика / ГПЗУ | Planning (Планирование) | Сбор верхнеуровневых требований, определение целей бизнеса. | | Проектирование (Стадия П) | Analysis (Анализ) | Написание ТЗ, спецификаций, User Stories. Это ваша главная работа. | | Проектирование (Стадия Р) | Design (Дизайн архитектуры) | Проектирование структуры БД, макетов интерфейсов, API. | | СМР (Стройка) | Implementation (Разработка) | Консультация разработчиков, уточнение требований. | | Технадзор / Лаборатория | Testing (Тестирование) | Приемка функционала, проверка соответствия требованиям. | | Сдача объекта / КС-14 | Deployment (Внедрение) | Демонстрация продукта заказчику, обучение пользователей. | | Эксплуатация | Maintenance (Поддержка) | Анализ ошибок, сбор пожеланий на доработку. |
!Сравнение этапов строительства здания и разработки программного обеспечения
Как видите, структура процессов очень похожа. Ваша задача как аналитика — быть связующим звеном между «Заказчиком» (бизнесом) и «Прорабами/Рабочими» (разработчиками).
Методологии: Waterfall vs Agile
В ПТО вы привыкли работать по Waterfall (Каскадная модель). Сначала полностью утверждается проект, потом смета, потом начинается стройка. Нельзя начать класть крышу, пока не готов фундамент. Нельзя внезапно решить добавить еще 5 этажей, когда здание уже построено.
Плюсы Waterfall: * Четкие сроки и бюджет. * Понятная документация.
Минусы Waterfall: * Долгое время до получения результата. * Высокая цена ошибки на ранних стадиях.
В IT часто используется Agile (Гибкая методология). Представьте, что вы строите не дом, а модульный городок. Заказчик хочет жить там уже через 2 недели. Вы строите сначала одну бытовку (MVP — минимально жизнеспособный продукт), заселяете его. Потом пристраиваете кухню. Потом меняете бытовку на коттедж.
Основные принципы Agile:
В рамках Agile самой популярной методикой является Scrum. Работа делится на короткие отрезки — Спринты (обычно 2 недели). В конце каждого спринта команда выдает готовый кусочек продукта.
Для оценки трудозатрат в Agile часто используют не человеко-часы, а относительные единицы (Story Points). Это похоже на то, как в сметах используют коэффициенты сложности.
Формула расчета производительности команды (Velocity) выглядит так:
Где — средняя скорость команды (Velocity), — сумма Story Points, закрытых в -ом спринте, а — количество прошедших спринтов. Эта метрика помогает прогнозировать, сколько работы команда сможет выполнить в будущем.
API: Ваши «Инженерные сети» в IT
Вы упомянули, что сейчас проходите тему API. Для инженера ПТО это одна из самых понятных тем, если подобрать правильную аналогию.
API (Application Programming Interface) — это программный интерфейс приложения. Это набор правил, по которым одна программа общается с другой.
Аналогия с инженерными сетями
Представьте, что вы строите жилой комплекс. Чтобы в доме была вода, вам нужно подключиться к городскому водоканалу. * Вы не знаете, как устроены насосы на станции водоканала (вам это и не нужно). * Вам нужно Техническое Условие (ТУ): диаметр трубы, давление, точка врезки.В IT: * Ваше приложение (Дом) хочет получить данные о погоде (Воду). * Сервис погоды (Водоканал) предоставляет API (Точку врезки). * Документация API (ТУ) описывает, как именно нужно запросить данные.
!Визуальная метафора работы API как инженерного подключения
Как это работает технически: Клиент-Серверная архитектура
Взаимодействие через API обычно происходит по протоколу HTTP (как мы открываем сайты). Это всегда диалог:
Представьте, что вы отправляете форму КС-2 (Акт выполненных работ) заказчику на подпись.
* Метод (Method): Что вы хотите сделать?
* GET — Получить данные (Запросить статус подписания КС-2).
* POST — Создать данные (Отправить новую КС-2).
* PUT / PATCH — Обновить данные (Внести правки в КС-2).
* DELETE — Удалить данные (Аннулировать акт).
* Код ответа (Status Code): Реакция заказчика.
* 200 OK — Все хорошо, акт подписан.
* 400 Bad Request — Ошибка в документе (неверно заполнена шапка).
* 401 Unauthorized — Вы не тот, за кого себя выдаете (нет пропуска на объект).
* 404 Not Found — Документ не найден (потеряли папку).
* 500 Internal Server Error — Проблемы на стороне заказчика (у них сломался принтер).
JSON: Формат передачи данных
В строительстве мы обмениваемся данными через Excel или сметные программы. В веб-разработке стандартом является JSON (JavaScript Object Notation). Это просто текстовый формат, понятный и человеку, и машине.
Пример ответа API (информация о сотруднике):
Как аналитик, вы будете проектировать такие контракты. Вы будете писать в документации: «Фронтенд должен отправить на бэкенд id сотрудника, а бэкенд должен вернуть его position».
Заключение
Переход из инженера ПТО в системные аналитики — это эволюция, а не революция. Вы меняете инструменты (AutoCAD на Draw.io, Гранд-Смету на Jira), но суть остается прежней: создание сложного продукта по определенным правилам в условиях ограничений.
API — это просто способ коммуникации между системами, как трубы и провода соединяют части здания. SDLC — это ваш график производства работ. Agile — это способ строить быстрее и гибче.
В следующих статьях мы углубимся в написание требований и работу с базами данных.