Una de las fases más críticas del ciclo de vida del software es precisamente la captación de requisitos y la definición del sistema. El proceso de comunicación con el cliente es muy complejo debido a que menudo éste no tiene conocimientos informáticos suficientes para expresar con palabras las especificaciones del software que necesita. Además, los clientes por lo general, no son capaces de determinar el esfuerzo necesario para realizar una determinada tarea y muchas veces, introducen en la descripción del proyecto pequeños detalles que complican sobremanera el desarrollo. Es responsabilidad del analista detectar estos casos y proponer alternativas en caso de que se pueda conseguir la misma funcionalidad utilizando otros caminos o herramientas.
Se ha escrito mucha literatura sobre esto y como es lógico, una entrada de blog no permite profundizar mucho en el tema. Por tanto me centraré en contar el proceso que, en base a nuestra experiencia, hemos desarrollado en intelligenia para reducir al mínimo las desviaciones entre lo que el cliente quería y el resultado final.
En primer lugar, para poder entender el por qué de nuestra metodología hay que analizar las particularidades de los proyectos que solemos desarrollar en intelligenia:
- Tamaño de los proyectos y temporización: Estos suelen ser proyectos de 1-4 meses en los que intervienen entre 3 y 5 personas, generalmente un analista, varios programadores y grafismo. Además se suele trabajar con tiempos ajustados donde muchas veces el time-to-market es crucial. Por estos motivos el proceso de análisis debe ser ágil y rápido, en detrimento de otros procesos de ingeniería del software clásicos.
- Perfil del cliente: Por lo general nuestros clientes no cuentan con formación informática y no se sienten cómodos con extensos documentos de análisis de requisitos, casos de uso y diagramas UML porque no son capaces de entenderlos. Por tanto el proceso debe ser sencillo, intuitivo o entendible por cualquier persona con conocimientos informáticos básicos.
- Modelo de negocio: Muchas veces nos encontramos con muy buenas ideas pero que no tienen totalmente definido su modelo de negocio por desconocer las particularidades del mundo online. Nuestro proceso de análisis debe ser capaz de detectar estas carencias y corregirlas, por tanto el proceso debe ser iterativo y abierto.
- En la web, la experiencia de usuario, la usabilidad y la imagen cobran especial relevancia y son aspectos sobre los que muchas veces el cliente quiere mantener cierto grado de control. Si además nuestra aplicación web ofrece algún producto o servicio, la forma de presentar estos e incluso la disposición de los botones son importantes y pueden significar un aumento de las ventas, por lo que entran en juego otras disciplinas como el marketing o la psicología. Por tanto, el proceso de comunicación con el cliente debe ser muy visual.
Por tanto, teniendo en cuenta todas estas características hemos desarrollado nuestro propio proceso de ingeniería del software al que hemos llamado "Desarrollo Orientado a Interfaces" y del que ya escribimos una introducción hace ya 6 años que puedes leer pulsando en el enlace.
A lo largo de estos 6 años hemos ido refinando este proceso para hacerlo incluso más ágil, incorporando herramientas que han surgido de forma natural en la web para resolver el prototipado inicial sin necesidad de escribir ni una línea de código, como Balsamiq Mockups. Balsamiq es una herramienta online que permite realizar de forma muy rápida prototipos colocando diferentes componentes predefinidos para construir las pantallas de nuestra aplicación. Además incluye un módulo de comentarios y un sistema de control de versiones que permiten que la comunicación con el cliente quede registrada en la web y sea sencilla.
Como mejor se puede entender nuestro proceso es ilustrándolo con un ejemplo y para ello voy a usar uno de los proyectos que hemos publicado recientemente: TUSPISTAS, ideado por un equipo de jóvenes emprendedores que pretenden unir los conceptos de amistad y deporte.
El proyecto consiste en una red social muy original que tiene como objetivo poner en contacto a diferentes personas, permitiendo hacer reservas conjuntas en pistas deportivas. Intelligenia ha contribuido primero como consultor, ayudando a definir el funcionamiento y lógica de la aplicación y después en el proceso de desarrollo encargándose de la experiencia de usuario y frontend.
El equipo de TUSPISTAS es muy multidisciplinar, y cuenta con expertos en marketing, finanzas y TIC, no obstante, todos querían ser partícipes del proceso de definición de la aplicación, ya que de esta forma todos podían aportar su experiencia y la aplicación saldría enriquecida, por lo que se hacía patente la necesidad de un mecanismo de comunicación ágil, y que todos pudieran entender. Es aquí donde entra en juego nuestro "Desarrollo Orientado a Interfaces" que ha demostrado encajar a la perfección en este proyecto.
El proceso se puede esquematizar de la siguiente forma:
En la primera etapa, es responsabilidad del analista recopilar toda la información posible del cliente. En algunos casos éstos incluso cuentan con cierta documentación interna que conviene analizar. Para ello se planifican una serie de entrevistas y reuniones en las que se toman notas y apuntes para poder realizar la segunda fase. En el caso de este ejemplo con TUSPISTAS, el cliente nos proporcionó unos esquemas sencillos del proyecto que completamos mediante varias reuniones. Un ejemplo de uno de los esquemas proporcionado por el cliente, en este caso el proceso de reserva de una pista, se puede ver en la siguiente imagen:
Tras diferentes reuniones mantenidas con el cliente se desarrollaron las fases 2 y 3 del esquema anteriormente indicado obteniendo como resultado final el siguiente boceto:
En el ya se puede apreciar no solo la disposición de todos los elementos si no también las interacciones del usuario teniendo en cuenta la relevancia de cada uno de los elementos. Como se puede observar, aquí se detectaron muchos detalles no recogidos en el boceto inicial planteado por el cliente que eran imprescindibles tales como la información del club donde se hace la reserva o el selector de horario y pista, y además se mejoró la usabilidad ocultando inicialmente ciertos elementos no fundamentales y mejorando el formulario de búsqueda con opciones adicionales.
Tras la aprobación por parte del cliente de cada una de las pantallas del proyecto, entra en juego grafismo, que debe convertir los bocetos realizados en algo visualmente atractivo y aportar los últimos detalles en usabilidad. Podemos ver el resultado en la siguiente pantalla:
Tras esto terminaría el análisis y comenzaría el proceso de desarrollo del proyecto. Hasta ahora no ha sido necesario escribir ni una sola línea de código y sin embargo ya tenemos bocetos finales de como se comportará el sistema desarrollado. Cliente y desarrollador están contentos porque tienen unas especificaciones claras del proyecto y los malentendidos quedan reducidos al mínimo.
A los que os guste el deporte os invito a que os registréis en TUSPISTAS.es donde podréis ver el resultado final.
Iván García García
perfecto muy buen post esta bien ilustrado
ResponderEliminarMuchas gracias :)
ResponderEliminar