lunes, 22 de diciembre de 2014

Versionamiento de Sistemas

El versionamiento de un sistema es independiente al versionamiento del código fuente, es el proceso de gestión de estados del sistema y la notación es alfanumérica. Con el objetivo de determinar dependencias específicas de: Componentes de software, scripts y documentación y tener una gestión adecuada de la administración de los estados de los sistemas para puestas en ambientes de prueba y sus fases hasta la puesta en producción.



Y se preguntaran uno donde queda la versión y estado del código fuente, pues para cada lanzamiento de un sistema funcional en producción aconsejo crear la generación de ramas a nivel del control de código fuente para mantener el estado actual de la versión lanzada, pero esta política que planteo variaría según el escenario en particular, puesto que se podría generar también ramas para versiones lanzadas a nivel de preproducción.




Mecanismo de Versionamiento

El formato de versionamiento que sugiero es el siguiente:

UnidadPrimaria.UnidadSecundaria.UnidadTerciaria-[Alpha/Beta/RC/R]

Está conformado por tres dígitos, seguido del nivel de estabilización del sistema (Alpha/Beta/RC/R). A continuación se describe las partes del formato de versionamiento:

UnidadPrimaria: Esta unidad es una versión de impacto mayor y este se incrementa en lanzamientos oficiales del sistema considerando que este último ha sufrido un cambio rotundo de mejoras y nuevas implementaciones.

UnidadSecundaria: Esta unidad es una versión de impacto medio y este se incrementa cuando el sistema ha sufrido sólo mejoras considerables.

UnidadTerciaria: Esta unidad es una versión de impacto menor y este se incremente cuando en el sistema se da atención a la resolución de un bugs reportados por el área de testing.

[Beta/Alpha/RC/R] 

Alpha: Es un sistema en prueba interna, generalmente expuesta para usuarios internos, que previamente ha sido aprobada por el área de testing, esta versión es incompleta porque no contempla todos los requerimientos solicitados.

Beta: Es un sistema en prueba que previamente ha sido aprobado por el proceso de testing, esta versión ya tiene todos los requerimientos solicitados al 100%.

RC: (Release Candidate) esta versión candidata a lanzamiento generalmente se encuentra en ambiente de preproducción en pruebas con usuarios finales del sistema. Se encuentra libre de errores y/u observaciones, pero teniendo en cuenta que un sistema puede adquirir un comportamiento distinto en ambiente real, considerando que el ambiente de preproducción es lanzado a usuarios finales.

R: Es un sistema de lanzamiento final (gold), sistema libre de errores y/u observaciones, por lo general no se coloca este sufijo. Y se lo lanza al sistema con un nombre de versión adicional al nombre del sistema principal Ej. Para un sistema denominado SICA (Sistema de Información de Control Administrativo). Y se pueden considerar las siguientes opciones:

- SICA Primera Edición

- SICA 1

- SICA 2014

- SICA a


El incremento de las unidades es en uno, y pueden ser de manera automática o por convención:

Automática

Esta forma de incremento es por la definición de unidad máxima Ej. 612:

UnidadTerciaria: Esta unidad se incrementa en el rango de 0 a 612.

UnidadSecundaria: Esta unidad se incrementa si la UnidadTerciaria alcanza el incremento 612 + 1, quedando reseteado el valor de la UnidadTerciaria a 0.

UnidadPrimaria: Esta unidad se incrementa si la UnidadSecundaria alcanza el incremento 612 + 1, quedando reseteados los valoras de la UnidadTerciaria y UnidadSecundaria 0.


Por Convención

Esta forma de incremento es por convención según las siguientes reglas:

UnidadTerciaria: Este incrementa la cantidad se vea necesaria por resolución de bugs en fase de desarrollo y testing, se da cuando el sistema se encuentra en ambiente de desarrollo y testing.

UnidadSecundaria: Este incrementará cuando se decida que el sistema ha alcanzado un nivel de madurez, en el cual no se encuentran bugs y esta versión puede ser puesta a prueba para la siguiente fase de testing, se da cuando el sistema se encuentra en ambiente de testing y/o preproducción.

UnidadPrimaria: Este incrementará cuando se decida que el sistema será implementado en ambiente de producción.

Por último aclarar que es una forma entre muchas de versionar un sistema, la variación según tus necesidades estarán en manos de cada uno según la dimensión de los proyectos que se encaren.

No hay comentarios:

Publicar un comentario