Las empresas que están planeando o desarrollando un producto de software nos consultan frecuentemente sobre los problemas que se encuentran cuando tratan de definir un buen proceso de producción, lograr un buen trabajo en equipo y contar con la seguridad necesaria para el manejo adecuado del código fuente.
Durante nuestros años de experiencia, desarrollamos una sólida visión sobre las herramientas más importantes que se deben utilizar si se desea producir software de forma controlada.
Estas herramientas incentivan la implementación de una estrategia de Gestión de Configuración del Software (SCM) dentro de la organización. A su vez, esto tiene un gran impacto positivo en muchos aspectos, algunos técnicos, pero también en los funcionales y los orientados al proceso de desarrollo y producción.
Hoy, la mayoría de los ingenieros de software dan por sentado el uso de estas herramientas. Pero hay casos de empresas con pequeños equipos de desarrollo o con deficiencias organizacionales que necesitan ayuda para resolver estas cuestiones. Con esa intención, escribimos una descripción general de este tema.
La mayoría de los problemas importantes que pueden surgir se resuelven instalando, configurando y utilizando estas herramientas correctamente.
Un hecho clave es que estas herramientas son importantes independientemente del idioma o la plataforma que esté utilizando.
Primer paso: Resguardar el código fuente
Segundo paso: ¿Qué pasa con los binarios?
- Comenzamos escribiendo el código. Puede usar una herramienta mínima para hacer esto, como una aplicación de bloc de notas simple, o puede usar un IDE pesado con técnicas modernas de generación de código, pero casi siempre termina en toneladas de archivos de texto.
- Luego, dependiendo de su plataforma, es posible que necesite compilar el código en un formato binario o intermedio. Este proceso toma un código fuente como entrada y produce archivos binarios como salida. Es posible que este paso no sea necesario si está utilizando un lenguaje interpretado como Javascript o PHP. Pero incluso en esos casos, generalmente hay un proceso de transpilación que crea nuevas formas de código optimizadas para ejecutarse en diferentes navegadores y entornos.
- A continuación, se testea la aplicación en su entorno local.
- Si todo está bien, está listo para la fase de implementación en producción. Esto implica tomar el paquete que probó localmente o en un entorno de prueba y colocarlo en el servidor que expondrá su aplicación.
Último Paso: Integración continua
- Tener un lugar limpio y centralizado donde se va a desarrollar el software. Por lo general, en muchas empresas, el desarrollador senior o el líder técnico es el que construye los entregables que se van a instalar en producción. Pero, ¿qué pasa si se le olvida algún trabajo en progreso o experimento, y luego esto se introduce accidentalmente y produce algún comportamiento no deseado en ambientes productivos?
- El proceso de construcción se puede activar automáticamente ante cambios en el código. Esto puede ayudar a encontrar posibles problemas antes, reduciendo así el tiempo dedicado al seguimiento de ellos cuando se encuentran en producción y, por supuesto, finalmente produce resultados de mejor calidad.
- Los scripts de construcción se pueden estandarizar, por no es necesario reinventar la rueda en este asunto.
- Se puede controlar quién lanza los builds y deployments, y tener registros sobre esas acciones. Esto al final significa un mejor control de los cambios que tienen impacto en entornos importantes, como staging, test, etc.
¡Únete a la conversación!