Interviews

Peter McKee, Leiter der Developer-Relations bei Sonar – Interview-Serie

mm
Unite.AI zu deinen bevorzugten Quellen auf Google hinzufügen

Peter McKee ist der Leiter der Developer-Relations 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, sodass alle Code für Entwicklung und Produktion geeignet sind. Durch die Anwendung von Sonars Clean-as-You-Code-Methode minimieren Organisationen Risiken, reduzieren technische Schulden und ziehen mehr Wert 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 Programmieren hingezogen. Als mein Vater ein Stahlunternehmen in Virginia leitete und ihre Beratungsgruppe verloren hatte, lud er mich ein, für ihn zu arbeiten und Systeme zu entwickeln. Ich wusste ehrlich gesagt nicht 100%ig, was ich tat, aber ich lernte aus Büchern und durch die Arbeit auf der Stelle und wurde selbstständig. Das hat mein Interesse an Codierung und Computern weiter gefördert und mein Interesse an Informatik festgelegt.

Können Sie erklären, was saubiger Code ist und warum er so wichtig ist?

Es wird schon seit Jahren gesagt, dass Software die Welt erobern wird, und ich denke, wir sind jetzt an dem Punkt, an dem dies offiziell ist – die Welt basiert auf Software und jedes Unternehmen ist effektiv ein Software-Unternehmen. Die Grundlage für gute Software ist qualitativ guter Code, da Code der Kern aller Software ist und ihr Verhalten und ihre Leistung bestimmt. Deshalb ist saubiger Code – Code, der konsistent, intentional, anpassbar und verantwortungsvoll ist – so wichtig. Saubiger Code ist leicht zu verstehen und zu ändern, läuft reibungslos bei der Ausführung und enthält keine technischen Schulden, was ihn für den Zweck geeignet macht. Saubiger Code ist der Standard, den Organisationen annehmen sollten, um sicherzustellen, dass ihre Software weiterhin ein Vermögen – und kein Risiko – ist und der Schlüsselfaktor für den heutigen Geschäftserfolg ist.

Saubiger Code bietet Teams und Organisationen aller Größen und Reifegrade Vorteile und erhöht den Wert der Software. Einige spezifische Vorteile sind, dass er:

  • Entwicklungskenntnisse verbessert – Entwickler können Probleme erkennen, verstehen und lösen, während sie coden, und gleichzeitig Best Practices lernen
  • Effizienz und Produktivität steigert – Durch die Reduzierung von ständiger Nachbearbeitung und langen Feedback-Zyklen wird die Produktivität gesteigert
  • Reputation und Geschäftsrisiko reduziert – Saubiger Code stellt sicher, dass es weniger Sicherheitsrisiken gibt, indem Teams proaktiv Probleme angehen, bevor sie in die Produktion gelangen
  • Technische Schulden reduziert – Saubiger Code behebt allmählich die Schulden der Codebasis, ohne dass eine umfassende Überholung und Störung erforderlich ist
  • Software-Entwicklungs-Geschwindigkeit erhöht – Saubiger Code-Standard und optimierte Flüsse verbessern die DevOps-Geschwindigkeit und fördern eine schnellere Markteinführung

Können Sie die Bedeutung von Konsistenz und Struktur in Code erörtern und einige Beispiele für konsistenten und saubigen Code nennen?

Konsistente Code-Qualität ist etwas, das jeder Manager oder technische Leiter anstrebt. Konsistenz ist entscheidend, wenn es um Code-Qualität geht, da Konsistenz zu Vorhersehbarkeit führt. Er wird in einer einheitlichen und konventionellen Weise geschrieben – alle Code sieht ähnlich aus und folgt einem regelmäßigen Muster, auch bei mehreren Mitwirkenden zu verschiedenen Zeiten. Konsistenter Code ist formatiert, konventionell und identifizierbar. Wenn konsistente Codierungsstandards angenommen werden, werden Entwickler effizienter und können ihre Liefererwartungen mit Geschwindigkeit und Präzision erfüllen.

Können Sie die Bedeutung von Code erörtern, der unerwartete Bedingungen handhaben kann, und warum dies nicht übersehen werden sollte?

Entwickler versuchen ständig, unerwartete Vorkommnisse während des Design- und Entwicklungsprozesses vorherzusehen und vorzubereiten, aber dies kann nicht in jedem Fall verhindert werden. Unerwartete Zustände können aufgrund unbeabsichtigter Fehlbedienung oder absichtlich ausgelöster Angriffe auftreten. Diese unerwarteten Zustände können unbeabsichtigt Sicherheitslücken einführen, die Angreifer ausnutzen können. Deshalb sollten Entwickler ständig daran arbeiten, die Qualität und Stabilität ihres Codes zu verbessern und auf unerwartete Bedingungen zu testen. Durch die Anwendung eines Clean-as-You-Code-Ansatzes können Teams neue Funktionen besser beschleunigen, unnötige Nachbearbeitungskosten 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 von Generative KI für die Code-Generierung erörtern?

Die Integration von KI in den Software-Entwicklungs-Lebenszyklus hat Vorteile, wie z.B. die Möglichkeit, Entwickler effizienter zu arbeiten. Tatsächlich fand eine GitHub-Studie heraus, dass Entwickler Aufgaben mit KI über 50% schneller erledigen können. GenAI kann auch Code schneller generieren und Entwicklern die Last von mehr monotonen, routinemäßigen Aufgaben – wie Dokumentation oder Code-Snippets – abnehmen, sodass sie sich auf höherwertige, lohnenswerte Arbeit konzentrieren können, um komplexere 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 mögliche Fallstricke und Risiken von generiertem Code?

 Während KI Entwickler Zeit für höherwertige Projekte und Produktivität freisetzen kann, geht dies nicht ohne Risiken einher. Dies ist der Grund, warum die Nachfrage nach Entwicklern im Zeitalter von KI nicht verschwinden wird. Da GenAI-Tools viel Code schnell generieren können, besteht das Potenzial für Fehler. Hier sind einige spezifische Fallstricke:

  • Verantwortlichkeit – KI-generierter Code verringert die Möglichkeit, Menschen für den erstellten Code verantwortlich zu machen, was die Lösung von Problemen erschwert.
  • Schwachstellen – Da es im Wesentlichen auf Crowdsourcing-Informationen basiert, gibt es keine Garantie, dass der produzierte Code sicher oder sauber ist. Es können sogar Fehler oder Sicherheitsprobleme vorhanden sein, die das Geschäft gefährden können.
  • Qualität – KI überprüft nicht die Qualität, und nur weil es von KI generiert wird, bedeutet dies nicht, dass es effizient oder von hoher Qualität ist.
  • Kein Kontext – Das Fehlen des menschlichen Elements bedeutet natürlich, dass der Kontext eines Problems oder Projekts verloren geht. Der von KI generierte Code muss überprüft werden, um sicherzustellen, dass er die Aufgabe 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 Entwicklung und Produktion geeignet ist und den erforderlichen Standards ihrer Organisation entspricht.

Was sind einige andere Variablen, die bei der Eignung von Code für die Produktion berücksichtigt werden sollten?

 Entwickler, die Code schreiben, der den Grundsätzen von saubigem Code folgt, können sicher sein, dass ihr Code für Entwicklung und Produktion geeignet ist, was bedeutet, dass der Code bestimmte Merkmale aufweist:

  • Konsistent – Der Code sollte konsistent sein und einem gemeinsamen Stil folgen. Selbst wenn der Code von mehreren 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.
  • Anpassbar – Anpassbarer Code ist segmentiert und organisiert, um es einfacher zu machen, ihn zu verwalten und die Beziehungen zwischen jedem Codezeile zu sehen. Dies macht den Code für eine einfache und sichere Evolution strukturiert.
  • Verantwortungsvoll – Der Code und seine Entwickler sollten sich ihrer ethischen Verpflichtungen im Hinblick auf Daten und deren möglichen Einfluss auf gesellschaftliche Normen bewusst sein. Der Code sollte letztendlich kein Risiko darstellen, dass er unbeabsichtigt Dritte schädigt.

Können Sie einige der verschiedenen Angebote von Sonar erörtern und wie es Entwicklern hilft, verantwortungsvollen, sicheren, hochwertigen Code schnell und systematisch zu erstellen?

 Durch unsere branchenführenden Analyse-Tools identifiziert Sonar Codierungsprobleme umfassend und empfiehlt Lösungen mit kurzen Feedback-Schleifen, während es den Entwickler im Kontext ausbildet, letztendlich ermöglicht es Organisationen, 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 codingspezifische und sprachspezifische Regeln unterstützt.

SonarLint, eine IDE-Erweiterung, bietet die erste Überprüfung, um Probleme in Echtzeit zu finden, sobald der Code geschrieben wird. Es findet einen großen Teil der Probleme von vorneherein und hilft Entwicklern, Fehler wie einen Rechtschreibfehler im Code zu entdecken und zu beheben. SonarQube und SonarCloud, die statischen Analyse- und Code-Review-Tools von Sonar, überprüfen und analysieren den Code kontinuierlich, mit SonarLint-Integration. Mit Qualitäts-Toren, 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, Sicherheits-Hotspots und Code-Gerüche.

Unser Lösungssatz, kombiniert mit unserer Clean-as-You-Code-Methode – einem Ansatz, der festgelegte Standards für die Aufrechterhaltung von saubigem Code verfolgt – ermöglicht es Entwicklern und Organisationen, saubigen Code zu liefern und bestehenden Code organisch zu beheben, sodass sie sich auf neue, innovative Projekte konzentrieren können, die Geschäftswert schaffen

Wie unterstützt Sonar die Einhaltung von Code und die Erfüllung von Branchenstandards?

Sonar hilft Entwicklern, sofortige und kontextbezogene Feedback zu erhalten, indem es Probleme hervorhebt, wo sie im Code sind, innerhalb des Entwicklungs-Workflows, basierend auf jahrelanger Erfahrung mit Sprachanalysatoren. 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 aufgebaut, die den gesamten Workflow umfasst, von der IDE bis zur CI/CD. Zum Beispiel hat Sonar spezifische MISRA C++ 2023-Regeln in SonarLint, um Teams zu helfen, Code zu erstellen, der für eine eventuelle Zertifizierung am besten geeignet ist. Es bietet Codierungsleitfä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 in 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 einigen Monaten eine völlig neue Reihe von GPTs sehen werden – ganz zu schweigen von dem, was in einigen 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 eine Google-Suche als Shortcut. Es gibt noch viel zu entdecken über die Verwendung von KI, aber wir müssen immer noch den menschlichen Faktor im Vordergrund betrachten, 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.

Antoine ist ein visionärer Leiter und Gründungspartner von Unite.AI, getrieben von einer unerschütterlichen Leidenschaft für die Gestaltung und Förderung der Zukunft von KI und Robotik. Als Serienunternehmer glaubt er, dass KI für die Gesellschaft so disruptiv sein wird wie Elektrizität, und er wird oft dabei erwischt, wie er über das Potenzial disruptiver Technologien und AGI schwärmt.

Als Futurist ist er darauf bedacht, zu erforschen, wie diese Innovationen unsere Welt prägen werden. Darüber hinaus ist er der Gründer von Securities.io, einer Plattform, die sich auf Investitionen in bahnbrechende Technologien konzentriert, die die Zukunft neu definieren und ganze Branchen umgestalten.