La peor pesadilla de todos: ¡la pantalla azul de la muerte!
Volver a la carga después de un viaje de negocios nunca es fácil, pero mi regreso esta semana ha sido particularmente desafiante. Tenemos un contrato de tiempo crítico con nuestro cliente, por lo que todos en el proyecto están operando a >100%. Seguí encaminado hasta que abrí el software de diseño de mi placa y vi que alguien había realizado cambios en mi diseño. Quitaron dos de los cuatro dientes de mi tenedor inteligente. Estos fueron cambios significativos. Malos cambios. Sentí mi cerebro estrellarse y me quedé con el equivalente mental de la pantalla azul de la muerte.
¿Por qué el colapso? Bueno, nos apresurábamos a cumplir los plazos y no habíamos establecido ningún tipo de cambio o control de versión. En cambio, estábamos guardando nuestros archivos en un archivo compartido de la compañía, por lo que los cambios realizados sobrescribieron cualquier copia que tenía del diseño de trabajo. No hay problema, pensé, podemos ir a una copia de seguridad de hace una semana y obtener la versión original. Pues resulta que el departamento informático no había sido notificado del proyecto compartido y no se hicieron copias de seguridad. No hay registro del diseño de trabajo. Ahora tendré que eliminar manualmente los cambios y espero poder recordar cómo solía verse el diseño. Odio mi vida.
Era un idiota, no respaldaba mi trabajo. Soy el dueño de eso. No seas como yo y respalda tu trabajo con frecuencia.
Entonces, ¿cuál es la mejor manera de gestionar los cambios en un proyecto? Claro, puedo hacer copias manuales de mi archivo de diseño de vez en cuando. También puedo pedirle a informática que haga copias de seguridad periódicas de todo el proyecto compartido, o puedo automatizar copias de seguridad con herramientas gratuitas o en línea. Hay muchas opciones, desafortunadamente, ninguna de ellas es tan buena para los diseñadores de PCB.
En un mundo ideal, la mejor opción sería poner el diseño en un sistema de control de versiones, y esta es la razón:
Todo mi trabajo estará en un lugar seguro, esa es la prioridad número uno.
Es más fácil colaborar con otras personas en mi equipo.
Puedo comparar versiones de archivos y enumerar las diferencias entre versiones, también conocidas como diffs.
Puedo volver a una versión anterior de un archivo, después de varias revisiones, lo que me gustaría poder hacer hoy.
Puedo agregar comentarios y etiquetas para explicar los cambios o rastrear las etapas del proyecto.
Puedo trabajar en diferentes aspectos de un diseño en diferentes ramas sin preocuparme de que los cambios interfieran entre sí.
Puedo suscribir varios ordenadores y elegir cuándo sincronizar los cambios de usuario en cada una.
Tendré que considerar y comentar los cambios que he realizado cuando los reviso.
Es importante hacer una copia de seguridad de tus datos en una fuente externa, pero recuerda que no hay nube, es solo el ordenador de otra persona.
Si alguna vez has explorado el mundo del control de fuente de versión de PCB, sabes que hay muchos proveedores de soluciones para elegir, incluidos Git, Subversion, Mercurial y más. Algunos están más establecidos que otros, pero la mayoría ofrece el mismo conjunto de características principales y proporciona los beneficios enumerados anteriormente. Aquí está el problema, la mayoría fueron diseñados originalmente para el mundo del software, y no son excelentes para los programas de diseño de hardware.
Para el diseño de PCB, es importante que encuentres un sistema que te permita realizar un seguimiento de los cambios entre los archivos y poder ver sus diferencias como gráficos. Este sitio deja bastante claro que el seguimiento visual de los cambios en el diseño de PCB es superior a la comparación de líneas de código. Aquí está el truco, si deseas este tipo de control de versiones, tendrás que exportar tus diseños como archivos PDF y usar un programa PDF Diff para rastrear cualquier cambio. Esto significa que puedes despedirte de tus metadatos (especificaciones de materiales, especificaciones de capas, etc.). Por supuesto, esto es mejor que tener que comenzar desde cero, pero volver a ingresar estos datos es una pérdida de tiempo. Peor aún, si no fuiste tú quien inicialmente estableció las especificaciones, tendrás que pasar más tiempo rastreando a esa persona.
En el mundo del software, simplemente puedes agregar y eliminar archivos de un "repositorio" o repo. Una vez que se agrega un archivo al repositorio, cualquier cambio en él debe registrarse o "confirmarse". Como se esperaba, estos repositorios generalmente no son adecuados para administrar el contenido de archivos PCB o CAD, ya que están hechos principalmente para software. Dicho esto, hay personas por ahí haciendo repos para el diseño de PCB.
Si eres como yo y quieres mantener las cosas fáciles, la opción más simple y efectiva es elegir el software de diseño de PCB que viene con control de versión integrado. Esto te ahorrará el tiempo de tener que abrirte camino a través del control de versiones inadecuado. El software de PCB, como Altium Designer®, integra el control de versiones en tu software, lo que facilita el uso de un ingeniero mecánico. Fuera de la caja, es compatible con Subversion, CVS y otros sistemas que proporcionan la interfaz estándar de Microsoft SCC. Honestamente, necesito toda la ayuda que pueda recibir, así que también he comenzado a usar Altium Vault®. Mis diseños originales pueden haber desaparecido hace mucho tiempo, pero bueno, ¡al menos mis componentes están actualizados!
El control de versiones puede ayudarte a realizar un seguimiento de las modificaciones de diseño para usuarios únicos y múltiples
El control de versión de PCB es como un seguro, no sabes que lo necesitas hasta que lo necesitas. Si hubiera estado usando un software de diseño de PCB con control de versión integrado, entonces no estaría en esta situación. En ese sentido, ten en cuenta que el daño ya está hecho, tengo que ir a reconstruir mi diseño.