Akcja Partnerska

AI kontra programiści – kto wygra na rynku pracy?

Albert Lewandowski
14

Temat sztucznej inteligencji jest niezwykle często poruszany od kilku lat w branży nowych technologii. Nie da się ukryć, że swoją szczytową popularność miał on jakiś czas temu, kiedy to mówiło się, że AI zastąpi nas wszystkich w bliskiej perspektywie. Szczególnie dużo mówiło się tu w obszarze automatyzacji pracy. Czy jednak jest to coś, co nastąpi wkrótce i czy dotknie sektor programistów? Sprawdźmy, jak to wygląda.

Automatyzacja? Zawsze na plus

Programowanie jest zadaniem twórczym, w którym dodatkową trudność może stanowić przetłumaczenie wymagań biznesowych na język techniczny. To zresztą jeden z głównych argumentów, który podają deweloperzy, przeciwko wprowadzaniu sztucznej inteligencji w świat programowania – AI nie zrozumie wymagań. Trzeba przyznać, że to trafna uwaga. Obecnie zresztą w zadaniach wymagających analizy i opracowania nowych rozwiązań nie spotkamy się z nadmierną automatyzacją, ponieważ pozostaje ona nieopłacalna, a przy tym możliwe opcje techniczne wciąż nie działają wystarczająco dobrze.

 

Niemniej jednak, cały czas stawiamy na automatyzację prostych, powtarzalnych zadań. Mowa tu o zarządzaniu konfiguracjami, weryfikacją metryk czy przewidywaniem ruchu sieciowego – całość można opisać językiem matematyki lub programowania, aby zapewnić działanie całości. Zupełnie tak samo jak w fabrykach. Przy skali działań, opierających się na pewnych parametrach i wskaźnikach automatyczne rozwiązania są skuteczniejsze niż człowiek. W takiej sytuacji rozwiązania rozwijające te zagadnienia, już wsparte przez algorytmy uczenia maszynowego.

Czy uczenie maszynowe jest jednak niezbędne? Realnie patrząc, sporo przypadków wykorzystuje takie mechanizmy jedynie na slajdach, ponieważ potrafi to być świetnie działający magnes na klientów. O ile przy wykrywaniu wzorców zachowań czy tworzeniu hiperspersonalizowanych rekomendacji produktów, AI ma zastosowanie, o tyle przy niektórych zadaniach deweloperskich cały czas sporo brakuje do pełnej niezależności i pokazania wartości biznesowej.

SaaS-em rynek stoi

Temat zastąpienia programistów przez AI jest napędzany przez rosnącą popularność rozwiązań oferowanych w modelu oprogramowania jako usługi. Na dobrą sprawę możemy wyklikać rozbudowane strony internetowe czy sklepy, a teraz falę wzrostową przeżywają rozwiązania no-code i low-code, które pozwalają na tworzenie aplikacji bez znajomości programowania. Z perspektywy biznesowej to świetne rozwiązania, szczególnie kiedy chcemy zbudować prototyp usługi do zweryfikowania założeń biznesowych.

Nie ma jednak rozwiązań idealnych. Za tym wszystkim idą spore ograniczenia, które nakładają na nas takie systemy i musimy liczyć się z tym, że nie wszystkie pomysły da się zrealizować, a nadmierne komplikowanie może przełożyć się na odczuwalny spadek wydajności całości. Wówczas dochodzimy do pomocy programistycznej. Albo sztucznej inteligencji. Czy jednak na pewno?

Sztuczna inteligencja może samodzielnie wypracować gotowe szablony wyglądu oraz ścieżek użytkownika, aby przyspieszyć sam etap konfiguracji, stylowania i układania zawartości danej aplikacji. Mówimy tu cały czas o wykorzystaniu gotowej zawartości tworzonej przez człowieka. Nie ma miejsca na kreatywność naszego algorytmu.

Niektórzy rysują piękne wizje, że sztuczna inteligencja będzie tworzyć aplikacje na podstawie opisu. Teraz jesteśmy jednak na etapie tworzenia grafik/obrazów na podstawie opisu, co jest zadaniem nieporównywalnie łatwiejszym. W przypadku oprogramowania mówimy o znacznie większym poziomie skomplikowania, którego głównego sprawcą jest człowiek definiujący funkcje oraz wymagania. W dodatku dochodzimy do jednego wyzwania technologicznego. Używane technologie często ewoluują, część rozwiązań znika z rynku, inne przechodzą dynamiczne zmiany – algorytm na bieżąco musiałby uczyć się wykorzystania zalecanych praktyk. Do tego dochodzi wykrywanie błędów w tworzonym oprogramowaniu. Niektóre bugi występujące w wykorzystywanych paczkach są trudne w analizie i niestety trudno opisać to konkretnym mechanizmem nauki. Nie da się ukryć, że w całym procesie mamy mnóstwo niewiadomych.

Szybkość i koszty, a jakość i personalizacja

Główny argument za wykorzystywaniem narzędzi opierających się o gotowe komponenty czy sztuczną inteligencję (tj. może okazać się, że za sztuczną inteligencją stoi jednak zespół deweloperski, który szybko radzi sobie z przydzielanymi zadaniami) dotyczy aspektu finansowego. Atrakcyjna cena przyciąga uwagę i powoduje, że sporo firm jest zainteresowanych takimi rozwiązaniami. Szczególnie przy prostych aplikacjach, opierających się o bardzo powtarzalne schematy, użycie automatycznego czy też wspierającego programowanie rozwiązania ma sens. Po co pisać daną funkcjonalność od zera, skoro można skorzystać z gotowego systemu, za którego utrzymanie i rozwój odpowiada ktoś inny? Niewątpliwie to spora wartość.

Ciekawym rozwiązaniem jest GitHub Copilot, czyli rozwiązanie wykorzystujące technologię OpenAI do proponowania sugestii związanych z kodem. Całość została wyuczona na kodzie dostępnym w publicznych repozytoriach GitHuba, zatem mówimy o wykorzystaniu wiedzy stworzonej przez deweloperów. Czy sprytne AI ma opierać się na kodzie stworzonym przez człowieka, odnośnie do jakości którego nie ma AI przecież wiedzy? Niewątpliwie tu pojawia się wiele wątpliwości, ale z drugiej strony może to mieć świetne zastosowanie w firmach. Mamy wdrożone konkretne procedury i składnię projektową, uczymy na wybranym zbiorze Copilot, a ten następnie zadba o to, aby wszyscy pracownicy pisali w jeden zgodny sposób.

Sztuczna inteligencja w świecie programowania ma szczególnie swoje miejsce w zakresie wsparcia pracy. Mowa tu o wykonywaniu testów, uczeniu się zachowań, które mogą zostać wykorzystane przez cyberprzestępców lub proponowaniu usprawnień na podstawie zgromadzonego kodu (w ramach organizacji lub ogólnodostępnych projektów open source) albo na podstawie powszechnie znanych podatności danej wersji używanej biblioteki. W obszarze wsparcia sztuczna inteligencja ma spore pole do popisu. Niewątpliwie w najbliższym czasie usłyszymy o sporej liczbie projektów mających zautomatyzować cały rynek deweloperów, jednak na ogół w przypadku startupów należy wziąć sporą poprawkę na ich obietnice oraz prezentowane dema. Niemniej jednak warto obserwować i wspierać rozwój rozwiązań pozwalających usprawnić prace. Cały czas jest tu sporo do zrobienia, a nowe systemy mogą niezwykle w tym pomóc.

Sztuczna inteligencja jako automatyzacja

Sztuczna inteligencja to obecnie często buzzword. Nic dziwnego, skoro cały czas możemy usłyszeć zróżnicowane definicje tego pojęcia, na czym skrzętnie korzystają szczególnie startupy obiecujące nam przełomowe rozwiązania. Niewątpliwie rozwiązania automatyzujące prace zmieniają każdy sektor rynku, programowanie nie jest tu wyjątkiem. Szczególnie widać miejsce na takie systemy w obszarze tworzenia prostych aplikacji lub stron internetowych, w przypadku których można zaplanować wygląd całości, możliwe ścieżki i formy interakcji. W takiej sytuacji automatyczne generowanie treści ma sens i na dobrą sprawę praca dewelopera wiązałaby się z wyższymi kosztami i większą czasochłonnością. Kiedy jednak mówimy o tworzenie bardziej złożonej logiki, wówczas okazuje się, że człowiek jest niezastąpiony. Ponownie – sztuczna inteligencja może pomóc przy, np. naprawianiu wykrytych podatności w trakcie statycznej analizy kodu. Pewne rzeczy mogą zostać pominięte przez ludzi, podczas gdy robot je dostrzeże i sprawnie naprawi.

Jakie są Wasze spostrzeżenia na temat przyszłości wykorzystania sztucznej inteligencji w IT? Czy widzicie tu szanse na przełom?

Artykuł powstał we współpracy z the:protocol.

Hej, jesteśmy na Google News - Obserwuj to, co ważne w techu