Configuración

La importancia de la gestión de código

Por: Mario Negrete

La organización y respaldo del código siempre ha sido de criticada alta. Lo que ha cambiado con el tiempo son las formas en las que se realiza. Este blog tiene como propósito mostrar los beneficios del uso de repositorios como producto de trabajo que permite la gestión de los archivos de un proyecto digital. El software en el ciclo de vida, desde la creación de componentes, es indicativo del uso de código hasta su entrega y de ser necesario su mantenimiento. El mantenimiento del software requiere de múltiples productos de trabajo y recursos humanos que en base a ellos apliquen las mejores prácticas para darle soporte y un posible crecimiento. Muchas empresas de desarrollo de software o incluso proveedores de productos digitales se han visto a lo largo del tiempo con la necesidad de llevar el control sobre su código y archivos por medio de repositorios.

¿Para qué?

Evitar un problema futuro como lo pudiera ser.

  • La perdida del código
  • La gestión de errores
  • Código duplicado
  • Falta de archivos

Problemas habituales para aquellas empresas las cuales no llevan estrategias de gestión y respaldo de código. Causando incertidumbre y riesgo entre más miembros del equipo implicados están.

Entonces, ¿Qué es un repositorio?

En software, es un contenedor dígital donde es depositado y guardado el código o archivos. Entonces, Google Drive, Dropbox, iDrive, entre otros podrían ser bien un repositorio. Años atrás, era común llevar una estrategia de versiones donde las empresas creaban un ejecutable que almacenaban en estos sitios para llevar un control donde de ser posible y en algunos casos tenían documentadas las características que ofrecía cada versión que se respaldaba. Siendo posteriormente alojado en un servidor para su despliegue, usando por ejemplo FTP dependiendo el caso de cada tecnología. Los despliegues de código de hoy en día son muy diferentes a lo que se planteaba en ese tiempo, (si aún sigues con prácticas de llegar con un cliente a su máquina con una USB esperando pasar los archivos para actualizar el software, es momento de continuar leyendo e ir pensando mejores prácticas).

¿Cuáles son las mejores prácticas?

Hay algo importante a resaltar y es el hecho de que el término "mejor" debe estar acompañado de una métrica cuantitativa que determine en qué aspecto lo es, si no es meramente una opinión y ya. La mayoría de los desarrolladores en día tienen bien conocido el término Git. Desde el 2005 se ofrece este software de código abierto para control de versiones que permite el mantenimiento de aplicaciones sin importar el número de archivos de código que traigan consigo. (Y no solo son archivos de código).

Git ofrece este sistema centralizado que impacta directamente en el negocio donde ofrece múltiples beneficios como.

Branches. La habilidad de uso de branches/ramas facilita gestionar el código por características, módulos, épicas, depende del tipo de metodología o modelo que este usando el equipo para el desarrollo será el número y tipo que necesite, su uso depende de la gestión que se le dé.

Branch de ambiente de pruebas y de una característica

En la imagen anterior se aprecia como se puede partir de un nodo para crear características separadas para cada cambio esperando que el código nuevo a insertar no interfiera con el funcionamiento actual. Su posterior integración es recomendada que sea en base a los procedimientos de prueba que se tengan diseñados para que sea valido para su posterior integración. Con esto se asegura parte de la calidad del software. El uso de ramas permite la gestión de ambientes de prueba, desarrollo, producción, entre otros, dependiendo nuevamente del tipo de gestión que lleve el equipo de desarrollo.

Versiones actualizadas. Los equipos de desarrollo no importando el número, según su distribución de trabajo llevan diferentes flujos que al final son complementarios. El uso de Git, permite a los desarrolladores obtener de la rama que ellos deseen la última actualización de las contribuciones de sus compañeros por eso la importancia de tener ambientes diferentes. De igual manera a través de comandos como commits se hacen contribuciones que conforman un historial del contenido a añadir. Estas contribuciones son locales para los desarrolladores hasta que suben el código en un el lugar donde será alojado. Esto permite un trabajo continuo, sin desfase de versiones, y sin bloqueos.

Pull request. Un comando de Git, que permite al equipo realizar una petición para la unión de código con la intención de complementar una característica del proyecto (regularmente). Su integración depende de los otros miembros del equipo que a través de técnicas manuales o automáticas para la revisión del código decidan si es conveniente hacer la integración. Este tipo de acciones pueden llevar la ejecución hasta de pruebas unitarias u otros mecanismos.

Optimización. El uso de Git, permite a los desarrolladores trabajar simultáneamente en un proyecto sin preocuparse por tener la última versión del código disponible, haciendo solo los cambios necesarios y obteniendo despliegues más frecuentemente creando una forma (con sus cualidades) para cada equipo.

Realmente Git no es ajeno a otras áreas como lo pudiera ser marketing, administración o diseño, permitiendo la gestión de contenido, puede ser usado y sus mismos beneficios dependen de la estrategia de control de versiones que este usando el equipo.

Clientes Git

Tal vez hayas escuchado sobre Github, Bitbucket, GitLab, que se expresan como lugares donde se aloja los archivos del proyecto en base al sistema de control de versiones Git. Este tipo de servicios web permiten almacenar el código ya sea de manera pública o privada, depende de los intereses del proyecto. Dependiendo de cada uno, puede que su servicio sea gratuito o de paga, algunos complementarios de tableros de gestión de tareas como Azure o Jira.

Trabajar con Git conectado a un repositorio como lo pudiera ser Github es posible desde la terminal del ordenador hasta un ambiente gráfico como lo es la misma interfaz de Github sobre un proyecto.

Clientes como Github permite la colaboración de código y control de versiones, sin embargo hay otros proveedores que ofrecen la administración de código fuente de una manera gráfica como lo pudiera ofrecer Gitkraken.

Como se mencionaba anteriormente, el uso de ramas, y el historial de contribuciones genera un árbol que se resume en un proyecto dispersado en diferentes versiones. Lo cual, un ambiente gráfico como lo ofrece Gitkraken facilita la apreciación de este, otorgando beneficios como.

  • Mejorar la experiencia del usuario haciendo intuitivo y fácil las interacciones para aquellos nuevos usuarios que están aprendiendo los conceptos o no están familiarizados con las instrucciones de código.
  • Es más rápido ya que reduce las interacciones y condensa procesos complicados en simples acciones desde un drag and drop que permite la unión de código, la restauración o el subir una contribución en unos cuantos clics.
  • Gitkraken ofrece funcionalidades complementarias como lo pudiera ser un tablero de gestión de tareas, además tiene una fácil integración con una cuenta de Github como se muestra en la siguiente imagen

Integración de Github a Gitkraken

Conclusión

Te invito a que te des la oportunidad si no trabajas actualmente con repositorios a adentrarte a su uso y que mejor manera para las personas que inician que complementarlo con lo que se ofrece actualmente. No solamente para ofrecer "las mejores prácticas", si no por cuestiones de calidad. Estándares internacionales de calidad, que avalan las prácticas realizadas por los equipos para ofrecer un producto en tiempo, forma, presupuesto y cumpliendo el alcance consideran este tipo de herramientas como necesarias y útiles para la gestión de un proyecto. El repositorio de un proyecto debe alojar y controlar las versiones del mismo, siendo posteriormente manejado de acuerdo a la estrategia de control de versiones para sus posibles respaldos. Estas herramientas no son auto administradas, se pueden crear flujos trabajo pero sus beneficios dependen de las prácticas del mismo que equipo por lo que al ser bien usadas, el trabajo del desarrollador se reduce en tiempo y costo y se incrementa en beneficios como evitar el dolor de cabeza que puede ocasionar el llevar una administración de todo lo que involucra un proyecto en cuestión de código hasta su despliegue.

Intenta algo nuevo, intenta algo disruptivo. https://www.gitkraken.com/invite/s12KsQYE

Mario Negrete GitKraken Ambassador / AWS Community Builder

Av. Cerro Gordo del Campestre 201
Int. 303
Col. Las Quintas
León, Gto.
C.P. 37125

ROCKTECH R+D © 2021