Возможно, пока вы читали приведенный выше пример, у вас возник вопрос: «Разве нельзя добиться подобного путем декомпозиции на супер-маленькие пользовательские истории?» Ведь у нас могут быть следующие пользовательские истории:
- Я, как пользователь, могу войти на сайт, только в том случае, если ввел корректные данные.
- Я, как пользователь, должен создать сильный пароль.
- Я, как пользователь, могу запросить напоминание пароля.
В целом, таким способом вы можете достичь такого же результата, как и с частичной передачей кода, однако, у супер-маленьких историй есть свои минусы.
Во-первых, работая с очень маленькими историями, сложно управлять зависимостями. Например, если вход на сайт декомпозировать на 20 пользовательских историй, возникнет необходимость управлять зависимостями между всеми этими историями. Если же, вместо этого у команды будет только одна история, которая полностью включает в себя функциональность по входу на сайт, то зависимостей, которыми надо управлять, не будет, — как минимум в рамках подсистемы входа.
Управление зависимостями между множеством историй может стать проблемой: вполне вероятно, что какая-то история может потеряться или отделиться от других и, как следствие, важная часть функциональности может быть проигнорирована и не разработана.