Capítulo 2 Estado del Arte
2.3 Prácticas HCI en Desarrollo ágil de Software (Qué)
Al analizar las publicaciones obtenidas en la primera etapa de búsqueda aplicada en nuestro estudio (2001 – mid 2013) se obtuvo la distribución que se observa en la figura C2-3 publicada en Caballero et al. (2016). La gráfica muestra un resultado similar al presentado por (Salvador et al., 2014) donde XP es el método ágil más utilizado seguido con una ligera diferencia por SCRUM. Sin embargo, la distribución generada a partir del análisis de todas las publicaciones consideradas en nuestra revisión (2001 – prim. Trim. 2017) indica una preferencia por SCRUM como se observa en la figura C2-4. La distribución de ambas gráficas se genera a partir del número de proyectos considerados en cada estudio donde se incorporan técnicas HCI. También se identifican algunos proyectos que utilizan otros métodos ágiles como FDD, WebTDD, InterMod y XSBD clasificados en la distribución gráfica dentro de la categoría “Otros” (en inglés Other). Los estudios que no proporcionaron a detalle información sobre la metodología ágil utilizada en sus proyectos se clasificaron en la categoría “No Especificado” (en inglés Not specified).
Figura C2-3 Metodologías ágiles utilizadas de acuerdo al análisis de publicaciones del período 2001 – primera mitad 2013 (Caballero et al. 2016)
Figura C2-4 Metodologías ágiles utilizadas en los proyectos de los estudios analizados para el período 2001 – primer trim. 2017
La literatura refleja la diversidad de técnicas HCI que han sido utilizadas en los últimos años dentro de los procesos de desarrollo ágil. Uno de los trabajos de revisión a la literatura más relevantes elaborados en la
0 5 10 15 20 25 30
SCRUM XP SCRUM & XP Other Not Specified
0 5 10 15 20 25 30 35 40 45
última década sobre la integración de prácticas HCI en procesos ágiles de desarrollo lo presentan (T. Da Silva et al., 2011). Como parte de los resultados de su investigación T. Da Silva et al. (2011) identifican técnicas y artefactos más utilizados en un entorno ágil. Dentro de èstos se mencionan los siguientes: diseño mínimo por adelantado (LDUF por sus siglas en inglés), prototipos, historias de usuario, pruebas de usuario (en inglés usability testing), inspección de usabilidad y trabajar el diseño un sprint por adelantado.
En (Jia et al., 2012) los autores analizan la información obtenida a partir de una encuesta para identificar las herramientas de usabilidad más utilizadas en el proceso SCRUM. El análisis de los datos reflejaron como las de uso más frecuente los workshops, prototipos de bajo nivel, entrevistas, reuniones con los usuarios y escenarios. (Barksdale et al., 2012) realizan un trabajo de revisión cuya principal contribución descansa en la organización de los estudios existentes relacionados con la integración de UCD y ASD a través de cinco dimensiones. Identifican dichas dimensiones de integración como: prácticas, proceso, tecnología, gente y aspectos sociales. Por su parte Salvador et al (Salvador et al., 2014) clasifican las técnicas mencionadas en los trabajos analizados de acuerdo al enfoque HCI para el que fueron utilizadas: inspección, testing, investigación y complementario. Para cada una de las clasificaciones mencionadas resultaron las más utilizadas la evaluación heurística, tests formales, investigación individual y prototipado rápido respectivamente.
Posteriormente, en (Brhel et al., 2015) para efectos de su investigación clasifican los estudios analizados de acuerdo a las dimensiones utilizadas y descritas en (Barksdale et al., 2012). En la figura C2-5 podemos observar el sistema de clasificación resultante para las técnicas y artefactos HCI. La figura C2-6 muestra los totales reflejados por el número de artículos analizados en Brhel (2015) que muestran relación con determinadas técnicas HCI clasificados en la dimensión “Prácticas”. Esta última a su vez se sub clasifica en técnicas enfocadas a la investigación del usuario (user research), conceptualización (conceptualization), diseño (design) y evaluación (evaluation).
Figura C2-5. Clasificación de las técnicas HCI identificadas de acuerdo a cuatro dimensiones (Brhel et al., 2015) La distribución de la gráfica en la figura C2-6 muestra principalmente la técnica prototipos como la más utilizada durante el diseño seguido de usability testing para la evaluación de la interacción. Además, para la etapa de conceptualización entre las más mencionadas se encuentran las historias de usuario, mock-ups, escenarios y persona.
Figura C2-6. Número de artículos relacionados con la dimensión "prácticas" (Brhel et al., 2015)
Con el objetivo de conocer la evolución de la industria incorporando técnicas HCI en sus procesos de desarrollo ágil, (Ovad et al., 2015) dan un seguimiento a ocho empresas durante un rango de tiempo. Como parte de los resultados obtienen que a través del tiempo los prototipos y las pruebas de usabilidad continúan como la técnica más utilizada en las empresas. El uso de los workshop aumenta y la técnica persona en general obtiene en el mismo porcentaje de uso.
(Magües et al., 2016a) clasifican las técnicas HCI utilizadas en el proceso de desarrollo de proyectos ágiles de acuerdo a tres de las etapas de desarrollo en IS: ingeniería de requerimientos, diseño y evaluación. Magües et al. (2016) identifican persona como la técnica más utilizada para la obtención de requerimientos y los screen snapshots así como los prototipos durante el diseño. Las pruebas de usabilidad (en inglés usability testing) se usan comúnmente durante la etapa de evaluación.
La figura C2-7 muestra la distribución publicada en (Caballero et al., 2016) obtenida a partir de nuestra revisión hasta el período primera mitad de 2013 y en la figura C2-8 se observa la distribución de resultados obtenida también en nuestro estudio pero abarcando hasta el primer trimestre de 2017. Los totales representan el número de proyectos ágiles descritos en los estudios analizados con relación a técnicas HCI incorporadas en el proceso de desarrollo.
Figura C2-7 Técnicas o artefactos HCI usados en Agile. Período de análisis 2001 – primera mitad 2013 (Caballero et al., 2016)
Figura C2-8 Técnicas o artefactos HCI usados en Agile. Período de análisis 2001 – primer trimestre 2017
De manera general en ambas distribuciones se observan resultados similares a los mostrados por diferentes autores. En nuestro análisis los prototipos se identifican como la técnica más utilizada seguida de usability testing, escenarios y persona.
Patton recomienda el uso de un prototipo abstracto para identificar los componentes a incluir en el contexto de la interacción y prototipos en papel para crear una maqueta de la interfaz de usuario (Patton, 2002). Los proyectos descritos en Chamberlain et. al. (Chamberlain et al., 2006) desarrollan diferentes tipos de prototipos de acuerdo al objetivo de obtención de información que en el momento del proyecto requieren. Para los proyectos de (Ferreira et al., 2007a) los prototipos en papel o elaborados en power point fueron útiles para obtener retroalimentación de los clientes. Meszaros y Aston (Meszaros et al., 2006) describen su experiencia utilizando prototipos de software en las pruebas de usabilidad. Hussain et al. (2008) desarrollaron una aplicación para teléfonos móviles utilizando prototipos de baja y alta fidelidad. Como resultado encontraron
0 10 20 30 40 50 60 70 80 90 Usability
que para aplicaciones móviles el uso de prototipos en papel debe ser complementado con prototipos de alta fidelidad para descubrir la percepción que los usuarios tienen sobre la aplicación real (Zahid Hussain et al., 2008b). En (Gonçalves et al., 2011) se presenta POLVO como herramienta que propone la automatización de prototipos de baja fidelidad como apoyo durante el proceso de diseño. (Rivero et al., 2013) proponen MockRE un proceso de modelado adaptado a SCRUM. MockRE que incorpora el uso de mockups como prototipos de la interfaz de usuario que permite obtener requerimientos y mejorar la participación de los usuarios finales durante el diseño del software.
Como aportación para sobrellevar los retos que implica la integración de técnicas HCI y las metodologías ágiles en el desarrollo de software, (Anwar et al., 2014) describen un marco de trabajo que facilita la integración de SCRUM y técnicas UCD. En dicho marco de trabajo los prototipos son una técnica fundamental del proceso. En su estudio para conocer las diferentes formas en las que se realiza la evaluación de usabilidad en los desarrollos ágiles (d. Silva et al., 2015) descubrieron que se utilizan diferentes tipos de prototipos, de baja o alta fidelidad, durante todo el proceso de desarrollo. El tipo de prototipo a utilizar depende de las necesidades del proyecto y la preparación del diseñador para aplicar esta técnica. Por otra parte, con el objetivo de mejorar la calidad del software y la satisfacción del usuario (de Freitas et al., 2016) presentan el método AGILUS para integrar evaluaciones de usabilidad en el proceso de desarrollo ágil. Durante el primer paso de AGILUS, el diseño de la interacción, se indica aplicar una evaluación formativa o empírica utilizando prototipos.
Las pruebas de usabilidad es otra técnica HCI que refleja relevancia en los desarrollos con enfoque ágil y una de las que más adaptaciones ha tenido para poder implementarse en un ambiente ágil. Las pruebas de usabilidad originalmente requieren definirse a partir de ciertas pautas que para el dinamismo con el que trabajan los procesos ágiles resultan poco prácticas de aplicar. Sin embargo, adaptadas al ambiente ágil este tipo de pruebas han resultado muy benéficas para conocer mejor si las aplicaciones que se están considerando son realmente útiles y utilizables para el usuario. Hudson (Hudson, 2003) resalta que las pruebas de usabilidad no necesariamente dependen de un grande y caro laboratorio para realizarlas. Para respaldar los resultados obtenidos aplicando las pruebas de usabilidad éstas pueden utilizarse junto con otras técnicas HCI durante el desarrollo en un ambiente ágil. Meszaros y Aston (Meszaros et al., 2006) sugieren utilizar prototipos de papel para facilitar las pruebas de usabilidad. (Zahid Hussain et al., 2008b) indican que utilizaron maquetas de baja fidelidad y mockups de alta fidelidad en sus pruebas de usabilidad.
Otra de las características de las pruebas de usabilidad por las que pareciera difícil implementar en un desarrollo ágil es que éstas deben realizarse con usuarios reales. Aunque es cierto que las metodologías ágiles reconocen como importante la interacción con el usuario, no siempre es sencillo trabajar directamente con los usuarios reales de la aplicación. (T. S. Da Silva, 2013) presentan lecciones aprendidas al implementar técnicas UCD en desarrollos ágiles. Como parte de éstas corroboran como alternativa el aplicar las pruebas de usabilidad con usuarios internos en caso de no contar con la disposición completa de los usuarios finales. Para asegurar la participación de los usuarios clave en las pruebas de usabilidad, es importante generar la suficiente confianza en ellos que aumente su interés de participar. Con este objetivo (McGinn et al., 2013) proponen una combinación de RITE y el método propuesto por Krug S. (2015) para aplicar pruebas de usabilidad durante todo el proceso de desarrollo ágil aplicando la técnica de manera rápida, con la misma efectividad e involucrando a usuarios finales en el entorno ágil. Permitiendo aplicar las modificaciones necesarias al diseño de interfaz antes de iniciar la implementación del código.
Como parte de las herramientas “ligeras” incluidas en el proceso ágil híbrido definido por Sfetsos et al (2016) para mejorar la calidad del producto final eliminando el número de defectos los autores indican aplicar pruebas de usabilidad durante el sprint Zero y posteriores.
Los escenarios son otra de las herramientas HCI comúnmente utilizadas en el proceso de desarrollo ágil principalmente para describir las diferentes formas, de acuerdo a contexto y ambiente, en las que el usuario utiliza o puede utilizar el sistema. La definición de los escenarios muestra una importante correlación con las metas de usabilidad a considerar para el proyecto en desarrollo (Jia et al., 2012) lo cual resulta una valiosa propiedad para los equipos ágiles.(Hakim et al., 2003) presentan una herramienta que ayuda a organizar el conjunto de escenarios estando siempre disponibles y mejorando la comunicación entre los equipos de desarrollo y diseño. Lee (Jason Chong Lee, 2011) y Obendorf et al (Obendorf et al., 2008) utilizan escenarios para obtener una vista y capturar el alcance de las metas y requerimientos del usuario. En (J C Lee et al., 2009) y (Jason Chong Lee, 2011) se reportan los resultados de utilizar el enfoque llamado eXtreme Scenario- Based Design (XSBD) donde el registro central de diseño (CDR por sus siglas en inglés) es la representación clave de diseño y sirve como apoyo en las actividades de sincronización y evaluaciones de usabilidad. Como parte de las actividades del marco de trabajo que incorpora técnicas HCI con SCRUM (Anwar et al., 2014) indican hacer uso de escenarios para conocer los requerimientos de aquellos usuarios que no tienen suficiente información sobre las características del software a desarrollar. También indican utilizar esta técnica en las etapas de planning y durante el desarrollo de los sprints. (Choma J. et al., 2016) definen el contenido del formato de historia de usuario propuesto, llamado UXStories, a partir de la descripción previa de los escenarios identificados en los que se utilizará el sistema.
En cuanto a las técnicas utilizadas para la obtención de requisitos en los procesos ágiles, persona es una de las más recurrentes. Cumpliendo con su propósito original descrito por Cooper (Cooper A. et al, , 2007) esta técnica permite al equipo conocer e identificar al usuario final del software. También ha sido aprovechado como medio de comunicación entre el equipo teniendo siempre en mente al usuario. Broschinsky y Baker (Broschinsky et al. , 2008) utilizan persona para identificar las necesidades reales del usuario y sus características. Singh (Singh, 2008) utiliza persona dentro de su enfoque ágil U-SCRUM como herramienta para mejorar la comunicación del equipo. (Zahid Hussain et al., 2008a) y (Wolkerstorfer et al., 2008) utilizan una adaptación de la técnica generando al inicio del proceso de desarrollo una definición básica de sus personas en base a la información obtenida a través de estudios del usuario. Posteriormente durante las iteraciones las definiciones iniciales se refactorizan. Esto es, pueden actualizarse de acuerdo a retroalimentación de iteraciones previas, se eliminan las que no se adapten a las nuevas necesidades que se requieran cubrir o incluso se crean nuevas personas. A esta adaptación de la herramienta los autores le llaman “Extreme Persona”. En su proceso adaptado de diseño contextual (en inglés contextual design) (Rahim, I et al, 2014) agrupan los pasos del proceso en tres etapas. En la primera etapa se incluyen la investigación contextual (en inglés contextual inquiry), work model (modelo de trabajo), la consolidación (consolidation) y se agrega la técnica persona como un paso más en el proceso. (Choma, J et al. 2015) proponen un protocolo de comunicación en el que persona es una de las técnicas utilizadas como parte del vocabulario común para un mayor entendimiento de las recomendaciones o soluciones de diseño entre los diseñadores y programadores del equipo ágil. La primera técnica aplicada en el proyecto de estudio de (da Silva et al., 2016) es persona, a partir de las definiciones obtenidas se inicia con la aplicación de las evaluaciones de usabilidad. Los autores concluyen que, además de reducir el re trabajo, aplicar evaluaciones de usabilidad antes de los ciclos de desarrollo ayudan para que el equipo de desarrollo y los stakeholders entiendan la importancia de integrar UCD y el desarrollo ágil desde las etapas iniciales.
Contextual Inquiry es otra de las herramientas utilizadas para conocer mejor al usuario. Miller describe esta herramienta como una técnica de investigación para descubrir cómo luce el ambiente de trabajo del usuario, cómo desarrolla su trabajo y cuáles son sus metas (Miller, 2005). (Felker et al., 2012) utilizan contextual inquiry en combinación con prototipos para obtener una visión holística del proyecto desarrollado utilizando SCRUM como metodología ágil. Como parte del marco de trabajo propuesto por (Anwar et al., 2014) los autores sugieren las entrevistas contextuales como una de las técnicas a aplicar antes de iniciar el desarrollo de las iteraciones para conocer al usuario. También se sugiere aplicar este artefacto durante la etapa de
planeación para identificar los requerimientos del product owner. En el modelo AgileUX para incorporar técnicas HCI dentro del proceso de mejora CMMI nivel dos descrito en (Peres et al., 2014) se sugiere aplicar contextual inquiry. (Kropp et al., 2016) reportan su experiencia aplicando técnicas UCD en projectos ágiles de precio fijo. Identifican actividades a realizar por un especialista UCD on site y las presentan agrupadas en cuatro etapas: inicialización, conceptualización, implementación y seguimiento. Una de las actividades de la primera etapa indica aplicar contextual inquiry con los potenciales usuarios y stakeholders.
Una de las técnicas que han resultado muy importantes al momento de integrar usabilidad con el enfoque HCI son las historias de usuario. En términos de interacción persona-ordenador éstas se utilizan para capturar las experiencias del usuario. Patton (Patton, 2005) aplicó historias de usuario para organizar la información sobre las necesidades del usuario, menciona que las historias de usuario deben mantenerse pequeñas y simples incluso para describir procesos iterativos complejos aunque esto signifique crear más historias. Singh propone el proceso U-SCRUM (Singh, 2008) donde el product backlog definido en este enfoque incluye historias con mayor detalle en relación a los criterios de aceptación y considera dentro de las historias de mayor prioridad aquellas que tienen impacto en la usabilidad. (Coatta et al., 2010) afirman que las historias de usuario ayudan a entender la funcionalidad y experiencia que el producto necesita tomando en cuenta las expectativas y deseos del usuario. Isomursu (Isomursu et al., 2012) describe el proceso de adopción de una metodología ágil en una compañía e identifica las historias de usuario como una importante herramienta durante todo el proceso de desarrollo que ayudó al equipo a tener una perspectiva completa que le permitiera entregar productos que cubrieran la funcionalidad y necesidades reales del usuario.