Ein entwicklerorientierter Ansatz für Software
18. Februar 2022
0 Min. LesezeitIn den letzten Jahren hat sich die „Idee, dass jedes Unternehmen ein Technologieunternehmen ist, [einen] grundlegenden Wandel in unserer Branche“ markiert (Suzie Prince, Head of Product, DevOps, Atlassian). Die enorme Bedeutung der Entwicklung als Handwerk hat zu einem größeren Publikum und einer deutlich lauteren Stimme geführt, die die Perspektive von Entwicklern in den Mittelpunkt stellt. Dieser Wandel wurde im vergangenen Jahr in mehreren SnykCon-Vorträgen thematisiert. Sie lieferten neue Erkenntnisse dazu, wie Entwickler die Branche verändert und einen neuen, besseren Ansatz für die Softwareentwicklung geprägt haben.
Was Entwickler von ihrem Unternehmen brauchen
Tools und Unternehmenskultur wirken sich stark auf unsere Produktivität und unsere Arbeitsweise aus. Wenn wir selbstständig arbeiten können, steigen Engagement und Motivation im Team. Das DORA (DevOps Research and Assessment) State of DevOps-Forschungsprogramm hat festgestellt: „Transformative Unternehmen, die Entwicklern mehr Wahlmöglichkeiten geben, schneiden tatsächlich besser ab.“ Wir kennen unsere Bedürfnisse besser als alle anderen. Entwicklern mehr Auswahl bei den Tools und Teamstrukturen zu geben, mit denen sie täglich arbeiten, ist daher entscheidend.
In den Diskussionen der SnykCon 2021 über die Arbeitsweise und Selbstbestimmung von Entwicklern kristallisierten sich drei Grundprinzipien heraus.
Entwickler brauchen Tools, die ihnen die Arbeit erleichtern.
Entwickler müssen sich nahtlos in andere Tools und bestehende Workflows integrieren können.
Die Unternehmenskultur sollte Entwickler dazu befähigen, Verantwortung für ihre Arbeit zu übernehmen.
Tools, die den Alltag erleichtern
In ihrer SnykCon-Session mit Gareth Rushgrove (VP, Product, Snyk) erklärte Suzie Prince (Head of Product, DevOps, Atlassian) zunächst, dass Entwickler Tools wollen, die „ihnen ermöglichen, ihre tägliche Arbeit effizient und erfolgreich zu erledigen“. Oft bedeutet das, Automatisierung überall dort einzusetzen, wo es möglich ist, damit zeitaufwendige, sich wiederholende Aufgaben weniger Aufwand verursachen. Rushgrove, selbst ehemaliger Entwickler, brachte es auf den Punkt: Entwickler suchen „nach einer Möglichkeit, einfachere Dinge zu nutzen“. Bei der Vielzahl an Aufgaben, für die Entwickler verantwortlich sind, sollten wir benutzerfreundliche Tools und Strategien bevorzugen, die den Arbeitsalltag vereinfachen.
Dieses Prinzip gilt für Anwendungssicherheit genauso wie für die Entwicklung. Wenn wir Sicherheit effektiv nach links verlagern und Entwickler dazu motivieren wollen, sichere Programmierpraktiken anzuwenden, brauchen wir Tools, die ihren Anforderungen entsprechen und die Vermittlung von Sicherheitsthemen vereinfachen. Ari Kalfus (Application Security Leader, Rally Health) äußerte sich dazu in seiner SnykCon-Session über umsetzbare Sicherheitserkenntnisse. Sein Team nutzt Conftest, den Open Policy Agent, um Konfigurationsdaten zu testen. In Conftest entwickelten sie individuelle Fehlermeldungen, damit Entwickler konkrete Hinweise darauf erhalten, warum ein Test fehlgeschlagen ist. Kalfus weist sein Team an: „Erstellt die Richtlinie und ergänzt dann eine Nachricht, die Entwicklern genau erklärt, was in ihrem PR nicht stimmt und was sie tun müssen, um das Problem zu beheben.“ „Wenn Sie Entwicklern keine Anleitung geben, haben Sie weniger als die Hälfte geschafft“, um sie effektiv zu unterstützen (Kalfus).

Tools, die sich nahtlos integrieren lassen
Kein Entwicklungsteam arbeitet wie das andere. Selbst innerhalb eines Unternehmens hat jedes Team seine eigenen Methoden und ein auf seine spezifischen Aufgaben zugeschnittenes Tool-Ökosystem. Bei Entwicklern kommen vor allem Tools gut an, die sich optimal in ihre komplexen Ökosysteme einfügen.
Eine grundlegende Voraussetzung für gute Tools ist die Annahme, dass Sie parallel dazu andere Software verwenden. Wie Rushgrove erklärte: „Entwickler wollen nicht ein einziges Tool, das alles kann.“ Wenn Entwickler ihre Tools frei wählen können, müssen diese mit einer Vielzahl von Softwarelösungen kompatibel sein. Die zweite wichtige Eigenschaft ist eine niedrige Einstiegshürde. „Wenn ein anderer Unternehmensbereich lange braucht, um [das Tool] in Ihren Workflow zu integrieren, entscheiden Sie sich wahrscheinlich einfach für etwas anderes.“ (Rushgrove) Ein entwicklerorientierter Ansatz stellt die Erledigung der Arbeit in den Vordergrund – nicht den Aufwand, Formulare auszufüllen und bei anderen Abteilungen Berechtigungen und Genehmigungen einzuholen.

Führung im Dienst des Teams und Entscheidungsbefugnis
Während sich die Branche vom Elfenbeinturm-Architekten hin zu einer evolutionären Architektur entwickelt, wird der Entwicklungsprozess in kleinere Einheiten aufgeteilt. So erhalten Entwickler mehr Raum für Kreativität und Entscheidungsfreiheit. Vieles davon kam mit der Einführung agiler Methoden, bei denen „Einzelpersonen und ihre Interaktionen wichtiger sind“ als die Managementhierarchie (Prince). Rushgrove war in den frühen Tagen von DevOps als Entwickler im Operations-Bereich tätig. Als alle Unternehmen zu Technologieunternehmen wurden, beobachtete er, wie „Ingenieure, Entwickler, Operations- und Softwarefachleute schneller ins Management aufstiegen, als ihnen bewusst war, sie es erwartet oder sogar befürchtet hatten. Sie brachten die Haltung mit: ‚Ich möchte, dass mir mein Management nicht im Weg steht. Also werde ich als Manager anderen nicht im Weg stehen.‘“ Diese transformative Haltung trug dazu bei, Zugangshürden in der gesamten Branche abzubauen und ebnete Entwicklern den Weg, ihre eigenen Vorgehensweisen zu entwickeln.
Diese Managementprinzipien gelten auch für die Zusammenarbeit zwischen Security und Entwicklung. „Wenn Sie erlebt haben, dass Sicherheitstests erst Monate nach der eigentlichen Entwicklung stattfinden und gesehen haben, wie teuer das ist, sind Sie motiviert, früher anzusetzen“ (Prince). Das ist der Antrieb hinter der Verlagerung der Anwendungssicherheit nach links. Mit zunehmender Dezentralisierung und dem Bedarf an schneller, sicherer Bereitstellung wachsen auch die Zugriffsrechte und Verantwortlichkeiten der Entwicklungsteams. Um diese neue Pipeline zu schützen, muss auch die Security dem Prinzip der Dezentralisierung folgen. Wie Mike Milner (Global Director of Application Security Technology, TrendMicro) erklärte, besteht die „zentrale Aufgabe des Security-Teams darin, zu verstehen, was Entwickler erstellen und welche neuen Bedrohungen dadurch entstehen könnten“. Wenn Entwickler die tägliche Triage übernehmen, können sie sichere Programmierpraktiken etablieren. Gleichzeitig können sich Security-Fachleute darauf konzentrieren, „Entwicklungsteams Zeit zu geben, das Problem zu untersuchen, eine angemessene Lösung umzusetzen und sie tatsächlich bereitzustellen“ (Milner).

Autonome Entwicklungsteams
Beim Aufbau selbstbestimmter, autonomer Entwicklungsteams ist es wichtig, dass das Management „zuhört, was das Team erreichen möchte, und ihm dabei hilft, das Problem selbst zu lösen“ (Prince). Führungskräfte, Manager und Security-Fachleute sollen Entwicklungsteams voranbringen – nicht jedes Mal die Antwort vorgeben. Wenn Entwickler Tools wählen können, die ihren Anforderungen entsprechen, und die Befugnis erhalten, ihre Teams selbst zu steuern, entsteht eine Kultur der Eigenverantwortung. Sie hilft dem Unternehmen, auch in den kommenden Jahren produktiv und sicher zu bleiben.
Viele Tools auf dem Markt behaupten, die Bedürfnisse von Entwicklern an erste Stelle zu setzen. Doch keines macht das so gut wie Snyk. Ganz gleich, ob Sie Ihren Anwendungscode in Echtzeit absichern, nach Schwachstellen in Open-Source-Abhängigkeiten und Container-Images suchen oder Cloud-Fehlkonfigurationen finden und beheben möchten – Snyk unterstützt Sie dabei. Unsere branchenführenden Security-Informationen helfen Ihnen, schnell zu entwickeln und sicher zu bleiben. Registrieren Sie sich noch heute und sichern Sie Ihre Projekte kostenlos ab.
Starten Sie mit Capture the Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.



