Volver al Blog

Atrápame a ese bicho

31 Mayo 2023 · AUTOR: SERGIO FORCEN

Los bugs informáticos son una parte intrínseca del desarrollo de software. Incluso las programadoras más experimentadas se encuentran con desafíos que pueden resultar en errores en el código. Esto se debe a la complejidad de los sistemas informáticos, la interacción entre múltiples componentes, la necesidad de adaptarse a las demandas cambiantes de los usuarios y la explosión de nuevas tecnologías que están definiendo el siglo XXI. Son especialmente comunes en soluciones personalizadas e innovadoras.  Sin embargo, lo que realmente importa es cómo se enfrenta y responde a estos problemas.

En este artículo, exploraremos la naturaleza de los bugs y cómo lo hacemos en Databot para darles solución.

Bug encontrado en la Mark II (Wikimedia Commons)

Seguramente conocerás la historia del primer bug informático registrado el 1946 por la matemática Grace Hopper cuando tuvieron que desarmar parte del Harvard Mark II, uno de los primeros computadores electromecánicos que existieron, para encontrar la causa de un seguido de errores mientras ejecutaban cálculos: una polilla atrapada entre las conexiones (de ahí el término “bug”, que significa insecto en inglés).  

Y aunque sí que se trate del primer bug informático, esta palabra y su asociación con los insectos viene de la segunda revolución industrial. Para entonces, los ingenieros ya utilizaban esta palabra para referirse a fallos de diseño que alteraban el funcionamiento de los revolucionarios inventos de finales del siglo XIX. A veces tenía que ver con la propia forma de producir a gran escala, otras desconocer como el usuario le daría utilidad al invento, o al exponerlo a entornos alejados de las condiciones del laboratorio (entre las que incluimos otra vez a los bichos que anidaban entre las piezas de maquinaria y que terminaban bloqueando sus engranajes). 

Y tal como sucedió en los inicios a los inventos que cimientan nuestro estilo de vida, y durante el desarrollo de las ciencias de la computación que han llevado a la revolución digital, el desarrollo de software no se libra de que aparezcan estos bugs cuando exponemos el código a los usuarios finales. Tampoco cuando el código está en producción y en entornos cambiantes. Aun así, hay formas de abordar el desarrollo de soluciones digitales que nos pueden permitir prevenir la aparición de estos fallos:

  • Pensar en el largo plazo: Cuando construimos una solución desde cero, es bueno tomarse un tiempo para reflexionar y debatir cómo será la arquitectura de la aplicación para que sea escalable y mantenible a medida que va creciendo el número de usuarios y se va volviendo más compleja.

  • Comprender al usuario: En nuestra cabeza de desarrolladores, vemos claro que para que el usuario vaya del punto A al C, tiene que pasar sí o sí por el punto B. Pero la experiencia real nos ha demostrado que las personas preferimos tomar caminos diferentes a los que nos marcan. Y en el caso de los usuarios, sobre todo los early adopters, esto se traslada en que puedan crear sus propias maneras de usar el software, descubriendo errores inesperados que no han sido contemplados al inicio. ¡También sucede que aparezcan utilidades que no estaban previstas gracias a uno de estos bugs y que luego terminan formando parte del resultado final!

  • Conocer el entorno: Igual que los humanos formamos parte del ecosistema de la tierra, nuestra aplicación se encontrará funcionando en un entorno de producción en el que deberá coexistir con otras aplicaciones, servicios externos, APIs, sistemas de Single Sign-On como SAML, bots de scrapping, ciberataques y motores de búsqueda. Cualquiera de estos y muchos otros elementos pueden afectar a cómo se comporta nuestro código (que siempre funciona perfectamente en nuestro ordenador) cuando se encuentra funcionando a pleno rendimiento. Es por eso que desarrollar software es como tener un jardín, requiere de cuidados continuos y trabajar para que evolucione y se adapte a los cambios del entorno.

Pese a todas estas estrategias, a veces algunos de estos bichitos digitales pueden colarse y causar una incidencia al usuario final. Entonces es momento de ponerse el sombrero de cazador de insectos y entrar al código para solucionar el problema paso a paso: 

1

Respuesta rápida

En el equipo de desarrollo de Databot, las incidencias son atendidas directamente por los desarrolladores. Esto hace que la comunicación directa nos permita empezar a trabajar en las incidencias desde el primer momento.

2

Replicar el bug

Como hemos visto antes, a veces los bugs aparecen tan solo si varias condiciones se cumplen a la vez, por lo que, para poder encontrar la solución, tenemos que recrear el camino que ha hecho el usuario hasta la aparición del error. Es por esto que si se describe con detalle cómo se ha originado el fallo, reduciremos considerablemente la duración de la incidencia.

3

Acotar el origen

Una única funcionalidad puede tener cientos de líneas de código detrás, así que la tarea puede convertirse en buscar una aguja en un pajar. Por suerte, algunos frameworks de desarrollo como Ruby on Rails ya se han creado para facilitar el trabajo de las programadoras. Se pueden usar los registros o logs de errores que nos dan información del origen y debuggers que nos permitan ir ejecutando el código manualmente hasta encontrar el origen exacto. Aun así, a veces toca tirar de una combinación de experienciatrabajo en equipo intuición para dar con la solución. 

4

Resolver el error

Actualizar el código o la configuración de la aplicación y comprobar que nuestros cambios no pueden generar errores en otra parte. Para esto utilizamos tests de calidad automáticos y validaciones manuales. Cuando ya se da por cerrada la corrección ha de ser revisada y aprobada por al menos otras dos personas y si ambas dan su voto positivo se sube la actualización que terminan viendo los usuarios.

Ahora que conocemos un poco mejor la naturaleza real de los bugs informáticos podemos ver que son una parte inseparable del desarrollo del software, sobre todo cuando se crean soluciones innovadoras y personalizadas. Es por eso que en Databot tenemos un equipo especialista en desarrollos a medida, con un trato directo y personal que nos permite dar respuesta rápida y efectiva.  

¡Y aunque a veces las inteligencias artificiales puedan echar un cable,
no pueden reemplazar el trabajo de nuestro equipo!

COMPÁRTELO