Unter „Code-Governance“ versteht man die Gesamtheit der Regeln und Kontrollmechanismen eines Unternehmens für die Softwareentwicklung. Sie umfasst die Richtlinien, Prozesse und Werkzeuge, mit denen Organisationen steuern, wie Code geschrieben, überprüft, getestet, gesichert, genehmigt und gewartet wird.
Die Code-Governance hat sich von einer Reihe manueller Prozesse zu einem automatisierten, richtliniengesteuerten Verfahren weiterentwickelt. Dies ist vor allem darauf zurückzuführen, dass große, komplexe Codebasen Governance-Frameworks erfordern, die sich hinsichtlich Umfang und Komplexität skalieren lassen.
Die DevOps-Revolution der 2010er Jahre stellte Governance-Modelle infrage, die auf manuellen Genehmigungen und zentralisierter Kontrolle beruhten. Heutzutage sorgen automatisierte Systeme für die Einhaltung von Prozessen, und durch das Konzept des „Shift Left“ werden Sicherheits- und Compliance-Maßnahmen nun bereits in einer früheren Phase des Software Development Lifecycle (SDLC) durchgeführt.
Das Aufkommen der generativen KI hat eine völlig neue Ebene der Governance mit sich gebracht. Entwickler können nun mithilfe von Tools für maschinelles Lernen, die auf großen Sprachmodellen (LLMs) basieren, umfangreiche Mengen an Code generieren und so die Entwicklungsgeschwindigkeit erheblich steigern. Die Code-Governance musste sich jedoch weiterentwickeln, um der Codequalität von KI-generierten Ergebnissen sowie den damit verbundenen Sicherheitsrisiken, Fragen des geistigen Eigentums, Richtlinien zur Modellnutzung und weiteren Aspekten Rechnung zu tragen.
Unternehmen führen derzeit Governance-Richtlinien ein, in denen festgelegt ist, wann von KI generierter Code verwendet werden darf, wie er überprüft werden muss und welche Validierungsschritte vor der Bereitstellung erforderlich sind.
Erhalten Sie kuratierte Einblicke in die wichtigsten – und faszinierendsten – KI-Neuheiten. Abonnieren Sie unseren wöchentlichen Think-Newsletter. Weitere Informationen in der IBM Datenschutzerklärung.
Im Folgenden sind einige der gängigsten Komponenten der Code-Governance aufgeführt.
Code von schlechter Qualität trägt zur technischen Verschuldung bei, was wiederum die Skalierbarkeit des Tech-Stacks beeinträchtigt. Coding-Standards definieren, wie Entwickler Code schreiben und strukturieren sollten, um dies zu verhindern. Diese Standards decken Bereiche wie Namenskonventionen, Formatierung, Dokumentation, Dateistruktur und sprachspezifische Best Practices ab – kleine Probleme, die sich in einer umfangreichen Codebasis im Laufe der Zeit zu einem erheblichen Aufwand summieren.
Wenn alle Entwickler dieselben Standards befolgen, lässt sich der Code leichter bearbeiten. Ingenieure verbringen weniger Zeit damit, die Arbeit ihrer Kollegen zu entschlüsseln, und mehr Zeit damit, neue Dinge zu entwickeln.
Versionsverwaltungssysteme legen fest, wie Teams Änderungen am Quellcode verwalten. Diese Richtlinien legen Workflows für die Erstellung von Branches, das Zusammenführen von Code und das Verfassen von Commit-Meldungen fest. Versionsverwaltungssysteme können Prüfpfade erstellen, die dazu beitragen, versehentliche Überschreibungen zu verhindern, und so eine übersichtliche Änderungshistorie gewährleisten. Nun wissen die Teams, wer bestimmte Änderungen vorgenommen hat und warum.
Im Rahmen von Code-Review-Prozessen müssen Softwareänderungen von anderen Entwicklern geprüft werden, bevor sie in den Quellcode übernommen werden. Reviews dienen mehreren Zwecken, darunter der Erkennung von Fehlern, der Überprüfung von Designentscheidungen und dem Wissensaustausch innerhalb des Teams. Sorgfältig durchgeführte Überprüfungen führen zu qualitativ hochwertigerer Software.
Die Sicherheits-Governance stellt sicher, dass Software gemäß festgelegten Sicherheitsanforderungen und Compliance-Vorschriften entwickelt und gewartet wird, sodass ihre Entwicklung im Einklang mit einer übergeordneten Risikomanagement-Strategie steht. Dazu gehören Maßnahmen wie das Scannen nach Sicherheitslücken, Zugriffskontrollen, das Abhängigkeitsmanagement, die Erkennung vertraulicher Daten, Richtlinien zur sicheren Codierung sowie regelmäßige Überprüfungen. Die Sicherheits-Governance integriert Schutzmaßnahmen über den gesamten Entwicklungslebenszyklus hinweg und nicht erst am Ende.
Die Testgovernance trägt dazu bei, sicherzustellen, dass die Software alle festgelegten Standards erfüllt, bevor sie bereitgestellt wird. Aber auch das Testen hat sich „nach links verlagert“ (Shift Left). Durch die Einbettung von Testanforderungen in CI/CD-Pipelines können Teams Fehler früher erkennen und das Risiko verringern, dass Regressionen in Produktionsumgebungen gelangen.
Bei der Compliance und der Nachvollziehbarkeit geht es darum, sicherzustellen, dass die Software und der Entwicklungsprozess den gesetzlichen Anforderungen entsprechen. Dokumentierte Genehmigungen, Änderungsverläufe und Prüfprotokolle gehören zu den gängigsten Maßnahmen zur Einhaltung der Vorschriften im Zusammenhang mit Code.
Die Kontrollen im Rahmen von Continuous Integration und Continuous Delivery (CI/CD) regeln die automatisierten Prozesse, die zur Bereitstellung von Software eingesetzt werden. Diese Kontrollen legen fest, welche automatisierten Prüfungen bestanden werden müssen, bevor Code zwischen Umgebungen übertragen werden kann. Die CI/CD-Governance trägt dazu bei, sicherzustellen, dass Software, die in die Produktion gelangt, vordefinierte Standards erfüllt, und fördert gleichzeitig die Risikominderung bei allen Bereitstellungen.
„Governance as Code“ (GaC) und „Policy as Code“ (PaC) sind Ansätze, bei denen Governance und die Durchsetzung von Richtlinien direkt in Workflows eingebettet werden, indem Richtlinien, Regeln und Standards in maschinenlesbaren Code umgesetzt werden. Das Ziel besteht darin, dass jede Bereitstellung, jede Änderung an der Infrastruktur oder jede Anfrage auf Datenzugriff vorab festgelegte Kriterien erfüllt, bevor sie erfolgt. Dieser proaktive Ansatz zur Durchsetzung stützt sich auf Technologien wie Policy-Engines, Cloud-Infrastruktur und nun auch auf KI-Agenten.
Die Durchsetzung von Richtlinien ist durch Technologien wie Open Policy Agent (OPA) immer ausgefeilter geworden; diese ermöglichen es Unternehmen, Governance-Richtlinien programmgesteuert zu definieren und durchzusetzen. Anstatt sich auf Dokumentation und manuelle Genehmigungen zu verlassen, werden die Governance-Anforderungen direkt in den Code integriert, sodass sie während des gesamten Softwareentwicklungszyklus (SDLC) automatisch durchgesetzt werden können.
Ebenso automatisieren Infrastructure as Code (IaC) und Tools wie Terraform die Bereitstellung und Verwaltung der IT-Infrastruktur mithilfe eines deklarativen Sprachansatzes, bei dem Entwickler den gewünschten Endzustand festlegen, anstatt die Schritte zu beschreiben, die zu dessen Erreichung erforderlich sind. Infrastrukturdefinitionen werden üblicherweise in Formaten wie YAML und JSON dargestellt, wodurch sie sich leicht automatisieren und validieren lassen.
KI-gestützte Coding-Umgebungen können GaC, PaC und Iac ausführen. IBM Bob kann beispielsweise verwendet werden, um solche Prozesse in das SDLC einzubetten.
Beschleunigen Sie die Softwarebereitstellung mit Bob, Ihrem KI-Partner für sichere, absichtsorientierte Entwicklung.
Optimieren Sie die Softwareentwicklung mit vertrauenswürdigen KI-gestützten Tools, die den Zeitaufwand für das Schreiben von Code, Debuggen, Code-Refactoring oder Codevervollständigung minimieren und mehr Raum für Innovation schaffen.
Erfinden Sie kritische Workflows und Abläufe neu, indem Sie KI einsetzen, um Erfahrungen, Entscheidungsfindung in Echtzeit und den geschäftlichen Nutzen zu maximieren.