Под инженерными практиками понимается проверенный временем набор технических решений, связанных непосредственно с разработкой программного продукта
Порядок описания: хронологически относительно пайплайна производства кода
Requirement review - ревью постановок (ТЗ). Написанные аналитикой постановки совместно отсматриваются тремя сторонами:
Цель: нахождение неточностей, недоговорённостей, неоднозначностей и т.д., т.е. приведение постановок к максимально точному, полному и конкретному виду.
Design review - проектирование ПО. Коллективная работа, проводится ДО написания кода.
Возможно в форме, аналогичной код-ревью: через пулл-реквесты с комментированием и аппрувами.
Для оформления ADR (Architecture Decision Record) хорошо подходят языки Markdown (документы с форматированнием в plain-тексте) и PlantUML (UML и ER-диаграммы в plain-тексте).
Цель: обеспечить грамотное проектирование структуры БД и дизайна классов, соответствие принятых проектных решений текущей архитектуре.
Двое программистов одновременно работают над одной задачей за одним компьютером.
Цели:
Технический долг:
Для обеспечения возможности возврата техдолга он должен быть зафиксирован и измерен.
Цели:
Цель: автоматизация пайплайна производства кода.
Статический анализ кода - автоматическая проверка кодовой базы специальными анализаторами на предмет наличия code smells, уязвимостей, потенциальных багов и других проблем.
Примеры: SonarQube, сообщения в IDE при компиляции и сборке проекта, ESLint и другие линтеры.
Цель: указать на потенциальные проблемы в коде.
Виды тестов:
Цели:
Код-ревью - изучение кода другими разработчиками
Цели:
Владение кодом - назначение ответственных разработчиков (овнера и дублёра) для каждого участка кодовой базы.
Цели:
Приоритет вычисляется по простой формуле:
Приоритет = наносимая польза / затраты ресурсов
Без внедреных CI/CD невозможны многие другие инженерные практики
Польза: огромная
Затраты: первое время большие, со временем падают до средних или даже небольших
Польза: она есть 🙂
Затраты: ничтожны
Польза: хороший вариант защиты от регрессий
Затраты: первое время большие, со временем падают до средних или средних+
Польза: большая - неправильные проектные решения обходятся в долгосрочной перспективе в десятки и сотни человекочасов
Затраты: большие
Польза: большая
Затраты: большие
Польза: средняя
Кейсы:
Затраты: небольшие/средние
Польза: средняя
Затраты: средние
Польза: средняя
Затраты: средние
Польза: средняя
Кейсы, когда парное программирование может быть полезно:
Затраты: большие
Формат: желательно Markdown 🙂
Срок: неделя (до 2022-06-01 включительно)