[NEW] Looking for a job in tech? Companies will find you — just fill in your profile
Close
“ChatGPT na pewno będzie wyręczać”. Grzegorz Gałęzowski  o Test-Driven Development i przyszłości programistów

“ChatGPT na pewno będzie wyręczać”. Grzegorz Gałęzowski o Test-Driven Development i przyszłości programistów

Grzegorz Gałęzowski od 15 lat pracuje w firmie “Motorola Solutions” jako programista i mieszka w Krakowie. Jednocześnie pisze książkę “Test-Driven Development. Extensive Tutorial”. Rozmawiamy o asystencie głosowym dla funkcjonariuszy policji, pisaniu książki i przyszłości programistów w kontekście pojawienia się ChatGPT.

— Czym się zajmujesz w pracy?

Zajmuję się implementacją nowych funkcji, automatyzacją testów, wdrożeniem i utrzymaniem produktu na produkcji. To, czym zajmuje się zespół, w którym jestem, to transformacja modeli uczenia maszynowego w produkty oraz wdrażanie ich i utrzymywanie. Mój zespół nie opracowuje tych modeli — dostajemy je i zajmujemy się ich dalszą drogą. Jeśli chodzi o rozmiar, to w zespole pracuje około ośmiu osób — taki “standardowy zespół scrumowy”. 

— Opowiedz o najlepszych projektach, nad którymi pracowałeś. 

Największą radość daje mi rozwiązywanie problemów za pomocą kodu, szczególnie jeśli działam w ramach krótkich i szybkich pętli sprzężenia zwrotnego. To znaczy, że bardzo krótki czas między kiedy ja coś zrobię i tym, kiedy dostanę informację (czy to działa, czy nie) sprawia, że pracuje się mi bardzo dobrze. 

Stąd wzięła się moja pasja do TDD (Test-Driven Development), bo to podejście promuje właśnie takie krótkie i szybkie pętle sprzężenia zwrotnego. 

Pierwszy projekt, który dał mi ogromną frajdę, zrealizowałem jeszcze na studiach. Napisałem własny kompilator. 

Na początku swojej kariery chciałem iść w stronę formalnego lidera czy architekta, ale potem stwierdziłem, że samo rzemiosło wytwarzania oprogramowania sprawia na tyle dużo przyjemności, że chcę w tym kierunku się rozwijać. 

Razem z kolegami z kolejnych zespołów wdrażaliśmy techniki takie jak wstrzykiwania zależności, TDD, jak płynne interfejsy w warstwie automatyzacji testów i przez lata udoskonalałem te umiejętności wraz ze zdobywanym doświadczeniem. Jeden z najświeższych produktów w których miałem przyjemność pracować i wdrażać te techniki  to Motorola ViQi. To asystent głosowy dla funkcjonariuszy policji. Policjant może porozmawiać z botem używając swojego radia i zapytać na przykład, co wie o takim czy innym numerze rejestracyjnym. ViQi przeszukuje różne bazy danych i odpowiada przez to samo radio, podając rezultaty w miarę jak do nich dociera. Ma też funkcję błyskawicznego powiadamiania o krytycznie istotnych znaleziskach — jeśli znajdzie, że właściciel samochodu był poszukiwany, to od razu informuje o tym. Fajny projekt technologiczny (projekt chmurowy korzystający z Microsoftowych usług), i też bardzo fajny od strony użytkownika.

— Dla kogo jest książka “Test-Driven Development: Extensive Tutorial”?

Książka cały czas jest w trakcie powstawania. Przyjąłem, że nie będę cisnąć, nie będę narzucać sobie terminów, szukać wydawców. 

Około roku 2011-2012 zacząłem się pasjonować zwinnym dostarczaniem oprogramowania i między innymi właśnie Test-Driven Development. Zacząłem zbierać wiedzę z różnych źródeł, prosiłem pracodawcę, żeby kupił mi książki na ten temat. Doszedłem do takiego momentu, że jeśli ktoś mnie pytał, czego powinien się uczyć, to podawałem mu fragmenty czterech różnych książek i szereg wpisów na blogach. Nie było jednego źródła, które byłoby w stanie podsumować  podejście, którego ja na co dzień używałem i które mi się najlepiej sprawdzało. 

Drugi bodziec był taki, że zacząłem pisać swój własny blog na ten temat. W tym samym czasie wystartował inny blog — sustainabletdd.com, z którego miała w zamyśle jego autorów powstać książka, ale nie powstała do dzisiaj. Sam pomysł — pisać blogi i później zebrać je w książkę — bardzo mi się spodobał. Podczas konferencji Quality Excites podczas zakulisowych konwersacji dowiedziałem się, że na platformie leanpub.com można za darmo opublikować swoją książkę. Od tego momentu się zaczęło. 

Nie rozumiałem, jak złożonego problemu dotykam, stąd książka powstaje do dzisiaj. W międzyczasie kilka razy zmieniłem zespół, przygotowywałem wystąpienia na konferencje, urodziło mi się dziecko, więc priorytet pisania kolejnych rozdziałów raz malał, raz rósł. Nigdy jednak pisania nie porzuciłem — ostatnio opublikowałem nowy rozdział. 

Z jednej strony książka jest dla mnie, jako swojego rodzaju  podsumowanie mojej podróży w kierunku opanowania TDD. Z drugiej strony jest dla programistów, z którymi rozmawiam przy różnych okazjach i którym chciałbym opowiedzieć, na czym polega podejście do TDD, które lubię. Z trzeciej strony —  dla ludzi, którzy z jakiegoś powodu nie mogą kupić sobie książki na ten temat. I ostatnia grupa —  to są programiści C#, którzy nie mieli okazji poznać mojej ulubionej książki “Growing Object-Oriented Software, Guided by Tests” Steve’a Freemana i Nata Pryce’a, bo jest w moim odczuciu stosunkowo mało znana w świecie C#-wym. Pomysły z tej książki do dziś stanowią kręgosłup mojego podejścia do wytwarzania oprogramowania i chciałem je trochę przybliżyć społeczności dotnetowej. 

— Jaki wpływ technologia ma na sytuację ekonomiczną?

Moim zdaniem, duży wpływ może mieć pojawienie takich modeli jak GPT-4, czy innych, o których mówi się już, że zabierają pracę — artystom, muzykom, a także programistom. Na razie wygląda, że nie zastąpią ich całkowicie, ale być może w pewnych aspektach. Te modele są trenowane na tym, co wytworzyli ludzie, więc być może zobaczymy utrudnienia dostępu do dzieł wykonanych przez ludzi, właśnie po to żeby nie można było ich łatwo użyć do wytrenowania sztucznej inteligencji. Już zaczynają się także w niektórych państwach działania legislacyjne związane ze sztuczną inteligencją.  

Czy ja jako programista boję się, że stracę pracę przez sztuczną inteligencję? Myślę, że my, programiści zawsze chcieliśmy mieć narzędzia usprawniające produktywność i witaliśmy takie narzędzia z otwartymi ramionami. ChatGPT i inne tego typu narzędzia  na pewno będą nas wyręczać w pewnych aspektach naszych codziennych zadań — a zatem do osiągnięcia tego samego rezultatu będzie potrzebna mniejsza ilość programistów — i w tym sensie można powiedzieć, że zabiorą nam pracę.  Czy ChatGPT będzie w stanie sam napisać i utrzymywać złożony program? Ostrożnie obstawiam, że taka rzeczywistość jeszcze daleko przed nami. 

— Poleć źródła wiedzy dla początkujących programistów.

Pierwsza rzecz, którą mógłbym polecić to są sieci społecznościowe. Na przykład, na temat inżynierii oprogramowania bardzo dużo informacji byłem w stanie znaleźć na Twitterze. Spotkałem tam sporo autorów książek, które dla mnie były ważne oraz innych specjalistów, których mogłem wprost o coś zapytać i dostać odpowiedź. Ostatnio np. miałem krótką wymianę zdań z Robertem C. Martinem, co dawniej nie było nawet w sferze moich marzeń.  

Warto jest znaleźć na początek takich “mistrzów”, za którymi się  podąża. W naszych czasach samo dotarcie do informacji na jakiś temat przestaje być wyzwaniem. Kluczowym staje się umiejętność filtrowania rzeczy, dobierania tych, które są naprawdę istotne. Obserwacja takich “mistrzów” zwiększa szansę tego, że nie zmarnujemy czasu, a nauczymy się czegoś wartościowego.

W ogóle zauważam, że umiejętność wybrania istotnej wiedzy staje się coraz cenniejsza, np. w branży szkoleniowej. Zauważyłem, że niektórzy dostawcy szkoleń reklamują się w ten sposób, że “my nie sprzedajemy godzin materiału, my sprzedajemy właśnie to, że wybraliśmy to co najważniejsze. Wydaje mi się, że to jest też jeden z powodów, dla których obserwuję coraz więcej osób chwalących i ekscytujących się  nauką z Chatem GPT, dlatego że mogę zadać pytanie o to co w danej chwili im jest potrzebne i dostaną odpowiedź lepszą lub gorszą, ale krótką i dostosowaną do ich kontekstu. 

ChatGPT (szczególnie w wersji która obecnie jest dostępna za darmo) przejawia mieszaną skuteczność, szczególnie odpowiadając na pytania które mają konkretne odpowiedzi (m.in. podaje fałszywe źródła, czy zmyślone cytaty), ale, wydaję mi się, że to kierunek, który będzie się rozwijał. 

Ostatnim źródłem, które chciałbym polecić są oczywiście — książki. Moim zdaniem, za mało programistów czyta książki. Najczęściej łapiemy tę wiedzę z jakichś wpisów na blogach czy od jakichś kolegów, czy próbujemy sami. Przez brak solidnych fundamentów, czasami stosujemy do różnych rzeczy  podejście typu na “chybił-trafił”, czyli obok celnych decyzji podejmujemy takie, które nie mają większego sensu. Trudniej nam odnaleźć się w sytuacji która nie przypomina tej, w której już byliśmy. Zachęcam ludzi do zdobywania dobrych podstaw i czytania książek. 


Avatar
Oct 11, 2022
🎉 Witaj na pokładzie DOU.eu!
10
Jun 19
4 powody, dla których sztuczna inteligencja jest tak droga
Microsoft Corp., Alphabet Inc. і Meta Platforms Inc. wydały miliardy na rozwój sztucznej inteligencji — i planują jeszcze zwiększyć te inwestycje. Koszty AI będą rosły.
May 28
“Cichy urlop”. Millenialsi biorą wolne bez informowania o tym swoich szefów
Prawie czterech na dziesięciu millenialsów przyznało się, że wzięło wolne w pracy bez informowania o tym swojego pracodawcy.

This site uses cookies to offer you a better browsing experience.

Find out more on how we use cookies and how to change cookie preferences in our Cookies Policy.

Customize
Save Accept all cookies