Как работать с дизайном пользовательского интерфейса и поддержкой соответствующих функций при разработке Agile?

11

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

Например, клиент может запросить страницу поиска для всех пользователей на форуме, и для каждого пользователя может быть выполнено несколько действий, таких как запрет пользователя, удаление пользователя, сброс пароля и т. Д.

Мы можем разделить эту функцию как минимум на 4 пользовательских истории:

  1. Поиск пользователей
  2. Бан пользователя
  3. Удалить пользователя
  4. Сброс пароля

Как разработчик пользовательского интерфейса реализует такой пользовательский интерфейс? Должен ли он / она работать над первой пользовательской историей, а затем начать добавлять больше функций в пользовательский интерфейс? Тем не менее, я думаю, что окончательный интерфейс будет испорчен!

Если он решит поработать со всей функцией (поиск + действия), что если действия будут с низким приоритетом и будут реализованы через несколько итераций после выполнения функции поиска?

Songo
источник
6
Это подчеркивает ошибочную идею некоторых людей, что гибкая, как бы вы ее ни определяли, является чем-то иным, чем инструментом управления проектами. Вам все еще нужен кто-то, чтобы взглянуть на весь продукт с архитектурной точки зрения и убедиться, что все ваши рассказы составляют что-то связное.
Blrfl
Должны ли избиратели с отрицательным результатом объяснить, почему? !!
Сонго
@ Сонго: Нет, опущенные избиратели обычно не объясняют, это слишком много усилий. :-(
Джорджио

Ответы:

13

Возьми это итеративно. Вы работаете напрямую с пользователями, верно? Так что никогда не должно быть беспорядка.

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

Теперь добавьте «Изменить пароль» (или любой другой по приоритету). К сожалению, нам нужно немного изменить страницу поиска - ну, часто изменения являются частью игры. Нравится ли пользователям результат? Хороший.

Теперь добавьте следующий элемент, и следующий ...

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

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

Вам часто (всегда?) Приходится сталкиваться с тем, что пользователи думают о чем-то еще, что они хотят сделать на этом экране поиска после того, как ваш первоначальный «дизайн» создан и реализован. Таким образом, вы будете в конечном итоге изменить его в какой - то момент в любом случае. Просто подойди ко всему с этим ожиданием, и тебе будет хорошо.

Мэтью Флинн
источник
8

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

Другими словами, при создании дизайна можно смотреть в будущее так далеко, как вы хотите, если это не откладывает доставку функциональности в краткосрочной перспективе.

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

Вопрос, который нужно задать себе: «Эта дизайнерская работа задерживает мою первую доставку?» В большинстве случаев ответ будет отрицательным. Вы все равно должны сделать дизайн, все, что вы изменяете, это некоторые критерии дизайна.

Карл Билефельдт
источник
+1: Очень хороший ответ: «Agile - это то, как вы предоставляете функциональность, и очень мало общего с тем, как вы разрабатываете функциональность». Я думаю, что слишком часто Agile используется как оправдание для отсутствия предварительного дизайна (например, если разработчик не хочет или не может это сделать). Вместо этого следует запланировать действия (пользовательские истории и спринты) после того, как общий план и архитектура будут подготовлены (конечно, вам может потребоваться изменить архитектуру по мере выполнения проекта).
Джорджио
1

Первой пользовательской историей может быть дизайн всего интерфейса - им не нужно проектировать только одну его часть. Это дизайн в целом, который добавляет ценность для бизнеса.

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

Помните: цель - предоставить качественное программное обеспечение, а не слепо следовать какой-то методологии. Спросите себя, помогает или не мешает ли дробление дизайна на куски. Полиции нет, только счастливые или недовольные клиенты.

Брайан Оукли
источник
1

У меня была возможность пройти стажировку на фабрике программирования Agile / Extreme. Они использовали карты-истории для управления процессом итеративной разработки. Каждая история-карта привела к реализации или изменению. Ключом было взаимодействие с пользователем. Как можно успешно разработать интерфейс, предназначенный для пользователя, не взаимодействуя с пользователем программного обеспечения?

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

Пользовательские истории помогают понять, как пользователь будет взаимодействовать, на каком уровне и каким образом. Но они только приблизительные, пока не взаимодействуют с пользователем. Если существует множество пользователей, которые хотят получить что-то конкретное, то может быть проведен небольшой опрос людей, чтобы определить базовый уровень для пользовательского интерфейса.

слащавый
источник