В процессе гибкой разработки обычно основное внимание уделяется пользовательским историям, но иногда одно требование может охватывать несколько пользовательских историй.
Например, клиент может запросить страницу поиска для всех пользователей на форуме, и для каждого пользователя может быть выполнено несколько действий, таких как запрет пользователя, удаление пользователя, сброс пароля и т. Д.
Мы можем разделить эту функцию как минимум на 4 пользовательских истории:
- Поиск пользователей
- Бан пользователя
- Удалить пользователя
- Сброс пароля
Как разработчик пользовательского интерфейса реализует такой пользовательский интерфейс? Должен ли он / она работать над первой пользовательской историей, а затем начать добавлять больше функций в пользовательский интерфейс? Тем не менее, я думаю, что окончательный интерфейс будет испорчен!
Если он решит поработать со всей функцией (поиск + действия), что если действия будут с низким приоритетом и будут реализованы через несколько итераций после выполнения функции поиска?
Ответы:
Возьми это итеративно. Вы работаете напрямую с пользователями, верно? Так что никогда не должно быть беспорядка.
Сначала сделайте страницу поиска. Вы и пользователи должны помнить, что они захотят иметь возможность выполнять действия с результатами. Нравится ли это пользователям? ОК, у вас есть ваш поиск.
Теперь добавьте «Изменить пароль» (или любой другой по приоритету). К сожалению, нам нужно немного изменить страницу поиска - ну, часто изменения являются частью игры. Нравится ли пользователям результат? Хороший.
Теперь добавьте следующий элемент, и следующий ...
Гибкий подход говорит, что у вас всегда есть обратная связь, так что вы должны быть хорошими.
Тем не менее, нет никакой реальной причины, по которой вы не сможете атаковать 2 из этих историй за одну и ту же итерацию (добавление удаления пользователя и запрет пользователя). Ключ должен всегда работать с клиентом, чтобы удостовериться, что это правильно.
Вам часто (всегда?) Приходится сталкиваться с тем, что пользователи думают о чем-то еще, что они хотят сделать на этом экране поиска после того, как ваш первоначальный «дизайн» создан и реализован. Таким образом, вы будете в конечном итоге изменить его в какой - то момент в любом случае. Просто подойди ко всему с этим ожиданием, и тебе будет хорошо.
источник
Я чувствую, что говорю это много. Agile не означает, что вам нужно ставить шоры, чтобы игнорировать будущее и загонять себя в угол. Agile относится к тому, как вы предоставляете функциональность, и имеет очень мало общего с тем, как вы разрабатываете функциональность.
Другими словами, при создании дизайна можно смотреть в будущее так далеко, как вы хотите, если это не откладывает доставку функциональности в краткосрочной перспективе.
В вашем конкретном примере это означает, что вы разрабатываете пользовательский интерфейс так, чтобы позже было легко добавлять действия. Однако, если работа над созданием правильного дизайна действий приведет к задержке выполнения основного пользовательского поиска с помощью итерации, лучше сначала выполнить проект без действий, предполагая, что поиск без каких-либо действий имеет ценность для клиента.
Вопрос, который нужно задать себе: «Эта дизайнерская работа задерживает мою первую доставку?» В большинстве случаев ответ будет отрицательным. Вы все равно должны сделать дизайн, все, что вы изменяете, это некоторые критерии дизайна.
источник
Первой пользовательской историей может быть дизайн всего интерфейса - им не нужно проектировать только одну его часть. Это дизайн в целом, который добавляет ценность для бизнеса.
При этом я вижу здесь как минимум две отличные особенности: возможность поиска пользователей и возможность выполнять функцию для одного или нескольких пользователей. Дизайнер может заняться каждым из них по отдельности, если это имеет больше смысла.
Помните: цель - предоставить качественное программное обеспечение, а не слепо следовать какой-то методологии. Спросите себя, помогает или не мешает ли дробление дизайна на куски. Полиции нет, только счастливые или недовольные клиенты.
источник
У меня была возможность пройти стажировку на фабрике программирования Agile / Extreme. Они использовали карты-истории для управления процессом итеративной разработки. Каждая история-карта привела к реализации или изменению. Ключом было взаимодействие с пользователем. Как можно успешно разработать интерфейс, предназначенный для пользователя, не взаимодействуя с пользователем программного обеспечения?
Возможный сценарий - начать с взаимодействия с пользователем, чтобы решить, что пользователь хочет в первую очередь. Затем, итеративно, спроектируйте пользовательский интерфейс на основе увеличения обратной связи, приоритета пользователя и того, что должен иметь пользователь.
Пользовательские истории помогают понять, как пользователь будет взаимодействовать, на каком уровне и каким образом. Но они только приблизительные, пока не взаимодействуют с пользователем. Если существует множество пользователей, которые хотят получить что-то конкретное, то может быть проведен небольшой опрос людей, чтобы определить базовый уровень для пользовательского интерфейса.
источник