Home arrow Servicios arrow Soporte al Ciclo de Vida
Soporte al Ciclo de Vida del Software

La innovación permanente es uno de los factores clave para mantener la diferencia competitiva en el mercado. Por este motivo, el soporte a una aplicación no consiste únicamente en “mantener las luces encendidas” (es decir, que siga funcionando), sino que además, es necesario ir incorporando todas las necesidades que van surgiendo con la propia dinámica del negocio, bajo un clima de fiabilidad que garantice las operaciones.

Por todo lo anterior, una vez puesta en marcha una aplicación en producción, ésta se vuelve una parte esencial del negocio y requiere, además de ser mantenida de forma eficiente y con respuesta a los problemas que puedan aparecer con la máxima celeridad posible, ser evolucionada para adaptarse a las dinámicas del negocio.

En Kynetia consideramos el soporte de las aplicaciones como algo estratégico y, por tanto, algo que debe abordarse a lo largo de todo el ciclo de vida de la misma y no sólo a la última fase. Por este motivo, bajo nuestra visión, el mantenimiento de la aplicación comienza en el mismo momento en el que comienza el diseño de la arquitectura. En muchas ocasiones se asocia el “soporte de la aplicación”, con que ésta “esté funcionando sin problemas en un entorno de producción”. Eso es totalmente cierto, pero para nosotros, eso es sólo una parte del servicio de soporte, importante, sin duda, pero no la única. Es necesario:

  • Incorporar innovaciones » Incremento de la competitividad
  • Monitorizar la arquitectura » ¿sigue sirviendo para las necesidades actuales y futuras?
  • Monitorizar los servicios » ¿cumplen con las funciones de negocio?
  • Monitorizar la evolución del código fuente » ¿Sigue las guías Governance?
  • Monitorizar el rendimiento » Anticiparse a fallos
  • Realizar una buena gestión de releases
  • Etc.

Por todos esos motivos, bajo nuestro punto de vista, es fundamental que durante la fase de arquitectura se contemplen los distintos artefactos que serán necesarios para que la aplicación, dentro de un entorno de producción, pueda ser debidamente monitorizada y mantenida en todos sus aspectos: arquitectura, código fuente, seguridad, rendimiento, etc. Es lo que nosotros denominamos Soporte al Ciclo de Vida del Software o Live Software Support (LSS).

A todo ello, se une el hecho de que en muchas ocasiones, la decisión de poner una versión nueva de la aplicación (release, en inglés) en producción, es una decisión estratégica, por lo costoso de revertirla. Esto requiere que no sólo deba existir una metodología de soporte, sino que además, exista una metodología en la toma de decisiones cuyo criterio esté alineado con la estrategia de nuestro cliente.

Debemos tener en cuenta que una decisión acerca de poner una nueva release en producción puede ser vista desde diversas perspectivas:

Niveles de servicio del Soporte al Ciclo de Vida del Software
  • Maximizar la operatividad. Si una release se pone en producción de forma muy prematura, posteriormente se incurrirá en costes para solucionar problemas que no pudieron identificarse antes por la precipitación de la decisión. Sin embargo, si se pone demasiado tarde, se estará incurriendo en costes adicionales de desarrollo y de oportunidad de mercado. Ambas alternativas deben estudiarse para determinar aquella que maximiza el valor económico.
  • Optimizar la operatividad. Una decisión sobre la puesta en producción se ve afectada por la dificultad de verificar la correcta implementación de los requisitos funcionales y no funcionales.
  • Satisfacer la operatividad. En muchas ocasiones, la toma de la decisión de puesta en producción de una release implica a varios interesados que, a su vez, pueden tener diferentes presiones políticas, de negocio, etc., aunque conocen que el producto puede seguir conteniendo defectos.
  • Implementar la decisión. Podemos considerar una decisión correcta si existe congruencia entre el resultado esperado y el resultado actual. Esta es la definición que fija los requisitos para la implementación de la decisión.

Por este motivo, la metodología que implementamos en Kynetia de cara a tomar decisiones sobre la puesta en producción de releases nos permite analizar todas las perspectivas y, de este modo, intentar conseguir en todos los casos la decisión más acertada.

En nuestro servicio de Soporte al Ciclo de Vida del Software (LSS) ofrecemos tres niveles de servicio distintos: LSS Standard, LSS Continuum y LSS Strategic.

Característica Standard Continuum Strategic
Asignación Account Manager NO OK
Mantenimiento de Aplicación OK OK OK
Mantenimiento de Arquitectura NO NO OK
Mantenimiento de Infraestructura Opcional Opcional Opcional
Metodología releases NO NO OK
Mantenimiento Correctivo
Sistema de gestión de incidencias OK OK OK
Verificación de datos OK OK OK
Documentación know-how OK OK OK
Análisis post-corrección OK OK OK
Mecanismos de coherencia entre entornos OK OK OK
Mantenimiento Preventivo
Monitorización continua NO OK OK
Ejecución periódica de pruebas NO OK OK
Análisis de pruebas NO OK OK
Elaboración de planes de contingencia NO NO OK
Distribución de Know-How NO NO OK
Mantenimiento Perfectivo
Aseguramiento del rendimiento óptimo NO NO OK
Análisis de posibles cambios en las necesidades NO NO OK
Análisis proactivo del diseño y uso de la base de datos NO NO OK
Mantenimiento evolutivo de infraestructura
Estudio de nuevas versiones de software de infraestructura NO NO OK
Evolución de la infraestructura en función de las necesidades de negocio y tecnológicas NO NO OK

 

Mantenimiento correctivo

Dentro del servicio integral de Soporte al Ciclo de Vida del Software se encuentra el servicio de Mantenimiento Correctivo, mediante el cual se ofrecen soluciones a las incidencias surgidas en los distintos sistemas.

Estas incidencias serán analizadas y solventadas atendiendo principalmente a los aspectos que implica:

  • Análisis de base de datos: problemas derivados de errores en la base de datos, coherencia de los datos, etc.
  • Análisis de la aplicación: problemas identificados como errores del código de la aplicación.
  • Análisis de la funcionalidad: problemas detectados a raíz de funcionalidades incorrectas o mal implementadas, así como las distintas implicaciones que ese fallo puede tener en otras aplicaciones incluidas en el servicio.

El principal objetivo del Mantenimiento Correctivo es subsanar los fallos detectados en el sistema y asegurar que éstos no ha producido incoherencias en la integridad en los datos.

Para ofrecer este servicio se establecen, entre otros, los siguientes mecanismos y procesos:

  • Sistema de gestión de las incidencias, para poder controlar en todo momento el estado, personas implicadas en la resolución, medidas tomadas para analizarlo y corregirlo, etc.
  • Verificación y, en caso necesario, corrección o restauración de los datos que, por fallos de conexión, uso incorrecto de la aplicación o por los efectos laterales de un defecto, se hayan podido almacenar incorrectamente en la base de datos.
  • Documentación del know-how adquirido al producirse el problema de cara a que se prevenga en futuras ocasiones y se tomen las medidas correctoras que procedan.
  • Análisis post-corrección para comprobar que el error detectado no se esté produciendo en otros sistemas, de ser así, corregirlo en el resto de sistemas en los que se detecte.
  • Mecanismos para mantener la coherencia de los entornos, de tal forma que la resolución de un defecto detectado en un entorno de producción quedará definitivamente resuelto en todas las versiones y entornos del servicio (pre-producción, pruebas, desarrollo), mediante, por ejemplo, la utilización de herramientas de Gestión de las Configuraciones que aseguren la correcta sincronización de los distintos entornos.

Mantenimiento preventivo

Consiste en anticipar fallos del sistema en cualquiera de los niveles analizados para ser proactivo en la resolución de las mismos y, por tanto, mitigarlos y que éstos fallos nunca lleguen a suceder.

Para conseguirlo, el servicio de Soporte al Ciclo de Vida del Software, dentro del área de Mantenimiento Preventivo, pone en marcha, entre otros, los siguientes mecanismos y procesos:

  • Monitorización continua mediante la definición y desarrollo de servicios de monitorización (agentes) de las aplicaciones existentes, de forma que emitan alertas en caso de que se produzcan valores fuera de los umbrales establecidos en los parámetros analizados.
  • Ejecución periódica de pruebas de los distintos sistemas con el fin de analizar sus resultados.
  • Análisis periódicos de los resultados de las anteriores pruebas y monitorizaciones con el fin de encontrar factores de riesgo en las tres capas analizadas.
  • Elaboración de planes de actuación y/o contingencia que ayuden a mitigar dichos factores.
  • Distribución continua del conocimiento de los distintos sistemas entre todos los miembros de los distintos equipos de trabajo, aunque no estén asignados a un sistema concreto, de forma que en cualquier momento los integrantes de los equipos puedan ser trasladados a otra área.

Mantenimiento perfectivo

Este mantenimiento no estará únicamente enfocado a mejorar técnicamente una solución, sino que también incluye un proceso continuo de optimización a nivel funcional y de procesos. Este mantenimiento hace foco en:

  • La optimización constante del rendimiento de las aplicaciones mediante análisis técnicos.
  • La adaptación de las aplicaciones a las nuevas necesidades del cliente en función de los análisis funcionales.
  • La detección de posibles puntos a mejorar en el diseño y uso de las bases de datos mediante el análisis de la base de datos.

Por lo tanto, el principal objetivo del mantenimiento perfectivo es llevar a cabo las tareas y procesos necesarios para identificar aquellos puntos susceptibles de mejora, aportando las soluciones óptimas y haciendo efectivos esos cambios en las aplicaciones.

Entre otros, los procesos necesarios que se ponen en marcha para la consecución de estos objetivos son:

  • Aseguramiento del rendimiento óptimo de los servicios del cliente.
  • Análisis de posibles cambios de las necesidades del cliente, para aportar soluciones funcionales a sistemas existentes o a nuevos servicios.
  • Análisis proactivo de puntos a mejorar o perfeccionar

Mantenimiento evolutivo de infraestructura

En este caso se trata de asegurar la evolución de la infraestructura software que da soporte a las aplicaciones, aportando ideas de mejoras en los distintos entornos. Este mantenimiento se especializa en aportar soluciones para adaptar los distintos sistemas a cambios en el entorno operativo así como a nuevas plataformas o versiones de plataformas existentes.

El objetivo que se pretende alcanzar con este servicio es el de mantener actualizada la infraestructura software de forma que ésta vaya incorporando los últimos estándares y mejoras que aparezcan en el mercado.

Para lograr este objetivo se establecen los siguientes procesos:

  • Estudio de nuevas versiones de las distintas plataformas software y soluciones tecnológicas empleadas para la implementación de los servicios del cliente.
  • Evolución de la infraestructura software en función del análisis de las necesidades de negocio o de la estrategia tecnológica, siempre bajo el paraguas de la Enterprise Architecture definida.