¿Cómo lidiar con el diseño de la interfaz de usuario y el soporte de funciones respectivas en el desarrollo ágil?


11

En un proceso de desarrollo ágil, generalmente el enfoque principal está en las historias de usuarios, pero a veces un solo requisito puede abarcar varias historias de usuarios.

Por ejemplo, el cliente puede solicitar una página de búsqueda para todos los usuarios en un foro, y hay varias acciones que pueden ocurrir en cada usuario, tales como prohibir usuario, eliminar usuario, restablecer contraseña, etc.

Podemos dividir esta característica en al menos 4 historias de usuario:

  1. Buscar usuarios
  2. Prohibir usuario
  3. Borrar usuario
  4. Restablecer la contraseña

¿Cómo implementaría el diseñador de la interfaz de usuario dicha interfaz de usuario? ¿Debería trabajar en la primera historia de usuario y luego comenzar a incrementar más funciones a la interfaz de usuario? Sin embargo, creo que la interfaz de usuario final estará en mal estado!

Si decide trabajar en toda la función (búsqueda + acciones), ¿qué pasaría si las acciones fueran de baja prioridad y se implementaran varias iteraciones después de que se realizó la funcionalidad de búsqueda?


66
Esto resalta la idea equivocada que algunas personas tienen de ágil, por más que la definas, es algo más que una herramienta de gestión de proyectos. Todavía necesita que alguien vea el producto completo desde un punto de vista arquitectónico y se asegure de que todas sus historias se sumen a algo coherente.
Blrfl

¡¿Podrían los votantes de abajo explicar por qué? !!
Songo

@Songo: No, los votantes negativos generalmente no explican, es demasiado esfuerzo. :-(
Giorgio

Respuestas:


13

Tómelo iterativamente. Estás trabajando directamente con los usuarios, ¿verdad? Por lo tanto, nunca debería ser realmente un desastre.

Primero haz la página de búsqueda. Usted y los usuarios deben tener en cuenta que querrán poder realizar acciones sobre los resultados. ¿Les gusta a los usuarios? OK, tienes tu búsqueda.

Ahora agregue la "Cambiar contraseña" (o lo que sea siguiente en prioridad). Vaya, necesitamos cambiar un poco la página de búsqueda; bueno, el cambio a menudo es parte del juego. ¿Les gusta a los usuarios los resultados? Bueno.

Ahora agregue el siguiente elemento, y el siguiente ...

El enfoque ágil dice que siempre tiene comentarios de inmediato, por lo que debe ser bueno.

Dicho esto, no hay una razón real por la que no puedas atacar 2 de estas historias en la misma iteración (agregando eliminar usuario Y prohibir usuario). La clave es trabajar siempre con el cliente para asegurarse de que sea correcto.

A menudo (¿siempre?) Terminarás con los usuarios pensando en otra cosa que quieren hacer desde esa pantalla de búsqueda después de que tu "diseño" original esté hecho e implementado. Entonces, terminarás modificándolo en algún momento de todos modos. Simplemente aborde todo con esa expectativa y debería ser bueno.


8

Siento que digo esto mucho. Ágil no significa que deba ponerse anteojeras para ignorar el futuro y diseñarse en una esquina. Ágil se trata de cómo ofrece funcionalidad, y tiene muy poco que ver con cómo diseña la funcionalidad.

En otras palabras, está bien mirar hacia el futuro como desee al crear su diseño, siempre que no posponga la entrega de funcionalidad a corto plazo.

Lo que eso significa en su ejemplo específico es que sigue adelante y diseña la interfaz de usuario de modo que sea fácil agregar acciones más adelante. Sin embargo, si trabajar para obtener el diseño correcto de las acciones retrasaría la entrega de la búsqueda básica del usuario mediante una iteración, es mejor hacer un diseño sin acciones primero, suponiendo que una búsqueda sin acciones tiene valor para el cliente.

La pregunta que debe hacerse es: "¿Este trabajo de diseño está retrasando mi primera entrega?" La mayoría de las veces, la respuesta será no. Tienes que hacer un diseño de todos modos, todo lo que estás cambiando son algunos criterios de diseño.


+1: Muy buena respuesta: "Ágil se trata de cómo se entrega la funcionalidad y tiene muy poco que ver con cómo se diseña la funcionalidad". Creo que, con demasiada frecuencia, se usa ágil como excusa para justificar la ausencia de un diseño inicial (por ejemplo, si un desarrollador no está dispuesto o no puede hacerlo). En cambio, uno debe programar actividades (historias de usuarios y sprints) después de que se haya preparado el plan general y la arquitectura (por supuesto, es posible que deba ajustar la arquitectura a medida que avanza con el proyecto).
Giorgio

1

La primera historia de usuario puede ser el diseño de toda la interfaz: no tienen que diseñar solo una pieza. Es el diseño en su conjunto lo que agrega valor comercial.

Dicho esto, veo al menos dos características distintas aquí: la capacidad de buscar usuarios y la capacidad de realizar una función en uno o más usuarios. El diseñador podría abordar a cada uno de ellos de manera razonable si eso tiene más sentido.

Recuerde: el objetivo es entregar software de calidad, no seguir ciegamente alguna metodología. Pregúntese si dividir el diseño en pedazos ayuda o dificulta ese objetivo. No hay policías scrum, solo clientes felices o insatisfechos.


1

Tuve la oportunidad de realizar una pasantía en una fábrica de programación Agile / Extreme. Estaban usando story-cards para impulsar el proceso de desarrollo iterativo. Cada carta de historia impulsó una implementación o cambio. La clave fue la interacción del usuario. ¿Cómo se puede diseñar con éxito una interfaz para un usuario sin interactuar con un usuario del software?

Un escenario posible es comenzar con la interacción del usuario para decidir qué quiere el usuario primero. Luego, de forma iterativa, diseñe la interfaz de usuario en función de la retroalimentación creciente, la prioridad del usuario y lo que el usuario debe tener.

Las historias de los usuarios están ahí para determinar cómo interactuaría el usuario, a qué nivel y de qué manera. Pero son solo aproximaciones hasta interactuar con el usuario. Si hay una multitud de usuarios que desearían algo específico, entonces una pequeña encuesta de personas puede ser para definir una línea de base para la interfaz de usuario.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.