Interviews
Peter McKee, Leiter der Entwicklerbeziehungen bei Sonar – Interviewreihe

Peter McKee ist der Leiter der Entwicklerbeziehungen bei Sonar, einer Plattform, die die trillionenschwere Herausforderung von schlechtem Code löst. Sonar ermöglicht es Entwicklern und Organisationen, systematisch einen Zustand von saubigem Code zu erreichen, damit alle Code für die Entwicklung und Produktion geeignet sind. Durch die Anwendung von Sonars Clean-as-You-Code-Methode minimieren Organisationen Risiken, reduzieren technische Schulden und ziehen mehr Nutzen aus ihrer Software in einer vorhersehbaren und nachhaltigen Weise.
Was hat Sie ursprünglich zur Informatik hingezogen?
Ich war schon von klein auf an Computern interessiert. Selbst als ich ursprünglich einen anderen Karriereweg verfolgte, wurde ich ständig zu Computern und Programmierung zurückgezogen. Zu einem bestimmten Zeitpunkt führte mein Vater ein Stahlunternehmen in Virginia und sie hatten ihre Beratungsgruppe verloren. Da ich bereits Programmieren gelernt hatte, als ich jünger war, lud er mich ein, für ihn zu arbeiten und Systeme zu erstellen. Ich wusste ehrlich gesagt nicht 100% sicher, was ich tat, aber ich lernte aus Büchern und durch die Arbeit auf der Stelle und wurde vollständig selbstständig. Das trieb mein Interesse an Codierung und Computern weiter und festigte mein Interesse an Informatik.
Können Sie erklären, wie Sie saubigen Code definieren und warum er so wichtig ist?
Es wird bereits seit Jahren gesagt, dass Software die Welt essen wird, und ich würde sagen, wir sind jetzt an dem Punkt, an dem es offiziell ist – die Welt basiert auf Software und jedes Unternehmen ist effektiv ein Softwareunternehmen. An der Grundlage von guter Software steht qualitativ hochwertiger Code, da Code der Kern aller Software ist und ihr Verhalten und ihre Leistung bestimmt. Deshalb ist saubiger Code – Code, der konsistent, intentional, anpassungsfähig und verantwortungsvoll ist – so wichtig. Saubiger Code ist leicht zu verstehen und zu ändern, funktioniert reibungslos während der Laufzeit und enthält keine technischen Schulden, sodass er seinem Zweck entspricht. Saubiger Code ist der Standard, den Organisationen annehmen sollten, um sicherzustellen, dass ihre Software weiterhin ein Vermögen und kein Risiko darstellt und der Schlüssel zum heutigen Geschäftserfolg ist.
Saubiger Code bringt Teams und Organisationen aller Größen und Reifegrade Vorteile und erhöht den Wert der Software. Einige spezifische Vorteile sind:
- Förderung der Entwicklerfähigkeiten – Entwickler können Probleme erkennen, verstehen und lösen, während sie coden, und gleichzeitig beste Praktiken erlernen
- Erhöhung der Effizienz und Produktivität – Reduzierung kontinuierlicher Nachbesserungen und langer Feedbackzyklen, was zu einer höheren Produktivität führt
- Reduzierung des Reputations- und Geschäftsrisikos – Saubiger Code stellt sicher, dass Teams proaktiv Probleme angehen, bevor sie in die Produktion gelangen, und so Sicherheitsrisiken reduziert
- Senkung der technischen Schulden auf Code-Ebene – Saubiger Code behebt allmählich die Schulden der Codebasis, ohne dass eine umfassende Überarbeitung und Störung der Anwendung erforderlich ist
- Erhöhung der Software-Entwicklungsrate – Saubiger Code und optimierte Flüsse verbessern die DevOps-Geschwindigkeit und fördern so eine schnellere Markteinführung
Können Sie die Bedeutung von Konsistenz und Struktur in Code erörtern und welche Beispiele für konsistenten und saubigen Code gibt es?
Konsistente Codequalität ist etwas, das jeder Manager oder technische Direktor anstrebt. Konsistenz ist entscheidend, wenn es um Codequalität geht, da Konsistenz zu Vorhersehbarkeit führt. Es ist auf eine einheitliche und konventionelle Weise geschrieben – alle Code sieht gleich aus und folgt einem regelmäßigen Muster, auch wenn mehrere Mitwirkende zu verschiedenen Zeiten beteiligt sind. Konsistenter Code ist formatiert, konventionell und identifizierbar. Wenn konsistente Codestandards übernommen werden, können Entwickler effizienter arbeiten und ihre Liefererwartungen mit Geschwindigkeit und Präzision erfüllen.
Können Sie die Bedeutung von Code, der unerwartete Bedingungen handhaben kann, erörtern und warum dies nicht übersehen werden sollte?
Entwickler versuchen immer, unerwartete Vorkommnisse während des Entwurfs- und Entwicklungsprozesses vorherzusehen und vorzubereiten, aber dies kann nicht in jedem Fall verhindert werden. Unerwartete Zustände können durch unbeabsichtigte Fehlbedienung oder absichtlich ausgelöste Angriffe entstehen. Diese unerwarteten Zustände können unbeabsichtigt Sicherheitslücken einführen, die Angreifer ausnutzen können. Deshalb sollten Entwickler immer danach streben, die Qualität und Stabilität ihres Codes zu verbessern und auf unerwartete Bedingungen zu testen. Durch die Verwendung eines Clean-as-You-Code-Ansatzes können Teams neue Funktionen schneller bereitstellen, unnötige Nachbesserungskosten vermeiden und Talentwachstum und -bindung fördern. Saubiger Code fördert Sicherheit, Wartbarkeit und Zuverlässigkeit und kann Entwicklern helfen, unerwartete Zustände effektiver zu handhaben und die Software schneller wieder in Betrieb zu nehmen.
Können Sie die Vorteile der Verwendung von Generative AI für Codegenerierung erörtern?
Die Integration von KI in den Software-Entwicklungslebenszyklus hat ihre Vorteile, wie z. B. die Möglichkeit für Entwickler, effizienter zu arbeiten. Tatsächlich fand eine GitHub-Studie heraus, dass Entwickler mit KI Aufgaben über 50 % schneller erledigen können. GenAI kann auch Code schneller generieren und damit die Last von langweiligen, routinemäßigen Aufgaben – wie Dokumentation oder Code-Snippets – von ihrem Tisch nehmen, sodass sie sich auf höherwertige, lohnende Arbeit konzentrieren können, um komplexe Probleme zu lösen. Unabhängig davon, wie Code erstellt wird, ist es jedoch entscheidend, dass er gegen saubige Code-Standards überprüft wird, um sicherzustellen, dass der Code sicher, zuverlässig und wartbar ist.
Was sind einige der potenziellen Fallstricke und Risiken von generiertem Code?
Während KI Entwicklern Zeit sparen kann, um höherwertige Projekte zu bearbeiten und die Produktivität zu steigern, gibt es auch Risiken. Deshalb wird die Nachfrage nach Entwicklern im Zeitalter von KI nicht verschwinden. Da GenAI-Tools viel Code schnell generieren können, besteht die Möglichkeit für Fehler. Hier sind einige spezifische Fallstricke:
- Verantwortlichkeit: KI-generierter Code verringert die Fähigkeit, Personen für den erstellten Code verantwortlich zu machen, was es schwieriger macht, Probleme zu lösen.
- Schwachstellen: Da es im Wesentlichen aus crowdsourceten Informationen stammt, gibt es keine Garantie, dass der produzierte Code sicher oder sauber ist. Es können auch Fehler oder Sicherheitsprobleme enthalten, die das Geschäft gefährden können.
- Qualität: KI überprüft nicht auf Qualität, und nur weil es von KI generiert wurde, bedeutet das nicht, dass es effizient oder von hoher Qualität ist.
- Kein Kontext: Das Fehlen des menschlichen Elements bedeutet, dass der Kontext eines Problems oder Projekts verloren geht. Der von KI generierte Code muss überprüft werden, um sicherzustellen, dass er den Auftrag vollständig erfüllt.
Wenn Entwickler einen Clean-as-You-Code-Ansatz mit ihrem Code – ob von Menschen oder KI generiert – verfolgen, können sie sicherstellen, dass er für die Entwicklung und Produktion geeignet ist und den erforderlichen Standards ihrer Organisation entspricht.
Was sind einige andere Variablen, die bei Code, der für die Produktion geeignet ist, berücksichtigt werden sollten?
Entwickler, die Code schreiben, der saubigen Code-Prinzipien entspricht, können sicher sein, dass ihr Code für die Entwicklung und Produktion geeignet ist, was bedeutet, dass der Code bestimmte Merkmale aufweist:
- Konsistent: Der Code sollte konsistent und einem gemeinsamen Stil folgen. Selbst wenn der Code von mehreren verschiedenen Entwicklern über einen längeren Zeitraum bearbeitet wird, sollte er ein ähnliches Aussehen haben und etablierten Mustern folgen.
- Intentional: Intentionaler Code sollte wie geschrieben wirken, um seinen Zweck zu vermitteln; er sollte nur eine mögliche Interpretation haben.
- Anpassungsfähig: Anpassungsfähiger Code ist segmentiert und organisiert, um es einfacher zu machen, ihn zu verwalten und die Beziehungen zwischen jedem Code zu sehen. Dies macht den Code strukturiert für eine einfache und sichere Evolution.
- Verantwortungsvoll: Der Code und seine Entwickler sollten sich ihrer ethischen Verpflichtungen bewusst sein, was Daten und deren möglichen Einfluss auf gesellschaftliche Normen betrifft. Der Code sollte letztendlich kein anhaltendes Risiko darstellen, unbeabsichtigt Dritte zu schädigen.
Können Sie einige der verschiedenen Angebote von Sonar erörtern und wie es Codern hilft, verantwortungsvollen, sicheren, hochwertigen Code schnell und systematisch zu erstellen?
Mit unseren branchenführenden Analyse-Tools identifiziert Sonar Codierprobleme umfassend und empfiehlt Lösungen mit kurzen Feedback-Schleifen, während es den Entwickler im Kontext aufklärt, und ermöglicht es Organisationen so, verantwortungsvollen, sicheren, hochwertigen Code schnell und systematisch zu erstellen. Die Kernkomponenten der Sonar-Lösung sind SonarLint, SonarQube (selbstverwaltet; Open Source) und SonarCloud (SaaS), mit umfassender Abdeckung, die über 30 Programmiersprachen, Frameworks und Infrastrukturen, 11 IDEs und mehr als 5.000 sprach- und regelspezifische Regeln unterstützt.
SonarLint, eine IDE-Erweiterung, bietet die erste Linie der Überprüfungen, um Probleme in Echtzeit ab dem Moment der Codierung zu finden. Es fängt einen großen Teil der Probleme von vornherein ab und hilft Entwicklern, Fehler wie einen Rechtschreibfehler im Code zu entdecken und zu beheben. SonarQube und SonarCloud, die Sonar-Tools für die statische Analyse und Code-Überprüfung, überprüfen und analysieren den Codebestand kontinuierlich, mit SonarLint-Integration. Mit Qualitätstoren, um zu bestimmen, ob der Code die definierten Qualitäts-, Sicherheits- und Zuverlässigkeitsstandards für die Produktion erfüllt, überprüfen SonarQube und SonarCloud den Code auf Fehler, Schwachstellen, Sicherheitsprobleme und Code-Gerüche.
Durch die Kombination unseres Lösungssets mit unserer Clean-as-You-Code-Methode – einem Ansatz, der bestimmte Standards für die Aufrechterhaltung von saubigem Code bei neuem, hinzugefügtem oder bearbeitetem Code verfolgt – können Entwickler und Organisationen saubigen Code liefern und bestehenden Code organisch beheben, sodass sie sich auf neue, innovative Projekte konzentrieren können, die Geschäftswert schaffen.
Wie hilft Sonar dabei, sicherzustellen, dass der Code konform ist und Branchenstandards erfüllt?
Sonar hilft Entwicklern, sofortige und kontextualisierte Feedback zu erhalten, die Probleme hervorhebt, wo sie im Codebestand sind, innerhalb des Entwicklungsworkflows basierend auf jahrelanger Erfahrung mit Sprachanalyse. Entwickler erhalten klare Erklärungen, warum ein Problem auftritt und wie es schnell behoben werden kann, sowie zusätzliche Ressourcen für ein tieferes Lernen. Wir haben Bildung durch den gesamten Workflow, von der IDE bis zur CI/CD. Zum Beispiel hat Sonar spezifische MISRA C++ 2023-Regeln in SonarLint verfügbar, um Teams zu helfen, Code zu erstellen, der für eine eventuelle Zertifizierung bestens geeignet ist. Es bietet Codierleitfäden, die den Grund für ein markiertes Problem erklären und wie es zu beheben ist, um sicherzustellen, dass der geschriebene Code MISRA-konform ist.
Was ist Ihre Vision für die Zukunft der KI bei der Codierung?
Ich denke, dass KI weiterhin großen Wert bei der Bekämpfung von Entwickler-Burnout liefern wird. Während ich nicht glaube, dass KI jemals in der Lage sein wird, die Denkweise und den menschlichen Touch von Entwicklern zu übernehmen, denke ich, dass wir bereits in wenigen Monaten eine völlig neue Reihe von GPTs sehen werden – ganz zu schweigen von dem, was in ein paar Jahren passieren wird. Ich glaube nicht, dass Technologen oder Entwickler verschwinden werden, aber die Art und Weise, wie sie ihre Arbeit täglich ausführen, wird sich sicherlich ändern. Die Art und Weise, wie Entwickler KI verwenden, wird so einfach und alltäglich sein wie das Suchen nach etwas mit Google als Shortcut. Es gibt viel zu erforschen, was die Verwendung von KI betrifft, aber wir müssen den menschlichen Aspekt an der Spitze berücksichtigen, um die Nachteile von KI zu überprüfen. Es gibt ein transformatorisches Potenzial für die Software-Entwicklung, aber wir dürfen es nicht ohne Kontrolle laufen lassen – insbesondere wenn digitale Unternehmen heute von der Software abhängen, die sie untermauert.
Vielen Dank für das großartige Interview. Leser, die mehr erfahren möchten, sollten Sonar besuchen.












