• No se han encontrado resultados

Momentos de Integración HCI en el proceso ágil (Cuándo)

Capítulo 2 Estado del Arte

2.4 Momentos de Integración HCI en el proceso ágil (Cuándo)

Uno de los factores clave al incorporar las técnicas HCI dentro del desarrollo ágil es identificar el momento adecuado para aplicarlas en el proceso y obtener un buen nivel de usabilidad. Para conocer mejor cuándo los equipos ágiles utilizan las técnicas HCI se aplicó un análisis exhaustivo sobre aquellos estudios, parte de nuestra investigación, que indicaban explícitamente el momento en el cual utilizaron las técnicas.

La comunidad HCI aboga por que el diseño de la interfaz se debe realizar por completo al inicio del proceso de software previo a la implementación del código o cualquier otra etapa del desarrollo. En inicio esta práctica resulta en cierta forma incompatible con los principios de la filosofía ágil sin embargo investigadores y profesionales del área reportan los resultados de sus experiencias con equipos ágiles incorporando la usabilidad de esta forma. (Patton, 2002) describe su experiencia con este enfoque, afirma que aunque requiere tiempo extra aplicar técnicas de usabilidad al principio del proceso ágil ayuda a identificar los diferentes componentes de interacción con anticipación. (Meszaros et al., 2006) argumentan que el tener una visión holística del sistema desde el inicio del desarrollo reduce el re-trabajo que pudiera generarse durante las iteraciones para corregir inconsistencias de diseño. (Felker et al., 2012) concluyen que el aplicar una investigación contextual al inicio del proyecto para obtener una visión holística del proyecto fue muy útil para que los equipos pudieran estar enfocados posteriormente durante los ciclos ágiles únicamente en el diseño e implementación.

En el proyecto objeto de su estudio (Rahim et al., 2014) antes de la implementación del código se elabora por completo el diseño de interfaz utilizando una adaptación del método contextual design. Las diferentes etapas del método son agrupadas en tres fases. Incorporando dentro de la primera de ellas el uso de la técnica persona e incluyendo en la etapa final la implementación del código del prototipo funcional utilizando extreme programming.

Otra manera en la que los equipos ágiles han incorporado el uso de las técnicas HCI es realizar un diseño de interacción inicial a mejorar posteriormente durante las iteraciones. Los equipos aplican actividades de diseño

centrado en el usuario utilizado una iteración inicial, la llamada iteración 0 o sprint 0 en el caso de SCRUM. El objetivo es dedicar este tiempo solamente para conocer mejor al usuario y tener un panorama general sobre sus necesidades y metas. De esta forma el diseño puede proyectarse con más enfoque al usuario a partir de la información obtenida desde el inicio del proyecto y antes de cualquier otra etapa que en el caso de los desarrollos ágiles se dan durante las iteraciones. En particular, al ser los dos procesos UCD y Agile iterativos e incrementales las técnicas de usabilidad que se integran al proceso ágil pueden a su vez utilizarse en esos sentidos contribuyendo al nivel de usabilidad gradualmente. Constantine et al. (Constantine, 2002) sostienen que desarrollar un mínimo diseño por adelantado es necesario para estar bien organizado y presentarles a los usuarios una interfaz consistente y entendible. En su trabajo los autores señalan una serie de puntos a considerar para obtener un diseño mínimo por adelantado de una forma sencilla. Chamberlain et al. (Chamberlain et al., 2006) describen su experiencia con SCRUM al dedicar un sprint al inicio del proyecto en lo que ellos llaman “fase de análisis del negocio” para obtener requerimientos. Para esto, incorporan la técnica persona y adoptan en las iteraciones posteriores un enfoque evolutivo. (Ferreira et al., 2007a) reportan el resultado de uno de sus equipos de estudio al obtener al inicio del desarrollo únicamente información suficiente de los usuarios para generar prototipos que les permitieran obtener retroalimentación del usuario sobre el diseño inicial e irlo refinando posteriormente durante las iteraciones. Los elementos del equipo expresaron que tener un cierto porcentaje del diseño de la interfaz de usuario antes de que inicie la implementación es esencial y suficiente para el proyecto. Lee et al. (J C Lee et al., 2009) proponen un proceso de desarrollo combinando XP y el diseño basado en escenarios (en inglés Scenario Based Design or SBD). En este proceso al inicio del proyecto en la fase de requerimientos se genera un esqueleto incluyendo toda la interacción con el usuario la cual es continuamente revisada y actualizada. Con el objetivo de obtener una idea general de la interfaz de usuario y evitar re-trabajo durante las iteraciones Kollman et al. (Kollman, 2009) sugieren utilizar una fase de investigación inicial. Independientemente del nombre que tenga ya sea fase de exploración, sprint 0, iteración 0, etc.

En (Zahid Hussain et al., 2008a) y (Wolkerstorfer et al., 2008) se describe la adaptación aplicada al proceso XP incorporando en diferentes momentos del desarrollo técnicas de usabilidad como persona, pruebas de usabilidad y evaluaciones de usabilidad aplicadas por expertos. Los autores incorporan una adaptación a la técnica persona resultando lo que ellos llaman “extreme persona”, al inicio del proceso se obtiene información sobre los usuarios a través de estudios de usuario para definir las personas relacionadas. Al final de cada iteración la visión sobre los usuarios es más amplia lo cual ayuda para actualizar las definiciones iniciales o crear nuevas personas si es necesario. En la figura C2-9 podemos ver el modelo propuesto por los investigadores.

  Figura C2-9 Integración de instrumentos HCI en XP (Zahid Hussain et al., 2008a)

(Anwar et al., 2014) proponen un marco de trabajo que incorpora el uso de técnicas HCI en el proceso ágil de desarrollo de software enfocado principalmente a sitios web y aplicaciones móviles. Durante las primeras etapas del proceso, llamadas planeación y el sprint de diseño (o sprint 0), se usan técnicas HCI como persona y prototipos para obtener información y tener una visión del proyecto y necesidades de interacción del usuario antes de iniciar con las iteraciones de desarrollo. Durante los sprints posteriores llamados “Sprint de desarrollo” los diseñadores de interacción, en caso de ser necesario, rediseñan la interfaz apoyándose en otro grupo de herramientas HCI como los prorotipos, heuristic evaluation y escenarios entre otras. Derivado del estudio de (d. Silva et al., 2015) sobre la forma en que se llevan a cabo las evaluaciones de usabilidad en ambientes ágiles, concluyen que se realizan de manera continua durante todo el proceso de desarrollo con un objetivo diferente. Desde la iteración inicial 0 para verificar ideas de diseño y metas del nevocio. Durante las iteraciones se aplican también las evaluaciones de usabilidad para mejorar el diseño y priorizar las tareas. En la etapa final ayudan a los diseñadores de interfaz a organizar las tareas priorizando las características que pudiera ser necesario reparar para liberar lo previsto. (de Carvalho et al., 2016) enfocan su estudio en comprender el impacto de aplicar evaluaciones de usabilidad antes de los ciclos de desarrollo. Concluyen que además de minimizar el retrabajo evaluar la usabilidad antes del desarrollo contribuye al cambio de mentalidad en relación a la importancia de integrar en etapas tempranas los procesos de desarrollo ágil y UCD.

Una de las prácticas que ha resultado muy útil al momento de integrar las herramientas HCI en el proceso ágil es trabajar bloques sobrepuestos de diseño y desarrollo en paralelo. Los diseñadores trabajan los diseños para la interfaz del usuario al menos una iteración por adelantado a las implementaciones que realizan los desarrolladores. Esto es, en la iteración en curso se elabora el diseño que será implementado en la siguiente iteración durante el bloque de desarrollo; también se implementan los diseños elaborados en iteraciones previas. Sy (Sy, 2007) presenta sus resultados y propone un proceso que integra técnicas UCD en el proceso SCRUM considerando la iteración inicial como una pequeña fase para obtener requerimientos al inicio del proyecto. Posteriormente, el diseño y la implementación de este se llevan a cabo en bloques paralelos sobrepuestos que la autora denomina “Bloque del desarrollador” y “Bloque del diseñador de interacción”. En la figura C2-10 podemos observar el proceso utilizado por Sy.

Sy indica que durante los primeros ciclos los desarrolladores trabajaron en la codificación del software que solamente requería diseño mínimo. De esta manera los diseñadores tuvieron tiempo para realizar investigaciones de usabilidad.

 

Figura C2-10 Proceso de desarrollo integrando UCD en desarrollo ágil (Sy, 2007)

El diseño de interacción que se realiza en el bloque correspondiente se trabaja con al menos dos ciclos de adelanto respecto a las características de interacción que se implementan en el bloque de desarrollo.

Fox, Sillito y Maurer (Fox et al., 2008) describen su proceso de desarrollo donde consideran un estado inicial para descubrir y entender las necesidades del usuario antes de que se inicie con la codificación. Después de la fase inicial los miembros del equipo trabajan concurrentemente: mientras el equipo de desarrollo implementa las características de la actual iteración el equipo de diseño continúa con el diseño de la interfaz de usuario a ser utilizado en la siguiente iteración. (Beyer et al., 1998) reportan los resultados de aplicar Contextual Inquiry para obtener información de los usuarios y construir las historias de usuario en la primera iteración desarrollando la interfaz de usuario. Señalan la importancia de no mezclar el diseño de la interfaz de usuario dentro del trabajo de implementación y sugieren continuar las iteraciones en paralelo.

De manera similar Najafi et al. (Najafi et al., 2008) utilizan inicialmente un sprint exclusivamente para actividades HCI. El equipo UX (User eXperience) utilizó el sprint cero específicamente para entender a los usuarios explorando su contexto e identificando sus metas. Estas tareas exploratorias las realizan incorporando la técnica persona. En los sprints posteriores se desarrollan en paralelo actividades correspondientes al diseño de la interfaz en el bloque que denominan “User experience” y las actividades de implementación en el bloque “Engineering Development”. Los diseños se definen un sprint antes de ser implementados. La figura C2-11 muestra el modelo Scrum adaptado que utilizaron en su estudio donde se observan las tareas que realizaron en cada uno de los dos bloques durante los sprints .

 

Figura C2-11 Modelo de integración entre SCRUM y el Diseño UX (Najafi & Toyoshiba, 2008)

Por su parte Cho (2009) utiliza técnicas HCI como persona, maquetas y escenarios para obtener información de referencia en la definición de las historias de usuario y criterios de aceptación. En su trabajo ella describe la manera en la que el equipo trabaja en paralelo actividades de implementación y desarrollo, por un lado los programadores implementando código mientras que los diseñadores, analistas de negocio y líderes de proyecto preparan el próximo sprint.

El proceso RITE + Krug propuesto por (McGinn et al., 2013) para incorporar las pruebas de usabilidad en un desarrollo ágil considera realizar las actividades de diseño de interfaz que involucran técnicas HCI un sprint por adelantado a las de desarrollo. De esta manera el equipo de diseño tiene tiempo para realizar las modificaciones o mejoras necesarias en el diseño de interacción antes de que sea implementado el código. Por su parte los desarrolladores durante las iteraciones dedicadas al diseño de la interfaz se enfocan en estabilizar la funcionalidad actual del producto software.

(Peres et al., 2014) proponen un modelo que permita incluir técnicas que mejoren el nivel de UX de un desarrollo ágil de software en un proceso de mejora CMMI. En particular, para la administración de

requerimientos (área de proceso nivel dos CMMI) (Peres et al., 2014) recomiendan que los diseñadores UX trabajen una o más iteraciones por adelantado de los desarrolladores además de apoyarlos durante la implementación del código.

(Kropp et al., 2016) reportan su experiencia al implementar técnicas UCD en su proceso ágil de desarrollo trabajando en paralelo un bloque de diseño y otro de desarrollo. Las actividades UCD agrupadas en cuatro etapas: iniciación, conceptualización, implementación y seguimiento se llevan a cabo antes del inicio del proyecto y durante el bloque de diseño.

Los equipos ágiles también optan por elaborar el diseño de la interfaz durante la iteración en curso. Adaptando el proceso SCRUM, (Rivero et al., 2013) proponen un enfoque de desarrollo por modelos donde durante cada iteración los usuarios participan diseñando, junto con los elementos del equipo, mockups que reflejen sus requerimientos y que posteriormente serán implementados en prototipos. Con el objetivo de que los desarrolladores obtengan retroalimentación en cualquier momento del sprint, Krushe S, et al. (2014) combinan dos enfoques: una herramienta “ligera” basada en escenarios para producir prototipos en el momento que sea necesario y Rugby, un método ágil adaptado de SCRUM.

A partir de lo expuesto previamente, en general se identifican cuatro enfoques en los que se incorporan técnicas HCI al proceso de desarrollo ágil. A continuación se describen y los identificamos con su nombre en inglés para hacer referencia a ellos de manera más universal:

Interaction design first. Se aplican las técnicas HCI antes de iniciar las iteraciones ágiles para obtener una visión holística del sistema a construir. Este enfoque también es referenciado en la literatura como “Big Design Up front” (T. Da Silva et al., 2011). El comportamiento de la incorporación HCI con este enfoque lo podemos observar en la figura C2-12.

  Figura C2-12 Enfoque de integración “Interaction Design First”

Minimal up-front interaction design. Un mínimo diseño de interacción es definido antes de iniciar con las iteraciones ágiles. Posteriormente el diseño de Interfaz de usuario definido al inicio es refinado durante las iteraciones. Esto permite a los desarrolladores dedicar tiempo a discutir sobre las líneas guías básicas que permiten consistencia y coherencia en el desarrollo de las siguientes iteraciones. La figura C2-13 muestra de manera gráfica la forma en la que se trabaja el diseño en este enfoque.

  Figura C2-13 Enfoque de integración “Minimal Up-Front Design”

Implicit interaction design. Las técnicas HCI son aplicadas para diseñar la interacción de las historias de usuario a ser desarrolladas durante la misma iteración. De manera gráfica en la figura C2-14 tenemos la representación de este enfoque.

  Figura C2-14 Enfoque “Implicit Interaction Design”

Parallel track. El diseño se trabaja al menos una iteración por delante a la implementación. Por lo tanto permite a los desarrolladores durante la iteración abordar la implementación del código de las historias de usuario cuya interacción ha sido diseñada previamente. Generalmente las actividades de diseño para iteraciones posteriores y las actividades de implementación de código se trabajan en bloques paralelos dentro de la misma iteración. En las figuras C2-15 y C2-16 se representa el proceso de integración UCD en agile desarrollando el diseño de la interfaz en iteraciones por delante a las actividades de implementación.

  Figura C2-15 Enfoque “Iteration Ahead” – Iteración inicial

 

Figura C2-16 Enfoque “Iteration Ahead” – Iteración posterior

Para visualizar un panorama general de cuándo son aplicadas las técnicas HCI dentro del proceso ágil clasificamos los estudios analizados en la revisión de literatura tomando en cuenta los enfoques de integración descritos anteriormente. Para la primera etapa de búsqueda obtuvimos la distribución de la figura C2-17 publicada en (Caballero et al., 2016). Para el análisis incluyendo la segunda etapa de búsqueda observamos la distribución en la figura C2-18. Aquellos estudios que no proporcionan información suficiente que permitiera identificar el enfoque utilizado se reflejan en la categoría “Not specified” de ambas gráficas. 

Los resultados de ambas distribuciones (figuras C2-17 y C2-18) muestran que la interacción de las técnicas se realiza mayormente con dos enfoques: minimal up-front design y Overlapped Track. La distribución obtenida de nuestra SLR hasta mediados de 2013 (figura C2-17) señala el enfoque minimal up-front design como el más utilizado. Mientras que la distribución obtenida considerando las publicaciones hasta el primer trimestre de 2017 muestra el enfoque Overlapped Track como el más utilizado. Esto refleja que el uso de este enfoque en la integración de técnicas HCI en el proceso de desarrollo ágil ha ganado terreno en los últimos años.

 

Figura C2-17 Enfoque de integración HCI utilizado en proyectos ASD. Período de análisis 2001 – primera mitad de 2013 (Caballero et al. 2016)

 

Figura C2-18 Enfoque de integración HCI en un proyecto de desarrollo ágil. Período de análisis 2001 – primer trimestre 2017

Las diferentes prácticas HCI que se aplican comúnmente en los enfoques de integración fueron clasificadas de acuerdo a éstos. Los resultados para la primera etapa de búsqueda de nuestra revisión de literatura se reflejan en la figura C2-19 y la distribución resultante de la revisión de literatura incluyendo las dos etapas de búsqueda se muestra en la figura C2-20.

 

Figura C2-19 Prácticas HCI utilizadas por enfoque de integración en proyectos ASD. Período de análisis 2001 – primera mitad 2013 (Caballero et al. 2016)

0 5 10 15 20 25 30 Interaction

Design FirstMinimal Up-front Design

Implicit Interaction

Design

Overlapped Track specifiedNot

 

  Figura C2-20 Prácticas HCI utilizadas por enfoque de integración en proyectos ASD. Período de análisis 2001 – primer

trimestre 2017

Choma et al. (2015) aplican el protocolo propuesto durante las iteraciones de un proyecto de rediseño web como un lenguaje en común para mejorar la comunicación entre los diseñadores UX y los desarrolladores ágiles durante el proceso SCRUM. Choma et al. (2015) observaron que mejoró la comprensión por parte de los desarrolladores de las decisiones de diseño a implementar.

Considerando las etapas del proceso UCD (ISO 13407) en DaSilva et al (T. Da Silva et al., 2011) concluyen que la integración UCD y las metodologías ágiles debe enfocarse durante el diseño y en la evaluación de la usabilidad. Durante la etapa de diseño se utilizan persona y los prototipos de bajo nivel. Por otro lado en las evaluaciones del diseño generalmente se utilizan también prototipos de bajo nivel. Por su parte los resultados presentados por Salvador et al (Salvador et al., 2014) reflejan que en la mayoría de los trabajos considerados en su estudio los métodos de usabilidad se aplicaron durante la fase de implementación y pruebas del diseño. (Brhel et al., 2015) indican que los métodos de usabilidad deben utilizarse en las fases tempranas del desarrollo y en cada iteración con el objetivo de reducir los problemas de usabilidad en la versión final del software.