El control de versiones, y los miedos que vienen con la seguridad
Los sistemas de control de versiones permiten a los programadores recuperar versiones específicas del programa, y guardar nuevos cambios, con lo que se hace posible trabajar juntos como un equipo en sistemas de tamaño considerable.
Cuando hablo con programadores principiantes, me doy cuenta de que comparten una cierta preocupación acerca de conflictos al cargar su programa en los sistemas de control de versiones. En estos conflictos de combinación, sus cambios no pueden guardarse en el repositorio de datos central sin antes realizar un análisis adicional, porque otro programador ha incluido nuevos cambios en las mismas zonas de los mismos archivos, y por lo tanto, serían sobrescritos, y se perderían.
Lo cierto es que, una vez que su código se encuentra en un sistema de control de versiones, nada se pierde. Además, resulta bastante extraño que un compañero de trabajo edite el mismo archivo en la misma zona en la que esté trabajando usted, precisamente al mismo tiempo. Pero cuando algo así sucede, las propias herramientas de control de versiones marcarán la zona conflictiva de forma bastante clara, con lo que dicho conflicto podrá resolverse. Y, lo más importante: es prácticamente imposible romper una aplicación una vez que forma parte de un sistema de control de versiones, porque siempre se puede volver a una versión anterior en que todo funcionase.
Mis impresiones personales con el control de versiones
Lo cierto es que, una vez que su código está dentro de un sistema de control de versiones (probablemente combinado con un sistema de copia de seguridad remota), entonces no puede estar más protegido.
Usar un sistema de control de versiones cuando se trabaja com parte de una organización es algo esencial para que todo el equipo pueda trabajar junto de una forma eficaz. Pero incluso en proyectos en los que trabaje de forma individual puede ser útil tener un sistema de control de versiones. Es una herramienta que permite realizar seguimiento de cambios de manera sencilla, y que hace que su código esté mucho más protegido: en caso de que se detecten errores de verificación en sus pruebas, incluso si no es capaz de reparar el error, siempre puede volver atrás a un estado conocido en que todo funcione.
En los viejos tiempos utilizábamos CVS todos los días. En su momento, estuvimos a punto de mudarnos a Subversion, aunque nunca llegamos a dar este paso en un entorno profesional. Y a día de hoy, creo que GIT es sin duda la alternativa que seguir.
¿Necesita un programador que pueda trabajar con el resto de su equipo? Estoy acostumbrado a utilizar sistemas de control de versiones, y soy bueno jugando en equipo, así que no dude en contactarme.