Por que robótica faz de você um engenheiro de software melhor
Anos ensinando robótica no HKDI mudaram a forma como penso software. Eis o que o planejamento de movimento me ensinou sobre design de sistemas.
A disciplina das restrições
A robótica obriga-te a pensar em restrições. Um servo tem limites. Um sensor tem ruído. Um loop em tempo real tem uma deadline. Isto não são desculpas; é o próprio espaço de design.
Em software, muitas vezes podemos ser relaxados. Acrescentamos mais memória, ligamos outro servidor ou apanhamos a exceção. A robótica não perdoa tão facilmente esse tipo de pensamento.
O que aprendi a ensinar no HKDI
Quando dava aulas no Hong Kong Design Institute, reparava que alunos com dificuldade em conceitos abstratos de software passavam a percebê-los quando os ligávamos a um sistema físico. Ver um braço robótico falhar por causa de um erro numa máquina de estados torna a máquina de estados algo real.
Como aplico isso ao código
Hoje, quando desenho software, penso em:
- Prazos: o que acontece se isto for lento?
- Estado: como está o sistema em cada momento?
- Modos de falha: quando isto quebra, como quebra?
Estas perguntas vêm naturalmente da robótica. E fazem melhor software.