miércoles, octubre 03, 2007

¿Cómo incorporar la usabilidad en tus proyectos de desarrollo de software?

IBM vs. usability.gov

Todo proyecto de software (un aplicativo de escritorio o una Web) pasa por un Proceso de Desarrollo con unos pasos ya muy bien identificados, a saber:
  1. Planeación / Análisis
  2. Diseño
  3. Desarrollo
  4. Verificación y Pruebas
  5. Mantenimiento

Estos pasos no son una camisa de fuerza y dependen mucho del tipo de proyecto, de la metodología abordada, entre otros. Sin embargo, todo desarrollo pasa por estos pasos de una u otra manera.

Ahora, si estás en el área de Ingeniería de Software deberás conocer y trabajar el RUP de IBM (Rational Unified Process), la principal metodología de desarrollo de software que hay en este momento en el mundo.

El RUP toma este proceso de desarrollo, lo define como Ciclo de Vida del Proyecto y lo limita a estas cuatro fases:
  • Inicio: en donde se hace la mayor parte de la planeación (paso 1 inicial).
  • Elaboración: en donde se hace la mayor parte del diseño (paso 2 inicial).
  • Construcción: en donde se desarrolla la mayor parte del producto (paso 3 inicial).
  • Transición: en donde se hacen las pruebas finales, se instala y se da mantenimiento (pasos 4 y 5 iniciales).

Gráfico del Ciclo de Vida del RUP:

Ciclo de Vida del RUP

En cuanto a la Usabilidad lo que la mayoría de veces hemos leído es que para conseguir un producto usable es necesario seguir una serie de buenas prácticas. Esta tarea, por lo tanto, podemos considerarla una actividad y como tal podría acoplarse en el Ciclo de Vida del Proyecto.

Por la experiencia que he tenido sé que esta actividad no es muy tenida en cuenta en los proyectos y es más por iniciativa de diseñadores y desarrolladores, quienes se han empapado de estas buenas prácticas, que incorporan esta actividad en las fases de:
  • Elaboración (como están diseñando tienen en cuenta las buenas prácticas).
  • Construcción (como están desarrollando tienen en cuenta…).
  • Transición (como están probando y/o manteniendo…).

Así que, como desarrollador y diseñador, la forma de incorporar la usabilidad en tus proyectos es teniendo muy en cuenta estas buenas prácticas durante el Ciclo de Vida del Proyecto. Y si eres gerente de proyecto o tester, simplemente deberías conocerlas y evaluar su implementación por parte de ellos.

Gráfico del Ciclo de Vida del RUP incluyendo las buenas prácticas de usabilidad:

Ciclo de Vida del RUP incluyendo las buenas prácticas de usabilidad

Sin embargo, la usabilidad implica mucho más que seguir unas buenas prácticas. Y es así como deberías conocer muchas otras actividades propias de ella, como: entrevistas con usuarios, evaluación con heurísticas, aplicación de técnicas como el card sorting, entre otras.

Muchas de estas actividades hacen parte de una metodología, la del Diseño Centrado en el Usuario (UCD por su sigla en inglés), la cual ha presentado Olga Carreras en su blog, y en donde la define como "una metodología estructurada de desarrollo de producto que implica a los usuarios a través de todas las etapas de desarrollo del mismo".

Esta metodología es la desarrollada por el gobierno es Estados Unidos e igualmente divide el proceso de desarrollo en unos pasos, los cuales corresponden perfectamente con el RUP:
  • Planear.
  • Analizar.
  • Diseñar.
  • Probar y Depurar.

Gráfico del UCD comparado con el Ciclo de Vida del RUP:

El UCD comparado con el Ciclo de Vida del RUP

Con tal concordancia y con el objetivo de incorporar la usabilidad en nuestros proyectos de desarrollo, ¿podemos contemplar simplemente un cambio de metodología? ¿Abandonar RUP y abordar UCD? ¡No! Aunque parecieran muy similares, su estructura interna, su forma de trabajo, sus métodos, sus artefactos, entre otros, son muy diferentes. RUP es realmente muy poderoso, está muy desarrollado y está tan posicionado, que no veo viable su omisión.

Pero lo que si podemos hacer, es incorporar actividades de una metodología en la otra. Así que la segunda manera de incorporar la usabilidad en nuestros proyectos de desarrollo de software es incluyendo actividades del UCD al RUP.

Gráfico del Ciclo de Vida del RUP con actividades del UDC:

El Ciclo de Vida del RUP con actividades del UDC

¿Cómo te parece? Sin ser experto en RUP y mucho menos en UCD, me parece una idea viable y un camino para comenzar a implementar la Usabilidad fuertemente en los proyectos de desarrollo Web, los cuales han demostrado que definitivamente lo necesitan.

¿Trabajas RUP? Te invito entonces a conocer el Diseño Centrado en el Usuario en el artículo: La usabilidad como metodología para el desarrollo de una aplicación.

Es este artículo se presentan estupendamente todas las actividades generales de esta metodología y estoy seguro que fácilmente podrás incorporar varias de ellas en tu próximo proyecto.

¿No trabajas RUP? No te preocupes. Igualmente puedes revisar la metodología, conocerla y ¿por qué no?, incorporarla en tus nuevos desarrollos.

Actualización 1: Ya han hablado algunos conocedores de RUP. Te recomiendo que leas el sexto comentario de este post.
¡En el comentario se hace referencia a este gráfico de actividades del UCD! Perdón por el vínculo errado.

Actualización 2: Navegando en el blog El Factor Humano de Nelson Rodríguez encontré que él hizo una propuesta parecida hace más de un año. El planteó la unión del Diseño Centrado en el Usuario a otras Metodologías de Desarrollo de Software (como el RUP), tomando sus principales disciplinas (la Arquitectura de Información, la Usabilidad, el Diseño de Interacción, Diseño de Interfaces y el Diseño Gráfico) e ilustrando cómo cada una de ellas participa dentro del proceso de desarrollo y cómo se relacionan en términos de dependencias. Es muy interesante, ya que acabas de leer lo que hemos desarrollado, que leas este complemento.

7 comentarios:

eusebio dijo...

Un post muy interesante, muchas gracias por compartirlo.

Respecto al gráfico en el que planteas la integración de del RUP y UCD, figura 4, tengo una observación.

Las fases Plan, Analyze y Design de Usability.gov para mi irían entre Inicio y Elaboración de RUP. Dejando Testing y Refine en un punto de Arranque de la Construcción, con controles de calidad a lo largo del proceso.

La razón de esto esta en la lógica de los procesos, y en los timing clásicos de desarrollo de productos web.

Pero esto solo es una opinión y no pretendo crear un cisma por ello ni parecer muy puntilloso, y esta opinión no resta nada de merito a un post tan interesante.

Un saludo

Gabriel Porras dijo...

Muchas gracias Eusebio.

Tu aporte es totalmente válido.

La fase de Diseño de UCD realmente tiene mucho de Elaboración del RUP. Y al final de ella es cuando se Construye.

No fui muy estricto en esto porque la idea que quiero dejar NO es la unir ambas metodologías sino incorporar algunas actividades de UCD a RUP.

!Muchas gracias!

Olga Carreras dijo...

Me gusta mucho tu post, yo también creo que no se trata de sustituir una metodología por otra ni de elegir entre ambas, sino que son complementarias, y una metodología de desarrollo de software debe incorporar UCD.

Anónimo dijo...

¿Cuanto puede constar hacer esto, o en cuanto se incrementan los costos de un proyecto por hacer esto?

Gabriel Porras dijo...

El costo es demasiado relativo.

Si hablamos de incluir unas buenas prácticas, debería ser cero, porque tus diseñadores "diseñan" teniéndolas en cuenta.

Si hablamos de incluir las actividades del UCD al RUP, dependerá mucho del número de actividades que incluyas y en cuántas iteraciones.

Te recomendaría mejor consultar con algún experto en RUP y otro en UCD.

Gabriel Porras dijo...

Compañeros de Intergrupo han comentado que mi propuesta de incorporar actividades del UCD al RUP puede mejorarse.

A continuación los comentarios de uno de ellos, Wilmar Hernando Hincapie, quien hace una muy buena claridad al respecto:

Me parece muy acertada la recomendación “(…) la forma de incorporar la usabilidad en tus proyectos es teniendo muy en cuenta estas buenas prácticas durante el Ciclo de Vida del Proyecto (…)” y quisiera hacer una aclaración al respecto:

Si bien RUP define 4 fases para el Ciclo de Vida del Proyecto, en cada fase hay una o varias iteraciones en las que se realizan actividades concernientes a las disciplinas:

1. Modelado de Negocio
2. Requisitos
3. Análisis y diseño
4. Implementación
5. Pruebas
6. Despliegue
7. Configuración y gestión de cambios
8. Gerencia del proyecto
9. Ambiente

Sin conocer UCD y basado en el gráfico de sus actividades me arriesgo a afirmar que es más acertado mapear sus pasos a las disciplinas en vez de las fases, de la siguiente manera:

Paso en UCD > Disciplina en RUP
- Planear (audiencia, experto en usabilidad...) > Gerencia del proyecto
- Analizar (entrevistas, personas, escenarios...) > Requisitos
- Diseñar (card sorting, arquitectura de I., prototipo...) > Requisitos, Análisis y diseño, Implementación
- Probar y depurar (test de usabilidad..) > Pruebas

Algunas actividades pueden no ser necesarias después de las primeras iteraciones.

De este modo, se incluirían las buenas prácticas durante todo el Ciclo de Vida del Proyecto, no sólo unas actividades de UCD en sólo unas fases del proyecto, donde ya puede ser costoso incorporarlas a los artefactos existentes.

Gabriel Porras dijo...

Excelente aporte Wilmar...

Pero aclaremos algo en cuanto a incorporar la usabilidad:

1. La primera forma que menciono, en donde me refiero a aplicar unas "buenas prácticas de usabilidad", NO tienen que ver directamente con las actividades del UCD.

En cuanto a buenas prácticas de usabilidad, las cuales deberíamos tener en cuenta (diseñadores y desarrolladores) durante todas las iteraciones del RUP, me refiero a cosas como:

- Poner siempre el logotipo del sitio en la parte superior izquierda.
- Incluir las "migas de pan" (breadcrumb) en toda página.
- Ofrecer un diseño consistente a través de todo el sitio.
- Escribir títulos claros y descriptivos en todas tus páginas.
- Ofrecerle a tus visitantes una navegación clara y entendible.
- No abrir ventanas nuevas ni pop-ups.
- No cambiar el tamaño del navegador.
- ....

2. La segunda forma, la de incluir algunas actividades del UCD al RUP, te doy toda la razón y Lucho ya me lo había mencionado (Uds perdonarán, pues no soy experto en RUP). ; )

Es totalmente viable, y estaría mejor planetado, el mapear los pasos del UCD a las disciplinas del RUP, en lugar de a sus fases.