Hoy día usamos la palabra bug de forma cotidiana para referirnos a cualquier error de software. Pero lo curioso es que este término, tan ligado a la informática moderna, nació de un fallo completamente literal.
En el año 1947, un equipo de ingenieros trabajaba con el ordenador electromecánico Harvard Mark II. Durante una sesión de diagnóstico, el sistema empezó a comportarse de forma errática. Tras investigar el problema, encontraron la causa: una polilla atrapada en uno de los relés del equipo, impidiendo su correcto funcionamiento.
El insecto fue retirado y pegado en el cuaderno de incidencias, acompañado de la anotación: “First actual case of bug being found” (“Primer caso real de un bug encontrado”).

Registro del ‘primer bug’ encontrado en el Harvard Mark II (1947). Imagen de dominio público, cortesía del Naval Surface Warfare Center, vía Wikimedia Commons.
Aunque el término bug ya se utilizaba de forma informal en ingeniería para referirse a fallos mecánicos, este episodio popularizado por Grace Hopper, ayudó a consolidarlo definitivamente en el vocabulario informático.
Más allá de la anécdota, la historia es interesante por lo que representa. En aquellos primeros sistemas, hardware y software estaban íntimamente ligados. Un fallo podía ser causado por un problema eléctrico, mecánico… o incluso biológico. Hoy los errores son menos visibles, pero el concepto sigue siendo el mismo: algo rompe un supuesto que dábamos por válido.
También resulta curioso que el equipo documentara el incidente con tanto cuidado. Desde el inicio, la informática entendió que registrar errores es tan importante como resolverlos. Los actuales sistemas de logging, trazas y monitorización son herederos directos de ese cuaderno donde acabó pegada una polilla.
En la actualidad, aunque el software se haya vuelto abstracto y complejo, los errores siguen siendo inevitables. Cambian de forma, de escala y de impacto, pero siempre están ahí. Y a veces, entender su origen, aunque sea tan humilde como un insecto, nos ayuda a diseñar sistemas más robustos y a asumir que fallar es parte del proceso.