Spike (Спайк) – это исследовательская задача в Agile-разработке, цель которой – изучение нового функционала, технологий или проблем, связанных с реализацией продукта. Используется для снижения неопределённости перед началом разработки.
Спайк – это задача, где разработчик или аналитик не пишет готовый код, а разбирается в сложном вопросе. Например, если команда не знает, как лучше реализовать авторизацию, создаётся спайк, чтобы протестировать разные подходы и выбрать лучший.
Спайки используются в Scrum и Kanban для уменьшения рисков перед разработкой сложных фич. Они могут включать:
а) Тестирование гипотез – например, проверка, подходит ли новая библиотека.
б) Сравнение решений – анализ плюсов и минусов разных технологий.
в) Создание прототипов – небольшой кусок кода для демонстрации идеи.
г) Документирование результатов – выводы передаются команде для дальнейшей работы.
Спайки бывают двух типов:
а) Функциональные (Functional Spike) – изучение новых требований или поведения системы.
б) Технические (Technical Spike) – исследование технологий, архитектуры или производительности.
а) Выбор технологий (например, тестирование новой базы данных).
б) Оптимизация кода или инфраструктуры.
в) Изучение API сторонних сервисов.
г) Анализ влияния изменений на текущую систему.
а) Функциональный спайк: как сделать тёмную тему для всего веб-приложения?
б) Технический спайк: как лучше кешировать данные на бэкенде?
в) Архитектурный спайк: можно ли заменить монолит на микросервисы?