Dlaczego robotyka czyni z ciebie lepszego inżyniera oprogramowania

Lata nauczania robotyki w HKDI zmieniły moje spojrzenie na oprogramowanie. Oto, czego planowanie ruchu nauczyło mnie o projektowaniu systemów.


Dyscyplina ograniczeń

Robotyka zmusza do myślenia w ramach ograniczeń. Serwo ma swoje limity. Czujnik ma szum. Pętla czasu rzeczywistego ma deadline. To nie są wymówki, tylko właściwa przestrzeń projektowa.

W oprogramowaniu często możemy sobie pozwolić na bylejakość. Dodać pamięci, uruchomić kolejny serwer albo złapać wyjątek i iść dalej. Robotyka nie wybacza takiego myślenia.

Czego nauczyło mnie nauczanie w HKDI

Kiedy wykładałem w Hong Kong Design Institute, widziałem, jak studenci mający problem z abstrakcyjnymi pojęciami software’owymi nagle zaczynali je rozumieć, gdy łączyliśmy je z systemem fizycznym. Widok ramienia robota, które zawodzi przez błąd w state machine, sprawia, że state machine staje się czymś bardzo realnym.

Jak stosuję to w kodzie

Dzisiaj, projektując software, myślę o:

  • Deadline’ach: co się stanie, jeśli to będzie wolne?
  • Stanie: jak wygląda system w danej chwili?
  • Trybach awarii: jeśli to się zepsuje, to w jaki sposób?

Te pytania naturalnie wynikają z robotyki. I prowadzą do lepszego oprogramowania.