viernes, 24 de enero de 2014

La implementación de la solución debe comenzarse antes de finalizarla


La implementación debe comenzarse antes de terminar la construcción
de la solución
Aunque suena raro lo planteado en el título de este post no hay error en la afirmación. Entonces, ¿Cómo es que podemos implementar una solución que no hemos terminado de desarrollar? La respuesta tiene que ver con el hecho que lo que dice el título no es que debemos realizar la implementación, sino que debemos comenzar a realizarla. Esto es algo que está bien establecido en las buenas prácticas internacionales y que los gerentes, arquitectos de información e ingenieros jóvenes a veces no manejan.

Como apuntamos hace algunas semanas (ver), la implementación de una solución está siempre llena de posibles puntos de falla porque las máquinas y el ambiente donde se desarrolla nunca reproducen exactamente las condiciones de operación que tendrá la solución en producción.

Las aplicaciones de teleinformación que se construyen hoy en día son cada vez más fáciles de usar por sus pretendidas audiencias, pero cada vez más complejas en su interior y en la articulación de sus  componentes, por lo que siempre hay variables de configuración de la infraestructura requerida y procesos de coordinación que deben asegurarse.  Una aplicación moderna requieren de un sistema operativo, un servidor de Web, probablemente una capa de gestión dinámica de páginas Web, sin duda un manejador de bases de datos y un servidor de correos,  una capa de seguridad informática (antivirus, cortafuegos, etc), quizá un sistema de gestión de  la autenticación, etc. Todos estos son sistemas previos que tienen versiones y necesidades de coordinación con capas de software anteriores, laterales y superiores, que deben existir y funcionar conforme a estas necesidades.

Debido a lo anterior, los posibles puntos de falla durante la transición a la producción se multiplican y un buen proceso de implementación debe comenzar antes de que el equipo de desarrollo haya concluido la fase de construcción de la solución. Dejar para el momento en que la aplicación esté construida la instalación, verificación y validación del buen desempeño de estos componentes es iniciar tarde, en forma arriesgada y en condiciones de estrés lo que puede asegurarse temprano, en forma segura y tranquila.

La recomendación, así pues, es comenzar a trabajar en un ambiente de preproducción instalando cada componente operativo que será necesario y asegurándose de que trabaja adecuadamente en coordinación con los otros. Esto implica siempre, para cada uno, una verificación y una validación (Ver Verficar y validar) . Para ello se deben tener criterios claros de cómo comprobar que el componente está trabajando. No simplemente realizar la carga del mismo, su instalación como programa genérico, sino asegurar su operación en las condiciones específicas que será requerida.

¿Por qué descubrir a última hora que, por ejemplo, el servidor de correos tiene una restricción que trabará el desempeño de la solución que se está creando?

En ocasiones hemos visto  repetirse los errores de la ingenuidad e inexperiencia como considerar que porque una capa de software ya trabaja en una aplicación anterior lo hará en esta, o dado que ya salió una nueva versión del sistema operativo entonces usémosla en lugar de la anterior,  y, por supuesto los errores de falta de planificación donde los criterios de validación de capas no están definidos y simplemente se espera que la globalidad de los componentes trabajen sin asegurar los pasos previos, o los errores del encuentro de culturas donde no se deja explícito qué es lo que se entiende como validación (Ver La validación de una solución).

No hay comentarios: