Automatyzacja – standard, czy kolejne „buzz word”?

Świat pochłonięty jest automatyzacją w niemal każdej sferze naszego życia – automatyczne maszyny rolnicze, inteligentne odkurzacze, które same odkurzą mieszkanie, zautomatyzowane linie produkcyjne, czy pipeline CI/CD. Wygląda na to, że jesteśmy na to skazani i sami dajemy się omamić niewątpliwym korzyściom płynącym z tej rwącej rzeki automatów. Tylko czy ta rzeka nie wyrwie też okolicznych domów, których mieszkańcy nie chcą zmian?

Jeśli przeczytaliście kiedykolwiek moją notkę „o mnie” pod artykułem, pewnie pukacie się w czoło i stwierdzicie, że jestem hipokrytą. To, że jestem fanem automatyzacji, nie oznacza, że nie widzę wad takich rozwiązań. W tym bardzo subiektywnym wpisie chciałbym się nieco podzielić moimi spostrzeżeniami, nieco historią tytułowego tematu oraz obecnymi trendami.

Po raz pierwszy słowo „automatyzacja” zostało użyte w 1946 roku, którego podobno miał użyć pan Harder, ówczesny kierownik techniczny w Ford Motor Company, w kontekście coraz większej ilości używanych automatycznych maszyn w zmechanizowanych liniach produkcyjnych. Jednakże sam opis słowny tego co znamy obecnie, miał ojca 2 wieki wcześniej. I można pokusić się o stwierdzenie, że miał jednak 2 ojców. Ten pierwszy, Richard Arkwright wynalazł już w roku 1771 automatyczną przędzalnie napędzaną przez spływającą wodę (stał się bohaterem narodowym i bardzo majętnym człowiekiem. 15 lat później, Oliver Evans poszedł o krok dalej i stworzył automatyczną maszynę do robienia mąki (czyli po prostu młyn), tym samym stał się twórcą pierwszego w pełni zautomatyzowanego procesu przemysłowego. Ponad 200 lat temu stworzono pierwszy „automat” a my wciąż się tym zachwycamy 😊

Automate Everything

W branży IT odczuwam mocny nacisk na automatyzację i usprawnianie procesów. Czy idea jest słuszna? Jak najbardziej – redukcja kosztów, krótszy czas trwania procesu (i tu nie ważne jaki produkt dostarczamy), lepiej przetestowany produkt, a wszelkie defekty są wykrywane na znacznie wcześniejszym etapie produkcji, redukując koszty późniejszych reklamacji. Można zautomatyzować wiele rodzajów testów, implementacje całych środowisk, tworzenie nowych maszyn wirtualnych i ich usuwanie w zależności od potrzeb, tworzenie, usuwanie użytkowników. Czy można zautomatyzować podlewanie własnego ogródka? Oczywiście, że tak. Czy można zautomatyzować „wnioskowanie”? Oczywiście, i często sztuczna inteligencja, której damy autonomię poradzi sobie znacznie lepiej od nas. Generalnie jestem pewien, że każdy znajdzie inne zastosowanie automatyzacji, o której ja nawet bym nie pomyślał.

Więc to wszystko jest dobre, prawda? Według mnie – niekoniecznie.

Wszystko ma swoje wady i zalety, więc i automatyzacja ma swoje dość wyraźne wady. W obecnym świecie wiele osób traci pracę na skutek właśnie automatyzacji. Powiecie „trzeba było się uczyć”. Owszem, wykwalifikowane zawody mają większą odporność na utratę zawodu z tego tytułu. Ci ludzie mogą się bać jedynie zaawansowanej sztucznej inteligencji, ale mi osobiście ciężko jest wyrokować kiedy to nastąpi.

Automate GIFs - Get the best GIF on GIPHY
Czy automatyzacja to też tania siła robocza?

Maszyna zrobi dokładnie to, w jakim celu została zaprogramowana, podczas gdy pracownik jest elastyczny i może się dostosować. W niektórych środowiskach automatyzacja może być bardzo droga lub wręcz niemożliwa. Automatyczne maszyny wymagają dużej przestrzeni – więc po raz kolejny, może się okazać, że tej przestrzeni nam zabraknie i operacja będzie niemożliwa.

W IT wg mnie nie ma sensu „mikroautomatyzacja” albo pojedyncze prośby. Dlaczego?

  • mikroautomatyzacja to automatyzowanie każdego kroku, który administrator/programista robi w swojej pracy. Może to oznaczać np. restart serwisu w Windowsie. Z jednej strony, to one-liner który trzeba odpalić w skrypcie. Z drugiej strony – to też jedno kliknięcie w interfejsie graficznym. Czy warto? Jako pojedyncza operacja – niekoniecznie. Jako element skryptu, owszem, ale to już nie jest mikroautomatyzacja,
  • pojedyncza prośba – „Heniek, zainstaluj mi IIS na serwerze”. Zaczynasz pisanie skryptu, który odpali na wielu maszynach instalację IIS, pokaże postęp, da informację zwrotną i tak dalej. Uruchamiasz to na pojedynczym serwerze, bo jesteś święcie przekonany, że to tylko wersja pilotażowa. A później… do końca Twojej kariery w firmie nikt Cie o coś takiego nie prosi 😊 Jak ocenić, czy coś jest pojedynczą prośbą? Podpytaj kolegów w firmie, pewnie będą wiedzieć, a jeśli już ugrzęzłeś trochę w firmie… to na pewno sam będziesz mógł to spokojnie ocenić. W organizacjach zawsze znajdzie się „ten typ”, który będzie miał nietypowe prośby.

Automatyzacja jest świetna w ramach nauki – czy to systemu czy to języka. Ale może mieć też groźny skutek uboczny. Kilka lat temu kolega opowiedział mi historię o człowieku, który w ciągu pół roku popisał sobie skrypty na wszystko co miał do roboty, by potem przez kilka lat „pykać w CS-a”. Po 2 latach przychodzi szef, bo „coś się popsuło i trzeba naprawić”. I tak oto człowiekowi wiedza przez lata wyparowała i nie potrafił sobie poradzić z problemami w firmie, aż go zwolnili. Dla mnie to śmierdzi „urban legend”, ale powinno dawać do myślenia. Sam jak czasem wracam do starych skryptów albo ktoś w pracy mnie wypytuje o coś w programie, to potrzebuje dłuższej chwili by przypomnieć sobie co autor miał na myśli.

Niestety, nie znalazłem czystego szablonu

I jeszcze jedna uwaga – nie da się zautomatyzować wszystkiego. A przynajmniej obecnie. W mojej opinii próby zautomatyzowania zakończą się niepowodzeniem, gdy zabierzemy się za:

  • Nie zautomatyzujemy myśli człowieka – brzmi abstrakcyjnie, ale interfejs mózg-mózg też już istnieje – zobaczcie filmik sterowanie szczura za pomocą mózgu,
  • Nie damy rady zautomatyzować wszystkich testów w oprogramowaniu – być może jest szansa na napisanie wszystkich testów w aplikacji, która się już nie rozwija… ale po co wtedy pisać testy? Do testowania zawsze brakuje rąk do pracy, czasu lub pomysłów na to, gdzie jeszcze warto umieścić testy,
  • Testowanie zabezpieczeń, czy inaczej mówiąc – testy penetracyjne. Są one najczęściej wykonywane manualnie, a częściowo wspomagane automatami. To jest spostrzeżenie z moich doświadczeń, jeśli faktycznie istnieją automatyczne testy end-to-end, to dajcie znać 😊
  • A jak zautomatyzować i wydać ocenę użyteczności aplikacji?

Nie wiem czego jeszcze nie da się obecnie zautomatyzować, albo co nie ma większego sensu. Ale wierzę, że w głowie macie co najmniej jeszcze jedną rzecz.

Na zakończenie wspomnę jeszcze raz – automatyzacja generalnie zadziała i generalnie warto to robić. Ale w mojej opinii, nie można automatyzować wszystkiego. A Wy jak myślicie, co z tą automatyzacją? Warto, nie warto?

Marcin Kuchczyński

Wielki fan automatyzowania wszystkiego, co trzeba wykonać więcej niż 2 razy. Cierpliwie rozwijający się w kierunku rozwiązań chmurowych i raczkujący w sferze sztucznej inteligencji. W IT od 2016 roku.

Leave a Reply