Wywiady
Peter McKee, szef ds. relacji z deweloperami w Sonar – seria wywiadów

Peter McKee jest szefem ds. relacji z deweloperami w firmie Sonar, platformy, która rozwiązuje problem złego kodu o wartości bilionów dolarów. Sonar wyposaża deweloperów i organizacje w możliwość systematycznego osiągania stanu czystego kodu, dzięki czemu cały kod jest odpowiedni do rozwoju i produkcji. Stosując metodologię Sonar „Clean as You Code”, organizacje minimalizują ryzyko, redukują dług techniczny i czerpią więcej wartości ze swojego oprogramowania w sposób przewidywalny i zrównoważony.
Czym pierwotnie zainteresował się pan komputerami?
Zawsze interesowałem się komputerami od młodego wieku. Nawet gdy początkowo realizowałem inną ścieżkę kariery, ciągle wracałem do komputerów i programowania. W pewnym momencie mój ojciec zarządzał firmą stalową w Wirginii i stracili oni grupę konsultantów. Ponieważ nauczyłem się programować, gdy byłem młodszy, zaprosił mnie do pracy i budowy systemów dla niego. Nie wiedziałem, szczerze mówiąc, co robiłem 100% na początku, ale nauczyłem się z książek i poprzez pracę, i zostałem całkowicie samoukiem. To ciągle napędzało moje zainteresowanie kodowaniem i komputerami i naprawdę umocniło moje zainteresowanie informatyką.
Czy mógłby pan wyjaśnić, co to jest czysty kod i dlaczego jest on tak ważny?
Mówi się od lat, że oprogramowanie pożre świat, a ja powiedziałbym, że jesteśmy teraz w punkcie, w którym to się stało oficjalnie – świat jest zbudowany na oprogramowaniu, a każda firma jest efektywnie firmą oprogramowania. Podstawą dobrego oprogramowania jest jakość kodu, ponieważ kod jest rdzeniem wszystkiego oprogramowania i dyktuje jego zachowanie i wydajność. Dlatego czysty kod — kod, który jest spójny, zamierzony, dostosowywalny i odpowiedzialny — jest tak ważny. Kod, który jest czysty, jest łatwy do zrozumienia i zmiany, działa gładko w czasie wykonywania i nie zawiera długu technicznego, dzięki czemu jest odpowiedni do celu. Czysty kod jest standardem, który organizacje powinny przyjąć, aby upewnić się, że ich oprogramowanie nadal jest aktywem — a nie pasywem — i jest kluczem do sukcesu biznesowego dzisiaj.
Czysty kod przynosi korzyści zespołom i organizacjom wszystkich rozmiarów i poziomów dojrzałości, oraz zwiększa wartość oprogramowania w wyniku. Kilka konkretnych korzyści to:
- Zwiększa umiejętności deweloperskie — deweloperzy mogą wykrywać, rozumieć i rozwiązywać problemy podczas kodowania, a także uczyć się najlepszych praktyk
- Zwiększa wydajność i produktywność — redukuje ciągłe przeróbki i długie cykle informacji zwrotnej, co skutkuje większą produktywnością
- Redukuje ryzyko reputacyjne i biznesowe — czysty kod gwarantuje mniej ryzyka bezpieczeństwa, umożliwiając zespołom proaktywne rozwiązywanie problemów, zanim dotrą one do produkcji
- Obniża dług techniczny na poziomie kodu — czysty kod stopniowo rozwiązuje dług kodu bez potrzeby dużych przebudowań i zakłóceń
- Zwiększa prędkość rozwoju oprogramowania — standardy czystego kodu i uproszczone przepływy poprawiają prędkość DevOps, umożliwiając szybsze wprowadzanie na rynek
Czy mógłby pan omówić wagę spójności i struktury w kodzie, oraz podać przykłady spójnego i czystego kodu?
Spójna jakość kodu jest czymś, co każdy menedżer lub dyrektor techniczny stara się utrzymać. Spójność jest kluczowa, gdy chodzi o jakość kodu, ponieważ spójność prowadzi do przewidywalności. Kod jest napisany w sposób jednolity i konwencjonalny — cały kod wygląda podobnie i podąża za regularnym wzorcem, nawet z wieloma współpracownikami w różnym czasie. Spójny kod jest sformatowany, konwencjonalny i rozpoznawalny. Gdy przyjęte są spójne standardy kodowania, deweloperzy stają się bardziej wydajni i są w stanie spełnić swoje oczekiwania co do dostarczenia z prędkością i precyzją.
Czy mógłby pan omówić wagę kodu, który może radzić sobie z nieoczekiwanymi warunkami, oraz dlaczego nie powinno się go lekceważyć?
Deweloperzy zawsze starają się przewidywać i przygotować do nieoczekiwanych zdarzeń podczas projektowania i rozwoju, ale nie można tego uniknąć w każdym przypadku. Nieoczekiwane stany mogą powstać z powodu niezamierzonego nadużycia lub celowo spowodowanych ataków. Te nieoczekiwane stany mogą nieumyślnie wprowadzić luki w zabezpieczeniach, które atakujący mogą wykorzystać. Dlatego deweloperzy powinni dążyć do poprawy jakości i stabilności swojego kodu i testować go pod kątem nieoczekiwanych warunków. Przestrzegając podejścia Clean as You Code, zespoły mogą lepiej przyspieszyć nowe funkcje, uniknąć niepotrzebnych kosztów przeróbek i wspierać rozwój talentów i utrzymanie. Czysty kod promuje bezpieczeństwo, utrzymanie i niezawodność, i może umożliwić deweloperom lepsze przewidywanie i radzenie sobie z nieoczekiwanymi stanami oraz szybsze przywrócenie oprogramowania do działania.
Czy mógłby pan omówić korzyści z wykorzystania sztucznej inteligencji do generowania kodu?
Włączanie AI do cyklu życia rozwoju oprogramowania ma swoje korzyści, takie jak umożliwienie deweloperom pracy bardziej efektywnie. W rzeczywistości badania GitHub wykazały, że deweloperzy mogą wykonać zadania o ponad 50% szybciej przy użyciu AI. GenAI może również generować kod szybciej, i odciążyć deweloperów z bardziej nużących, rutynowych zadań — takich jak dokumentacja lub generowanie fragmentów kodu — aby mogli się skoncentrować na bardziej wartościowych, satysfakcjonujących zadaniach, które rozwiązują bardziej złożone problemy. Niezależnie od tego, jak kod jest tworzony, jest kluczowe, aby był on sprawdzany pod kątem standardów czystego kodu, aby upewnić się, że kod jest bezpieczny, niezawodny i utrzymywalny.
Jakie są potencjalne pułapki i ryzyka związane z wygenerowanym kodem?
Chociaż AI może uwolnić czas deweloperów do pracy nad bardziej wartościowymi projektami i zwiększyć produktywność, nie jest to pozbawione ryzyka. Dlatego popyt na deweloperów nie zniknie w erze AI. Ponieważ narzędzia GenAI mogą generować dużo kodu szybko, istnieje potencjalne ryzyko błędów. Oto kilka konkretnych pułapek:
- Odpowiedzialność: AI wygenerowany kod redukuje możliwość przypisania odpowiedzialności za stworzony kod, co może utrudnić rozwiązywanie problemów.
- Luki w zabezpieczeniach: Ponieważ korzysta z informacji z crowdfundingu, nie ma gwarancji, że wygenerowany kod jest bezpieczny lub czysty. Mogą wystąpić błędy lub problemy z zabezpieczeniami, które mogą narazić firmę na ryzyko.
- Jakość: AI nie sprawdza jakości, a tylko dlatego, że jest generowany przez AI, nie oznacza, że jest wydajny lub wysokiej jakości.
- Brak kontekstu: Utrata elementu ludzkiego naturalnie oznacza utratę kontekstu problemu lub projektu. Wygenerowany kod AI musi być sprawdzony, aby upewnić się, że wykonuje swoją pracę w pełni.
Gdy deweloperzy stosują podejście Clean as You Code do swojego kodu — niezależnie od tego, czy jest to kod ludzki, czy AI — mogą upewnić się, że jest on odpowiedni do rozwoju i produkcji oraz spełnia wymagane standardy ich organizacji.
Jakie są inne zmienne, które powinny być brane pod uwagę w kodzie odpowiednim do produkcji?
Deweloperzy, którzy piszą kod zgodny z zasadami czystego kodu, mogą być pewni, że ich kod jest odpowiedni do rozwoju i produkcji, co oznacza, że kod spełnia określone cechy:
- Spójny: Kod powinien być spójny i podążać za wspólnym stylem. Nawet jeśli kod jest pracowany przez wielu różnych deweloperów w czasie, powinien mieć podobny wygląd i podążać za wcześniej ustalonymi wzorcami.
- Zamierzony: Kod zamierzony powinien czytać się jakby był napisany z uwagą i starannością, aby przekazać swoje znaczenie; powinien mieć tylko jedną dostępną interpretację.
- Dostosowywalny: Kod dostosowywalny jest podzielony i zorganizowany w sposób, który ułatwia jego zarządzanie i widzenie relacji między każdą linią kodu. To sprawia, że kod jest zorganizowany do łatwej i pewnej ewolucji.
- Odpowiedzialny: Kod, a także jego twórcy, powinni być świadomi swoich obowiązków etycznych dotyczących danych i ich potencjalnego wpływu na normy społeczne. Kod nie powinien stanowić ryzyka nieumyślnego szkodzenia osobom trzecim.
Czy mógłby pan omówić różne oferty Sonar i jak pomagają one deweloperom budować odpowiedzialny, bezpieczny, wysokiej jakości kod szybko i systematycznie?
Poprzez nasze wiodące analizatory branży, Sonar identyfikuje problemy z kodowaniem w sposób kompleksowy i zaleca naprawy z krótkimi pętlami informacji zwrotnej, jednocześnie edukując deweloperów w kontekście, co w końcu umożliwia organizacjom budowanie odpowiedzialnego, bezpiecznego, wysokiej jakości kodu szybko i systematycznie. Podstawowymi elementami rozwiązania Sonar są SonarLint, SonarQube (samodzielnie zarządzany; open source), i SonarCloud (SaaS), z obszernym zakresem, który obsługuje ponad 30 języków programowania, frameworków i infrastruktur, 11 IDE, i ponad 5 000 reguł specyficznych dla języka i kodu.
SonarLint, rozszerzenie IDE, zapewnia pierwszą linię kontroli w celu znalezienia problemów w czasie rzeczywistym od momentu napisania kodu. Złapie dużą część problemów na początku i pomoże deweloperom odkryć i naprawić błędy, jak sprawdzanie pisowni dla kodu. SonarQube i SonarCloud, statyczne narzędzia do przeglądu kodu, ciągle inspekcjonują i analizują kod, z integracją SonarLint. Używając bramek jakości do określenia, czy kod spełnia określone standardy jakości, bezpieczeństwa i niezawodności dla produkcji, SonarQube i SonarCloud inspekcjonują kod w poszukiwaniu błędów, luk w zabezpieczeniach, gorących punktów zabezpieczeń i nieprzyjemnych zapachów kodu.
Łącząc nasze rozwiązanie z naszą metodologią Clean as You Code — podejściem, które podąża za ustalonymi standardami, aby utrzymać nowy, dodany lub edytowany kod czysty — deweloperzy i organizacje są w stanie dostarczyć czysty kod i usunąć istniejący kod organicznie, aby mogli się skoncentrować na nowych, innowacyjnych projektach, które napędzają wartość biznesu
Jak Sonar pomaga zapewnić, że kod jest zgodny z normami branżowymi?
Sonar pomaga deweloperom uzyskać natychmiastową i kontekstualną informację zwrotną, wskazując problemy, gdzie się one znajdują w kodzie, w ramach procesu rozwoju, opartego na latach doświadczenia w analizie języka. Deweloperzy uzyskują dostęp do jasnych wyjaśnień, dlaczego problem występuje i jak go szybko naprawić, a także dodatkowych zasobów do głębszego uczenia. Mamy edukację wbudowaną w cały proces, od IDE do CI/CD. Na przykład, Sonar ma specyficzne reguły MISRA C++ 2023 dostępne w SonarLint, aby pomóc zespołom tworzyć kod, który jest najlepiej przygotowany do ostatecznej certyfikacji. Oferuje wskazówki programistyczne, wyjaśniając, dlaczego problem jest oznaczony, i jak go naprawić, aby upewnić się, że kod jest zgodny z MISRA.
Jakie jest Pana wizja przyszłości kodowania z użyciem sztucznej inteligencji?
Myślę, że AI będzie nadal dostarczać ogromną wartość w rozwiązywaniu wypalenia deweloperów. Chociaż nie sądzę, że AI kiedykolwiek będzie w stanie przerzucić myślenie deweloperów i ludzki dotyk, sądzę, że nawet za kilka miesięcy zobaczymy całkowicie nowy zestaw GPT — nie mówiąc już o tym, co wygląda to za kilka lat. Nie wierzę, że technolodzy lub deweloperzy znikną, ale sposób, w jaki wykonują swoją pracę każdego dnia, na pewno się zmieni. Sposób, w jaki deweloperzy używają AI, będzie tak prosty i powszechny, jak wyszukiwanie czegoś w Google jako skrót. Jest wiele do odkrycia na temat użycia AI, ale musimy nadal brać pod uwagę ludzki element na pierwszym planie, aby sprawdzić wady AI. Jest transformacyjny potencjał dla rozwoju oprogramowania, ale nie możemy pozwolić, aby działo się to bez żadnych kontroli — zwłaszcza gdy dzisiejsze firmy cyfrowe są uzależnione od oprogramowania, które je wspiera.
Dziękujemy za wspaniały wywiad, czytelnicy, którzy chcą dowiedzieć się więcej, powinni odwiedzić Sonar.












