Una regla básica para cualquier usuario de sistemas informáticos es realizar Copias de Seguridad de su información con un sistema fiable, usable, accesible, estable y que permita restaurar los datos con total confianza del resultado.
En el caso de los Programadores, esta regla básica se convierte en una Obligación si no quieres pasar un “mal rato” más pronto que tarde. Dedicamos cientos de horas a escribir miles de líneas de código resultado en muchas ocasiones de momentos de inspiración, que en caso de pérdida difícilmente podríamos reproducir el trabajo realizado, a lo que habría que añadirle el coste en tiempo, y si se trata de un proyecto para un cliente también la correspondiente pérdida económica.
Desde la experiencia de La Factoría Apple, la mejor forma de aprender esto es que alguna vez tengas una pérdida de datos, a partir de ese día te harás plenamente responsable de realizar tus backups de manera correcta.
Conforme adquieras experiencia como Programador te irás dando cuenta de lo importante que puede ser en un momento dado volver el desarrollo a un estado anterior (versión anterior), ya que lo nuevo que has querido implementar no ha llegado a buen puerto y necesitas regresar a una versión estable anterior en la que sabías que todo funcionaba correctamente.
Igualmente tendrás la necesidad de hacer cambios y querrás dejar registrados esos nuevos estados de tu software junto a los correspondientes comentarios donde des cuenta detallada de lo que has hecho. Sabemos de la importancia de documentar el código fuente de nuestra aplicación, no menos importante es dejar constancia de la información a cerca de los cambios globales que hagamos. Nunca pienses que después de pasado un tiempo vas a recordar perfectamente lo que hiciste o porqué lo hiciste. Y si trabajas en equipo, está más que justificado que informes con precisión de todo tu trabajo para que tus compañeros puedan intervenir con seguridad en el Proyecto.
Después de esta introducción, está más que justificado que si vas a dedicarte al desarrollo de software, realices Copias de Seguridad en cada etapa del proyecto con la posibilidad de conocer los cambios que has ido realizando y lo más importante volver hacia atrás en caso de error fatal o porque no llegas a ningún lado por el camino que has emprendido.
Para realizar estas tareas necesitas lo que se conoce por un Software de Control de Versiones (VCS, del inglés Version Control System), los más utilizados son GitHub y Subversion. En La Factoría Apple nos centraremos en Github, que según las estadísticas es el más extendido entre la comunidad de desarrolladores.
Según la Wikipedia, Git es un Software de Control de Versiones diseñado por Linus Torvalds, caracterizado por su eficiencia y confiabilidad en el mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente. Su propósito es llevar registro de los cambios en los archivos de nuestro ordenador y coordinar el trabajo que varias personas realizan sobre los archivos compartidos.