Ciclo de vida de aplicaciones SaaS

¿Qué sistema de gestión necesita su empresa?

En la actualidad los proveedores de SaaS no han determinado las mejores prácticas para el desarrollo e implementación de este tipo de aplicación tecnología. Por ello las metodologías tradicionales se las considera como suficientes para desarrollar modelos SaaS.

Tomando en cuenta lo antes mencionado las metodologías tradicionales son examinadas para luego plantearlas de tal manera que le den un enfoque diferente para así cumplir los requerimientos predefinidos que se han planteados.

Requerimientos

En el enfoque tradicional, los requerimientos consisten en definir una serie de funciones que satisfagan las necesidades de un cliente. En el caso de las aplicaciones SaaS, los desarrollos son meramente basados en un modelo de negocio. Eso es, una aplicación SaaS debe cumplir con los requerimientos de un mercado meta. Debido a que las aplicaciones serán consumidas por un gran número de suscriptores, las empresas clientes, y cada uno puede tener potencialmente un número grande de usuarios, entonces deben agregarse más requerimientos no funcionales, como por ejemplo: soporte para alta concurrencia, almacenamiento escalable, virtualización/ clustering entre otros. Las actividades propuestas son:

Definición de un plan de requerimientos de negocio

Deben ser identificadas las características del plan de negocio para ser transformadas a requerimientos funcionales.

Análisis del mercado meta

Catalogar y puntualizar las necesidades principales del mercado meta. Se deben evaluar las necesidades del mercado y definir características de alto valor para los clientes potenciales. En esta actividad se van identificando los requerimientos no-funcionales que se mencionaron anteriormente.

Definición de las funcionalidades

Puntualizar las características principales como funciones de cada aplicación que será entregada como servicio. Estas funcionalidades deben ser completamente alineadas al mercado y no a los requerimientos de un solo cliente.

Análisis

La etapa de análisis debe ser realizada también desde la perspectiva de negocio. Esto es debido a que cada aplicación tratará de satisfacer las necesidades de un amplio número de clientes.
La definición de los procesos de negocio que soportará cada aplicación es un paso importante en este tipo de aplicaciones, ya que debe permitir la personalización y definición de procesos similares para cada proveedor.

Análisis de procesos de negocio

En esta actividad se deben analizar los procesos de negocio que serán automatizados con la aplicación. Por ejemplo, si se desarrolla un CRM, se deben analizar los procesos de venta y su integración con otros procesos como cadenas de suministro, por ejemplo. Cada proceso con sus actividades, roles y reglas de ejecución debiera ser documentados.

Desarrollar casos de uso

Tarea formal en metodologías existentes, que debiera hacerse para documentar y modelar las funcionalidades de la aplicación.

Diseño

La fase de diseño consiste en desarrollar documentación que soporte la etapa de construcción:

Investigación de oferta/ tecnologías

Es importante en esta etapa hacer investigación sobre las ofertas que soporten las necesidades identificadas. Un entregable puede ser un documento de investigación acerca de plataformas SaaS, proveedores existentes, frameworks, componentes.

Evaluación de la oferta

Es importante definir cuál es la plataforma y las tecnologías que serán usadas en el proceso de desarrollo. Las pruebas de concepto en esta etapa son necesarias, para realmente determinar si la plataforma y tecnologías cumplen con los requerimientos tanto de negocio como técnicos.

Arquitectura de servicios

En este caso, las decisiones arquitecturales están basadas en las premisas SaaS y la plataforma que las soporta. Debido a que las plataformas SaaS están diseñadas para ofrecer una infraestructura de servicios, los componentes de la aplicación deberían ser diseñadas bajo este enfoque.

Ingeniería de procesos de negocio

Incluso cuando la aplicación debe proveer una definición predeterminada del proceso de negocio que ejecutará, su valor se incrementa cuando es posible definir cada proceso de acuerdo al cliente.

Documentación tradicional

Esta actividad involucra diversas tareas comunes como diagramas UML. Se trata de la documentación formal de la aplicación y depende de las especificaciones de la misma.

Diseñar casos de prueba

Esta tarea resulta obviamente importante para cualquier proyecto serio. Se deben incluir mecanismos de pruebas unitarias, de integración, de rendimiento, etc.

Prototipos

Los recursos y la habilidad de generar y desplegar aplicaciones en plataformas SaaS puede ser explotado a través de la construcción de prototipos.

Implementación

Además de las tareas comunes involucradas en la implementación, dentro del proyecto SaaS, es necesario considerar a la plataforma que soporta las aplicaciones.

Desarrollo de servicios de negocio

Se trata de codificar las interfaces principales de la aplicación, así como sus implementaciones.

Integración con los servicios de la plataforma

Desarrollar el código para consumir los servicios que la aplicación necesita para operar. Estos servicios consumidos pueden ser de seguridad, logging, métricas, etc.

Modelizar la lógica de negocio

Implementación de las reglas de negocio para los módulos de la aplicación.

Desarrollo de integración

Si es necesario, desarrollar código para integrarse con otros sistemas.

Implementación

Asegurarse que toda la implementación trabaja correctamente. Esta actividad cubre revisión de código, mejores prácticas, revisión de complejidad ciclomática, pruebas funcionales, entre otros.

Pruebas

La principal diferencia entre las metodologías tradicionales y la propuesta para SaaS radica en que las pruebas de integración necesitan validar la integración correcta entre las aplicaciones y la plataforma. Otra diferencia importante es en cuanto a las pruebas de rendimiento y métricas de uso.

Pruebas unitarias

Estas pruebas son desarrolladas y ejecutadas por cada desarrollador.

Pruebas de integración

Pruebas importantes en cuanto a la integración con la plataforma, con otros módulos de la aplicación y con otras aplicaciones.

Pruebas de rendimiento

Cada aplicación tiene sus propios requerimientos de rendimiento, en este caso, las aplicaciones SaaS tienen una fuerte dependencia en el número de usuarios y sus especificaciones.

Pruebas de medición de tenants

La aplicación no debiera implementar código para logging o medición de uso. Estos componentes son responsabilidad de la plataforma misma. El objetivo de estas pruebas es asegurar que el uso y debug de cada aplicación es correctamente registrado y para cada tenant (cliente y/o proveedor).

Aprobación Técnica

Consiste en correr todas las pruebas sistemáticamente y asegurarse que la aplicación es correctamente desplegada a producción. En el caso de actualizaciones y bugfixes, la plataforma debe proporcionar mecanismos de “vuelta atrás” (rollback) cuando existan fallas y se pueda regresar a versiones anteriores.

Autores: José Ignacio Ozaeta Bermúdez, Eddy Reinaldo Vera Mejía.

Adpatado por la División Consultoría de EvaluandoCloud.com

¿Qué sistema de gestión necesita su empresa?