Tal y como se define en Wikipedia las metodologías de desarrollo de software, son el marco de trabajo usado para estructurar, planear y controlar el proceso de desarrollo en sistemas de información. Aunque ya hemos mencionado en algún artículo otras metodologías tales como la metodología en cascada y las metodologías ágiles, voy a centrarme en la metodología iterativa o incremental, metodología que solemos aplicar en mi empresa, debido normalmente a la necesidad de realizar una sustitución rápida y eficaz sobre el sistema legacy y sobre el cual los clientes comienzan a tener problemas graves de rendimiento, funcionalidad y de actualización en el ámbito legal y fiscal vigente.
Esta metodología nos permite realizar una evolución sostenida de la solución prácticamente desde el primer momento, teniendo en cuenta que la solución seleccionada, tal cual, ya suele cubrir gran parte de las necesidades actuales debido a la verticalización de las aplicaciones. Durante las distintas iteraciones se va suministrando al cliente funcionalidad adicional, construyendo así un entorno adecuado para el cumplimiento de los requerimientos, en ocasiones cambiantes.
La metodología iterativa o incremental, además, suele limar la resistencia al cambio que ofrecen ciertos usuarios “acostumbrados” al software a medida, etc. Todo ello requiere de un proceso rápido de ejecución en la implantación e iteraciones posteriores que ofrezcan mejoras sobre el producto inicial.
Las distintas etapas y tareas que compondrán la metodología iterativa en el ámbito de la ejecución del proyecto (o roadmap de implantación), podemos desglosarla en las distintas etapas y tareas (algunas de ellas son comunes a otras metodologías):
1.- Metodología iterativa: Fase preparación
- Staffing y planificación. Aceptación proyecto, asignación fecha inicio y fecha arranque proyecto.
- Recursos del proyecto: cliente y proveedor. Identificación de los principales recursos humanos del proveedor (consultores experimentados y conocedores del sector) y de los recursos del cliente (responsable/s de proyecto).
- Áreas clave y designación key users. Áreas a cubrir por el proyecto y usuarios clave afectados.
- Planificación y calendario reuniones con responsables proyecto. Cronograma reuniones de primer nivel (entiéndase primer nivel por funcionalidades principales, sin detalle).
- Identificación requerimientos a cubrir. Requerimientos de primer nivel que debe cubrir el proyecto
- Comunicación al cliente metodología del proyecto. Metodología adecuada para la implantación: cascada, iterativa, ágil. En nuestro caso, normalmente, iterativa.
- Aprobación planificación y reuniones Confirmación cronogramas de reuniones.
- Reunión kick-off. Reunión formal de inicio de proyecto
- Inicio del proyecto. Reunión formal de inicio de proyecto
- Presentación equipos de trabajo. Presentación entre consultores, responsables de área y usuarios.
- Comunicación objetivos y alcance proyecto. Comunicación de los objetivos a conseguir con la implantación del proyecto, repercusión y mejoras ofrecidas por el nuevo sistema. Es clave este punto si queremos “subir” al mismo barco a los stakeholders principales.
- Definición calendario trabajo. Cronograma de actividades y tareas.
- Roles y usuarios. Responsabilidades de cada uno. Definición de los usuarios intervinientes en el proyecto, así como sus perfiles, roles, seguridad, etc.
- Mecanismos de control de seguimiento y coordinación. Preparación de documentación y actas de objetivos y logros cubiertos (o su contrario).
- Formación preliminar. Reunión para comunicación de objetivos a todos los usuarios y solicitar información.
- Implicación/involucración de todo el equipo en el proyecto.
- Solicitud documentación relevante. Recopilación de ejemplos de documentación interna, saliente y entrante con la finalidad de evidenciar información relevante.
2.- Metodología iterativa: Fase Definición
Todas las actividades orientadas a reconocer funcionalidades necesarias en el nuevo sistema.
- Diseño funcional del sistema. Especificaciones y compatibilidad entre requerimientos y funcionalidad del sistema.
- Ampliación al detalle del análisis requerimientos inicial. Levantamiento de requerimientos en detalle y consolidación con los iniciales.
- Definición procesos objetivo y análisis de posibles mejoras. Objetivos y procesos a alcanzar. Reingeniería de procesos.
- Análisis diferencial entre la herramienta y los procesos objetivo (Análisis GAP). Comparación entre la herramienta “tal cual” y los procesos propuestos.
- Funcionalidades ajenas al core o disponible mediante extensiones o desarrollos. Necesidades no incorporadas en la herramienta, posibilidad de inclusión a través de plugins o necesidad de customización.
- Diseño interfaces con otras herramientas. Integración entre core de la herramienta con aplicaciones externas.
- Estrategia migración datos: uso de plantillas Estudio de los datos del sistema anterior, análisis de equivalencias y grado de compatibilidad con el nuevo sistema. Uso de plantillas o asistentes de migración.
- Aprobación diseño funcional. Formalización y aceptación de los cambios a implementar.
3.- Metodología iterativa: Fase prototipado iterativo
Fase de desarrollo, ajustes, parametrización y customización incremental.
- Instalación entorno desarrollo. Preparación entorno desarrollos y/o pruebas.
- Construcción iterativa
- Configuración y parametrización módulos y extensiones Instalación módulos necesarios y extensiones. Configuración y parametrización.
- Diseño y desarrollo funcionalidad adicional. Desarrollos adicionales al core de la herramienta. Integración sobre el estándar o como customización.
- Adaptación de informes. Ajustes y adaptación impresos con imagen corporativa y personalizaciones.
- Desarrollo interfaces con otras herramientas Entornos de integración con herramientas ajenas al core.
- Realización de pruebas y feedback con implantador y/o fabricante. Pruebas unitarias y retroalimentación con implantadores y/o desarrolladores. Vuelta al principio y nueva iteración hasta su validación.
- Instalación entorno de producción. Instalación modificaciones en entorno de producción de aquellos desarrollos validados.
- Diseño, desarrollo y adaptación procesos migración de datos. Ajustes y adaptación de las plantillas y procesos para la migración de datos.
- Validación por parte del cliente. Vuelta al principio y nueva iteración.
4.- Metodología iterativa: Fase preparación final
Fase definitiva para la puesta en producción del nuevo sistema.
- Preparación entornos de prueba y producción. Reajustes de ambos entornos para la fase de despliegue final.
- Certificación del sistema y su integración con otras herramientas. Pruebas de integración entre todos los módulos, extensiones y desarrollos adicionales.
- Pruebas de rendimiento. Garantización del rendimiento y la productividad del entorno de producción.
- Plan de formación y comunicación: generación documentación. Despliegue documentación operacional de los flujos de trabajo y comunicación operaciones.
- Migración de datos. Migración definitiva de los datos.
- Configuración de seguridad. Perfilado de los usuarios, roles y niveles de seguridad.
- Aceptación del sistema. Validación y aceptación del proyecto.
5.- Metodología iterativa: Fase Go live & Support
- Puesta en producción del sistema. Arranque del nuevo sistema (normalmente cierre del anterior a modo solo consulta).
- Corrección de incidencias. Detección y corrección de incidencias o nuevas casuísticas no detectadas en fases previas.
- Soporte a usuarios en operativa diaria. Apoyo consultores en los primeros días del arranque para resolver nuevas dudas o errores no localizados.
- Activación contrato soporte, mantenimiento y cierre del proyecto. Todo el soporte adicional operativo y funcional adicional. Entrada en modo mantenimiento (por ejemplo 6 meses después).
- Labores de mantenimiento y actualización del sistema. Actualizaciones del sistema QA
- Sistema de pruebas paralelo al entorno de producción. Entorno réplica del entorno de producción para la realización de pruebas en paralelo de ciertos procesos críticos o no explorados.
(En el Master en Software Libre de Gestión: Open Source & ERP II, estamos analizando situaciones como la que aquí acabamos de mostrar).
Autor: Sergio Martínez
Recibe nuevos artículos mediante suscripción por e-mail, RSS o Feedly |
|
Como puedo aplicar esta metodología en el desarrollo de un sistema de inventarios.