Por qué la robótica te convierte en mejor ingeniero de software

Años enseñando robótica en HKDI cambiaron mi forma de pensar sobre el software. Esto fue lo que me enseñó la planificación de movimiento sobre el diseño de sistemas.


La disciplina de las restricciones

La robótica te obliga a pensar dentro de restricciones. Un servo tiene límites. Un sensor tiene ruido. Un bucle en tiempo real tiene una fecha límite. Eso no son excusas: ese es el espacio de diseño.

En software a menudo podemos ser descuidados. Podemos añadir memoria, levantar otro servidor o simplemente capturar la excepción. La robótica no perdona tan fácilmente esa forma de pensar.

Lo que aprendí enseñando en HKDI

Cuando daba clases en Hong Kong Design Institute, veía que estudiantes que sufrían con conceptos abstractos de software de pronto los entendían al conectarlos con un sistema físico. Ver fallar un brazo robótico por un error de máquina de estados vuelve real la máquina de estados.

Cómo lo aplico al código

Ahora, cuando diseño software, pienso en:

  • Plazos: ¿qué pasa si esto va lento?
  • Estado: ¿qué aspecto tiene el sistema en cada momento?
  • Modos de fallo: cuando esto se rompe, ¿cómo se rompe?

Estas preguntas vienen de la robótica, y terminan produciendo software más sólido.