Pull to refresh

Comments 7

Небольшое уточнение по терминологии: в контексте Scrum спайк это не решение, а особый вид user story. Иными словами, это единица планирования. Само решение — это результат работы, проделанной в ограниченном времени спайка.

Например: medium.com/@leanscrummaster/spikes-in-scrum-3c80a65dce58
Этот подход применим и для работы дизайнера и даже художника. Например, аналогом спайка является эскиз, а трассера — подмалёвок (эскиз в цвете, основа светотеневой картины) который будет основой итогового изображения. Целиком картины или объекта на ней.

Беда новичков в том, что они пытаются сразу нарисовать «хорошо», прыгая через этапы, начинают детализировать когда еще свет не обозначен или композиция плохая.
Хорошая статья. выгодно объясняет, что в стартапе N спайков, и никто не знает, сколько времени ждать MVP.

Хочется больше примеров. Какие ещё есть варианты спайков. Также как сделать так, чтобы спайк внезапно не стал рабочим решением которое отгрузят? Что именно на выходе получается от спайка? Что такое "глубже погрузиться в проблему"? Как вам помогает прототип в виде бумаги? Неужели это письмо нельзя сконфигурить находу? Разве оформление на бумаге помогает решить технические проблемы? Полагаю, что нет. Нужны примеры того, как именно спайк может помочь на практике для решения технической проблемы.

Автор оригинальной статьи действительно скуп на примеры, но я могу привести своё понимание методологии и ответить на ваши вопросы.


Представим ситуацию, что мы делаем веб приложение и у нас готов фронтенд, но мы оба не совсем понимаем как будет работать бэкенд. Если мы совсем не представляем как устроен бэкенд в принципе, то делаем анализ. Но мы с вами опытные разработчики и уже знаем как примерно работает и что умеет тот же ASP.NET и поэтому эту фазу пропускаем, не испытывая неопределенности "а решит ли бэкенд наши проблемы?".


Мы знаем как сделать, но не знаем что именно. Вместо написания кода мы берем бумагу и начинаем расписывать схему, а что же бэкенд вообще должен делать в продукте (включая бумагу в процесс разработки мы тем самым создаем спайк).


Расписывая схему мы вдруг понимаем, что от бэкенда нам нужны только облачные функции, даже без базы данных. Эта глубокое погружение в проблему позволило нам выявить деталь, которая меняет представление о решении проблемы. Теперь мы можем не писать бэкенд вовсе, а, например, взять Firebase как сервис исполнения облачных функций.


А представьте что вместо спайка мы бы уже началиписать код с тестами да с контроллерами, потратили время и силы и выбросили бы это всё. Тут мы выбросим только бумагу.


Мы не пользовались файрбейсом и для нас это тоже неизвестность. Тут свой внутренний цикл анализ-спайк-трассер: мы смотрим что умеет сервис (анализ), пробуем написать простые облачные функции (спайк), а потом попробовать написать наши околопродакшен функции (трассер) чтобы убедиться, что файрбейс удовлетворяет нашим требованиям.


Возвращаемся к основному циклу. Мы теперь уверены, что файрбейс умеет что нам надо, но мы не уверены, а подружится ли он с нашей архитектурой, поэтому вместо внедрения файрбейса мы берем какую-нибудь одну функцию и пробуем встроить это в рабочее окружение (делаем трассер), чтобы фронтенд пнул файрбейс и тот посчитал и вернул ожидаемый результат.


Работает? Кайф. Внедряем полноценно. Файрбейс выбросил утку? Возвращаемся к началу цикла и просматриваем другие варианты решения исходной проблемы.




TLDR


Спайк по своим свойствам никак не может уйти в продакшен. Нужно применить дополнительные усилия, чтобы создать некоторый встраиваемый продукт, а это уже трассер, а не спайк.


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

Спасибо за развернутый ответ. Читал его и понял, что намного шире эту проблему описывает Эрик Эванс в книге доменно-ориентированное проектирование.


В его книге спайк — это доменная модель и система взаимодействия ее компонентов, где-то составленная, сохраненная и визуализированная.


Доменная модель основана на едином языке, понятном бизнесу и команде разработки.


Если невозможно построить доменную модель, значит анализ не завершен.


Какой смысл тогда делать что-то, если за границами решения, которое планируется сделать нет знаний? Сделаешь — придется переделывать. Спайк — это вовсе не визуализация письма в почте. А модель, в которой есть входные данные от пользователя, процесс их движения в системе и влияние на систему, и результат.


В общем, как он это называет — управление сложностью

не понял почему эта методика пришла из Agile?
какие особенности анализа задачи в этой ситуации?
чем Spike и Трассер отличаются от прототипа, опытного образца?
Sign up to leave a comment.

Articles