Como desarrolladores que somos, llevamos unos cuantos años utilizando control de versiones en nuestros proyectos y aún nos sorprende que algunas empresas de nuestro sector sobretodo en el desarrollo web, no tanto en el desarrollo de aplicaciones móviles), no utilicen ningún tipo de control de versiones en sus proyectos, por increíble que parezca en los tiempos que corren.
El control de versiones más extendido y que más éxito ha tenido entre los desarrolladores es Git, del cual vamos a hacer una breve introducción y animamos a que toda empresa que no lo utilice en el día a día de sus proyectos, empiece a hacerlo, porque sino, los costes de desarrollo y mantenimiento de cada proyecto acabarán matando la empresa.
¿Qué es Git?
Git es un sistema de control de versiones para nuestros proyectos de software de cualquier tipo, ya sean aplicaciones de escritorio, aplicaciones móviles o aplicaciones web.
Es una herramienta de apoyo imprescindible para cualquier desarrollador, tanto para trabajo individual como para trabajo en equipo.
¿Qué nos aporta Git?
Control sobre la evolución de un proyecto
En Git quedan reflejados todos los estados y las versiones por las que un proyecto ha ido pasando, de tener 4 funcionalidades a tener 30, los procesos que se han seguido a la hora del desarrollo, todo queda registrado.
Es más fácil hacerse una idea de la magnitud y el tamaño que tiene un proyecto mirando su repositorio de Git, que tirando de recuerdos para recopilar todo lo que se ha hecho, y si llega alguien nuevo al equipo de desarrollo y tienes que explicarselo todo de memoria, apaga y vámonos.
Control y registro de cambios en los archivos del proyecto
Una parte imprescindible del sistema de control de versiones es que se puede saber quién hizo un cambio en un fichero determinado, cúando hizo el cambio, y si está bien documentado, el por qué.
Esto puede ahorrar tiempo y problemas en cualquier equipo de desarrollo, en las empresas que no utilizan control de versiones es una fuente habitual de conflictos entre las personas cuando algo deja de funcionar y nadie sabe quién ha metido la pata.
Control sobre el desarrollo colaborativo
Esta es una de las grandes bazas de Git. A través de plataformas de desarrollo colaborativo como GitHub, tú puedes comenzar el desarrollo de una aplicación, librería o proyecto, y publicarlo. Si a la gente le gusta el proyecto y le apetece mejorarlo o desarrollar funcionalidades nuevas, puede hacerlo.
Esto genera una gran comunidad de desarrolladores que ayudan a otros desarrolladores a crear cosas geniales, que no podrían haberse creado sin la participación otras personas.
Desarrollo en paralelo de funcionalidades
Permite a los equipos de desarrollo que varias personas trabajen a la vez en el mismo proyecto, incluso en el mismo fichero, aunque estén desarrollando funcionalidades diferentes, sin peligro de sobreescribirse el trabajo hecho los unos a los otros, ya que Git permite hacer una “mezcla” del código de varios desarrolladores, y que todo siga funcionando sin problemas.
Estructuración y mantenimiento de versiones
Es importante ser organizado en la estructura de un proyecto y en las funcionalidades que incluye cada versión, y ser capaz de detallarlo todo si hiciera falta. Facilita mucho el trabajo de mantenimiento y “parcheado” del software ante cualquier error, así como su debido registro y documentación.
En definitiva, el control de versiones es una herramienta que nos facilita mucho el trabajo y nos ahorra problemas y sobretodo dinero a las empresas de desarrollo, ya que nos permite trabajar de una manera más eficiente y nos proporciona un buen colchón de seguridad ante cualquier fallo o problema.
Si tu empresa no usa estos sistemas, es como cuando un trapecista hace su número sin una red de seguridad, si algo va mal, alguien lo va a pagar muy caro.