Hace unos días tuve
el privilegio de poder participar en el Barcamp 2011 donde pude
compartir una visión respecto a la Arquitectura de la Información aplicada al proceso de Ingeniería de Software.
Básicamente la
exposicion se trato de la metodología que hemos trabajado y depurado
en el equipo de trabajo que me desempeño, para enfrentar proyectos
Web.
A continuación comparto mi presentación.
Arquitectura
de la Información en la Ingeniería de Software
Como
la Arquitectura de la Información potencia la Ingeniería de
Software al desarrollar para la Web.
¿Y
que tengo para contar?
Resultados de la
aplicación de la A.I en el ciclo de desarrollo de software:
- Al momento de modelar procesos de negocio.
- Al momento de diseñar un flujo de trabajo.
- Al momento de desarrollar.
- Al incorporar a nuevos miembros al equipo de desarrollo.
- Al incluir al usuario final desde la etapa 0.
- Al tener que enfrentar cambios drásticos en el producto.
¿Que
hacemos de novedoso?
- La verdad es que nada.
- Recolectamos técnicas de desarrollo existentes y generamos un set de pasos mínimos para aplicar a nuestros proyectos.
- Estos pasos tienen carácter obligatorio e involucran, consiente o inconscientemente al usuario final.
- Lo más importante, quitamos el foco de la tecnología y lo pusimos en la metodología para beneficiar al usuario final.
¿Y
podemos conocer los pasos?
- Diseño del flujo del negocio.Para esto realizamos un flujo de los procesos de negocio.
- Entrevistamos al usuario final, con énfasis en la mejora que debería contar el proceso.
- Modelamos los procesos de negocio con sus correspondientes actores.
- Como en todo proceso comenzamos el modelamiento con una simple pregunta: ¿que quieren?
- Luego buscamos cuestionarlos: ¿pero estás seguro que es mejor así?
Diagrama
de Interacción
- Del diagrama de procesos generamos la navegación del sistema, o sea, el diagrama de interacción.
- El usuario participa en este punto tanto para mantenerlo al tanto del proceso como para evitar desviarnos de la necesidad de este.
- Nos basamos en el modelamiento propuesto por Jesse James Garret
Modelamiento
de la Base de Datos
- Luego pasamos a preguntar: ¿y que quieren registrar?
- Ante la respuesta: “Todo”, preguntamos ¿y te sirve?
- Con la fase anterior y el modelo relacional tenemos suficiente para hacer una gran pregunta que nos sirve para generar un hito: ¿que es lo que más te urge en este momento?
Wireframes
y algo más
- Wireframes de baja calidad para revisión y correcciones internas
- Wireframes de media calidad para revisión con el usuario.
- Maquetas del sitio (opcional).
- Aprovechamos la potencia de los mocks (mockflow), para fusionar dos etapas el Wireframe y los casos de uso, así la especificación de la interfaz es una guía completa tanto para el desarrollador y como el diseñador.
¿Que
tenemos hasta aquí?
- Alto nivel de involucramiento del usuario final.
- Documentación de todo el proceso de diseño tanto de negocio como estructural del sitio Web.
- Especificaciones más precisas para los desarrolladores y diseñadores gráficos.
- Nuevamente, el foco deja de estar en la tecnología y se situá en el usuario.
- Por lo mismo el usuario es “evangelizado”, conoce de mejor forma las funciones de sus compañeros y siente que su participación es importante para el éxito del proyecto.
Planificación
- Al tener ya la estructura de la base de datos, la navegación, el diseño de interfaces con sus casos de uso; se hace mas precisa la estimación de esfuerzo para la planificación del proyecto.
- Se plantea un primer entregable que consiste en atacar aquel requerimiento más urgente.
Construcción
- Nuevamente privilegiamos la metodología por sobre la tecnología.
- Uso del Modelo/Vista/Controlador
- Desarrollo mediante prototipos, los que van en sintonía con las fases del proyecto.
- Uso de FrameWorks tanto para abstracción de capa de datos como gestores de templates de la capa de presentación.
- Ahhhh... opensource ;)
¿Y
las pruebas?
- Aparte de las pruebas unitarias y de integración, es muy importante objetivizar la satisfacción del usuario.
- Pruebas heurísticas y Think aloud... de forma casi invisible, el usuario ayuda aun más cuando no sabe que está siendo encuestado ;) .
Analítica y visualizacion de datos
- Casi tan importante como la captura de datos es la actividad de visualización de datos.
- Sobre todo cuando se manejan sistemas comerciales, se privilegia el reporte gráfico por sobre listas de datos.
- Un buen trabajo de interpretación de datos libera la dependencia del “excel” lo que se traduce en optimización del tiempo de los usuarios.
¿Y
los resultados?
- Los efectos de aplicar un ciclo de desarrollo de Software, donde el foco es el usuario nos ha permitido:
- Ganar credibilidad para el equipo.
- Evitar situaciones de cambios de especificaciones por el motivo de: “no era lo que dije”
- Desarrollo ágil, económico (tanto en recursos de hardware como licenciamiento)
- Rápida capacitación de nuevos integrantes del equipo, facilita la rotación.
- Una mejor calidad de la documentación del proyecto.
- Este proceso es fácilmente integrable a otras metodologías de desarrollo como CMMI o ISO.
- Mejora de la etapa de Q.A, al poder medir la experiencia de usuario dentro del sistema.
- Proceso de diseño y estructuración rápido.
- Mejores resultados al reutilizar proyectos anteriores.
Para
terminar
- La Arquitectura de la Información ofrece nuevas herramientas para los desarrolladores.
- Mejora la comunicación dentro de un equipo de desarrollo al permitir que el programador y el diseñador convivan sin la clásica disputa “funcionalidad sobre gráfica”.
- Devuelve al informático al origen: Metodología.
- Pone como principal actor del proceso de desarrollo al usuario.
