GitLab: la fuente para el desarrollo colaborativo y de calidad

Nos adentramos en los caminos de GitLab, una de las plataformas fundamentales del desarrollo de software.

Junto a Carlos Buil, Doctor en Ciencias de la Computación y profesor de la Universidad Federico Santa María y José Estevez, ingeniero y jefe de proyectos de Fusiona, recorremos su filosofía colaborativa, su manifiesto de trabajo remoto y las buenas prácticas en los flujos de desarrollo.

Por Rodrigo Quiroz Castro

¿Qué es GitLab?

GitLab, se autodefine como una empresa de núcleo abierto para el ciclo de vida del desarrollo de software.

Actualmente es utilizado por más de 100.000 organizaciones, 30 millones de usuarios registrados y una comunidad activa de más de 3.000 colaboradores.

Destacamos la palabra colaboradores porque en GitLab esa característica es piedra angular.

Cobrando vida tanto en su imagen corporativa con un Tanuki (perro mapache japonés, inteligente y que trabaja en equipo), como en su Manifiesto de Trabajo remoto y en el core de su plataforma.

Diferencias entre los Git

Antes de meternos en GitLab, debemos entender las diferencias entre las tres entidades fundamentales para el desarrollo de software contemporáneo: Git, GitHub y GitLab.

Git: es un software de control de versiones distribuido para desarrolladores.

GitHub: es una plataforma host para Git creada en 2008. A enero de 2020, tiene más de 40 millones de usuarios y más de 190 millones de repositorios, convirtiéndose en el mayor host de código fuente del mundo.

Un dato no menor: en junio de 2018 GitHub fue adquirida por Microsoft en más de 7 mil millones de dólares.

GitLab: en cambio, nació en 2011 y al igual que GitHub es un servicio o plataforma de host basada en Git.

La gran diferencia es que GitLab es open source, el preferido por comunidades promotoras de software libre. Además, gracias a la robustez de su ciclo devops, la plataforma de trabajo de IBM, NASA, Sony, Alibaba y Fusiona.

“Github es más popular… pero lo que diferencia a GitLab es que es código abierto” señala Carlos Buil, doctor en Ciencias de la Computación y profesor del Departamento de Informática de la Universidad Técnica Federico Santa María.

“GitLab está instalado en los equipos de informática de la Universidad y es gestionado por los propios alumnos, pero las empresas lo utilizan porque permite una gran adaptación y, dependiendo si utilizan la versión gratuita o pagada, pueden aprovechar la integración continua que ofrece entre distintas aplicaciones”, añade Carlos Buil.

1rBE29jtH RrU0usX5tgCAw
José Estevez, Jefe de Proyectos en Fusiona.

“En Fusiona utilizamos sagradamente GitLab para el control de versiones de los proyectos, al igual que como control de despliegue de los desarrollos en los diferentes ambientes (QA, productivo). Ahora con el nuevo proyecto para Gasco estamos implementando mecanismos nuevos de despliegue que nos aseguran que cada desarrollo sea lo más autónomo en los siguientes aspectos: QA, Calidad de Código, Control de catástrofe ( vuelta atrás)”, complementa José Estévez, Jefe de Desarrollo Móvil del Área de Proyectos Fusiona.

GitLab y trabajo remoto

GitLab, además de ser la herramienta escogida por nuestros ingenieros y la preferida de las comunidades de código abierto, es también una de las mayores fuentes de información y recursos para el trabajo remoto.

Una tendencia que sin duda ha marcado este año y definirá el ritmo de la industria los años que vendrán.

Con un total de cero oficinas y 1.200 trabajadores en más de 65 países, GitLab es la compañía 100% remota más grande del mundo.

Ellos no ven el trabajo remoto como un desafío a superar, sino como una ventaja comercial.

Para GitLab el trabajo remoto significa que cada individuo está capacitado para trabajar y vivir donde se sienta más satisfecho.

Están tan orgullosos de su flujo de trabajo remoto que hasta construyeron un manifiesto que plantea algunos de estos puntos:

  • Contratar y trabajar desde todo el mundo en lugar de una ubicación central.
  • Horas de trabajo flexibles sobre horas de trabajo establecidas.
  • Todo conocimiento debe estar por escrito sobre explicaciones verbales.
  • Intercambio público de información por sobre el acceso restringido.
  • Acceso a todos los documentos para que los pueda editar cualquier persona.
  • Comunicación asíncrona sobre comunicación síncrona.
  • Resultados del trabajo por sobre horas invertidas en él.
  • Canales de comunicación formales sobre canales de comunicación informales.

1wyE0V4huqFf13ut S1MCA
Carlos Buil profesor de La Universidad Federico Santa María. Crédito Fotografía: USM.

Para Carlos Buil, el esfuerzo en compartir recursos como el Manifiesto de Trabajo Remoto tiene que ver más con la filosofía de colaboración que con el trabajo a distancia en sí.

“Lo importante en el ámbito del desarrollo es el trabajo colaborativo. Tener claro que estoy desarrollando mi proyecto en un módulo que se integrará con el trabajo de terceros en otros módulos. Me parece que lo más importante de GitLab es que nos ayuda a controlar la calidad del código y las integraciones entre los contribuyentes de un proyecto”, recalca Buil.

GitLab la única fuente de la verdad

En términos de proceso de desarrollo, GitLab enfatiza la importancia de la iteración rápida privilegiando el alcance más que la profundidad. El enfoque es “siempre terminar el flujo primero” para cuidar la coordinación.

Al iniciar un nuevo sprint, el equipo de producto y UX diseña, luego las áreas de desarrollo se organizan internamente.

Esto con el objetivo de discutir los problemas y acordar cuándo se traspasa la posta del equipo de backend al de frontend.

En este workflow el elemento más importante para GitLab es la documentación, a la que suelen llamar SSOT( Single Source Of Truth), algo así como la Única Fuente de la Verdad.

“Es básico revisar y comentar el código…el proceso de revisión integrada hace mucho más rápido y eficiente proyectos open source tan grandes como Apache. Creo que es muy importante que ingenieros, desarrolladores o personas que trabajan con código, manejen estas tecnologías de control de versiones para hacer del desarrollo un espacio colaborativo y distribuido de calidad”, concluye Buil.

Te invitamos a conocer más detalles sobre los avances y novedades más importantes relacionados a la tecnología.

Si quieres saber más sobre nuestra agencia y cómo te podemos ayudar a navegar en las aguas de la Transformación digital puedes visitar nuestro sitio www.fusiona.cl.

Artículos Relacionados

PWA: qué son y cuándo utilizarlas

Conoce qué es una PWA, sus ventajas y desventajas en comparación con apps nativas e híbridas y cuándo deberías utilizarlas.

06 Septiembre 2023

Explorando plugins de Chat GPT

Explorando plugins de Chat GPT podemos constatar que la Inteligencia Artificial (IA) es más que una novedad pasajera y que…

27 Julio 2023

Headless CMS: el paso evolutivo en la administración de contenidos

Headless CMS o sistemas de administración de contenido sin cabeza, son la respuesta de la industria a los cambios en…

29 Junio 2023

Imágenes IA: ¿sueño o pesadilla?

Las imágenes IA o imágenes generadas por IA, han revolucionado la industria el último año haciendo su aporte a la…

07 Junio 2023

Puntaje nacional para el simulador de becas de la USS

Eliecer Yévenes, director general de servicios digitales de la Universidad San Sebastián, evalúa con máximo puntaje al simulador de becas…

11 Mayo 2023

Ionic framework para aplicaciones móviles

Ionic framework es un popular SDK (software development kit) utilizado para el desarrollo de aplicaciones móviles híbridas, que en el…

04 Mayo 2023