Ostatnio się zastanawiam nad zawodami, które przypominają zawód programisty.
Pierwszym co przychodzi do głowy to oczywiście budowlaniec / architekt.
Występuje tam szkicowanie projektu, założenia, struktura, dokumentacja, oczekiwania, czas, następnie implementacja - budowanie no i na końcu utrzymanie przy życiu. Jednak brakuje mi w tym wszystkim debbugowania. Budowlaniec nie debugguje budynku, nie wykonuje refaktoryzacji, nie zmienia modułów zależnych od siebie. Wszystko przebiega liniowo i przypomina bardziej programowanie z dawnych lat 80-90 niż dzisiejsze.
Sądzę, że programowanie można porównać bardziej do pracy lekarza, doktora, farmaceuty.
Tworzone są medykamenty (projekty), które przechodzą różne etapy rozwoju, a na końcu dystrybucji i utrzymania (ewentualnie rozwoju). Tabletki takie mogą działać, mogą nie działać lub też wykonywać inne nieprzewidziane działania. Następuje wtedy faza wykrycia problemu, znalezienie rozwiązania i jego wprowadzenie w życie.
Podobnie jak podczas leczenia pacjenta, należy zdiagnozować problem, wpaść na pomysł jego rozwiązania, a następnie wprowadzić w życie. Czasami pacjenci umierają, co może być alegorią do zamknięcia projektu, zakończenia jego rozwijania i utrzymywania.
Fragmenty w kodzie oddziałują na siebie wzajemnie, podobnie jak w ludzkim organizmie. Jeśli boli nas serce to związane może to być z wieloma czynnikami, podobnie jak w kodzie. Problem może być ciągnąc za sobą różne skutki, ból w piersiach, gorączka, potliwość, duszność i na końcu wychodzi Exception.
Co o takim porównaniu myślicie?