Sztuczna inteligencja w inżynierii oprogramowania – realne wsparcie programistów

Tomasz Stachlewski
6 min

Jak wygląda typowy dzień pracy programisty? Samo kodowanie zajmuje zazwyczaj tylko 30 proc. ich czasu. Pozostałe 70% to wczytywanie się w dokumentacje techniczne lub przeglądanie specjalistycznych forum w poszukiwaniu informacji na temat technologii czy usług z których chcą korzystać, a także zarządzanie dostępnymi zasobami, integracja standardowego kodu i usuwanie błędów w oprogramowaniu. Można zaliczyć to jako rozwój oprogramowania, ale nie jest to kreatywna praca na jaką liczy początkujący programista.
 
To właśnie częstotliwość powtarzalnej, żmudnej i czasochłonnej pracy sprawiła, że
inżynieria oprogramowania stała się idealna do wykorzystania generatywnej sztucznej inteligencji (GenAI). W badaniu Stack Overflow Developer Survey z 2023 r. 70% programistów stwierdziło, że korzysta z narzędzi obsługiwanych przez sztuczną inteligencję lub planuje to zrobić. Sięgają po te narzędzia na każdym etapie swojej pracy od researchu po planowanie, opracowywanie, testowanie, monitorowanie i rozwiązywanie problemów. Praca na rzecz przyspieszania transformacji cyfrowej wystarczająco wpływa na i tak wysokie obłożenie zadaniami, a można czas ten przeznaczyć na kreatywne elementy pracy programistycznej.

Przyspieszenie transformacji cyfrowej poprzez odciążenie programistów

Generatywna AI pomaga organizacjom przyspieszyć tempo transformacji cyfrowej. Wyspecjalizowane narzędzia sztucznej inteligencji, takie jak Amazon Q, pomagają programistom na każdym etapie ich pracy, na przykład generując precyzyjne wskazówki do stworzenia kodu. Ponadto, mogą samodzielnie wykonać wieloetapowe zadania – takie jak aktualizacja aplikacji Java, zadawanie pytań na temat ich kodu, testowanie oraz generowanie i wdrażanie nowych funkcji. Amazon Q posiada funkcję personalizacji, która wykorzystuje wewnętrzną bazę klienta, aby zapewnić bardziej adekwatne i przydatne rekomendacje kodów.
 
Zrozumienie kontekstowe eliminuje wiele pracy, którą programiści tradycyjnie musieliby wykonać na etapie researchu i planowania. Wykorzystywanie sztucznej inteligencji skraca czas potrzebny do wyszukania odpowiedzi na forach osób trzecich, poprzez natychmiastowe dostarczenie adekwatnych sugestii. Narzędzia AI mogą automatycznie dokumentować możliwe rozwiązania, a programiści skupić się na ich tworzeniu.

Realizacja marzeń o karierze kreatywnego programisty

Typowy projekt deweloperski obejmuje projektowanie, tworzenie i testowanie oprogramowania. Niektóre elementy tej pracy mogą być bardziej kreatywne niż inne. Wymyślanie nowych aplikacji, projektowanie nowych rozwiązań dla użytkowników i decydowanie o nowych funkcjach to zazwyczaj bardziej satysfakcjonująca praca niż back-end development jakim jest testowanie i wdrażanie. Jak wyjaśnia Werner Vogels, Chief Technology Officer (CTO) w Amazon, w swoich prognozach technologicznych na rok 2024, rzeczywisty wpływ sztucznej inteligencji na rozwój będzie realizowany przez uwydatnienie części kreatywnej.

REKLAMA

Cały proces tworzenia zaczyna się od szybkiego prototypowania nowych funkcji, które umożliwiają programistom szybkie przejście od projektu do działającego modelu. Generatywna sztuczna inteligencja umożliwia szybkie opisanie pomysłu na aplikację, a narzędzia pomocnicze generują wskazówki, podpowiadają następne kroki i pokazują możliwe konfiguracje, aby stworzyć działający prototyp aplikacji. AI assistants mogą generować plany wdrożenia, identyfikować niezbędne zmiany w kodzie, a nawet tworzyć nowy kod jeśli zajdzie taka potrzeba. Programiści front-endowi mogą skupić się na rozwijaniu doświadczenia użytkownika bez zagłębiania się w infrastrukturę back-endową. Podobnie w testowaniu, gdzie zastosowanie automatyzacji może znacznie zwiększyć zasięg działania, a także przyspieszyć wyszukiwanie i usuwanie luk w zabezpieczeniach.

Główną barierę stanowią wątpliwości związane z poprawnością zaleceń generowanych przez sztuczną inteligencję, zwłaszcza jeśli chodzi o bezpieczeństwo. Efektywna praca z AI jest umiejętnością samą w sobie i żeby ją rozwinąć, programiści powinni zainwestować w to swój czas. Taka wiedza może budować większe zaufanie do pracy asystentów AI na rzecz tworzenia jeszcze lepiej zabezpieczonego kodu.

Budowanie kompetencji programowania z wykorzystaniem AI

Udostępnienie asystentów AI każdemu programiście zwielokrotnia produktywność zarówno poszczególnych członków, jak i całego zespołu. Czyni to tym skuteczniej, gdy narzędzia AI są dostarczane wraz z powiązanymi z nimi aplikacjami rozwijającymi dane umiejętności. AWS oferuje specjalistyczne kursy oraz szkolenia oparte na gamifikacji – czyli wykorzystujące elementy gry zwiększające skuteczność takich form zdobywania nowej wiedzy – oraz kursy certyfikacyjne dla praktyków AI. W Polsce według ostatniego badania zrealizowanego na zlecenie AWS, aż 85% firm zaoferowałoby wyższe wynagrodzenie kandydatom przeszkolonym w zakresie AI, przy średnim wzroście wynagrodzenia o 28%. Wiele osób w Polsce już obecnie korzysta z samodzielnych szkoleń z zakresu Amazon Q, które pozwoliły partnerom AWS takim jak m.in. brytyjska firma Eviden podnieść efektywność programistów o 20-40%. O innych dostępnych formach szkoleń i certyfikacji będzie można dowiedzieć się na konferencji AWS Cloud Day w Warszawie, 18 września.

W miarę rozwoju umiejętności i pewności siebie w pracy ze sztuczną inteligencją, programiści będą mogli korzystać z asystentów AI, aby móc podjąć się bardziej strategicznych zadań. W przyszłości takie wsparcie będzie wykorzystywane do zajmowania się szczegółami związanymi ze zmianami architektury istniejących aplikacji i migracją całych systemów lub dekompozycją systemów monolitycznych na podejście mikrousługowe.

Generatywna sztuczna inteligencja okazuje się prawdziwie przełomowa dla rozwoju programowania, nie tylko poprzez dostarczanie korzyści dla organizacji, które chcą poprawić wydajność, ale również dla samych programistów, którzy z pomogą asystentów AI mogą oddać się pasji wykonywanej pracy.