![Biometrische Gesichtserkennung Biometrische Gesichtserkennung](https://bilder.deutschlandfunk.de/FI/LE/_1/46/FILE_146c6136a1284231edfc13dd6519dc23/imago65459478h-gesicht-jpg-100-1920x1080.jpg)
Die Softwareentwicklung mit agilen Methoden ist im Mainstream angekommen. Darin waren sich viele Redner auf der Softwarekonferenz OOP in München einig. Nur so lässt sich die Kreativität der Entwickler freisetzen, meint zum Beispiel Ward Cunningham:
"Menschen brauchen die Freiheit, notwendige Abläufe zu definieren. Agile Entwicklung ist das Gegenstück zu starren Abläufen, die uns immer vorgeschlagen wurden. Stellt man diese ridige Welt der agilen gegenüber, dann endet es irgendwo in der Mitte: Du musst Abläufe so definieren dass sie für dich passen."
Qualität erhöhen als Ziel
Cunningham ist einer der beiden Erfinder des Extreme Programming, das die Grundlage für agiles Programmieren bildet. Dabei wird zu zweit am Programmcode gearbeitet, um diesen schon während der Entstehung zu überprüfen. Teilweise verändert sich sogar die Architektur der Software noch im Prozess der Entwicklung. Außerdem erhalten Teams mehr Autonomie in Bezug auf die Art und Weise, wie sie ihre Arbeit organisieren. Das soll die Qualität erhöhen, erklärt Frank Buschmann von der Siemens AG.
"Agilität legt sehr stark den Fokus auf Qualität und Vorhersehbarkeit. Das heißt, wir achten auf die Qualität der Software bezogen auf ihren Einsatzzweck. Wir achten auch darauf, dass das Projektteam und seine Partner zu jedem Zeitpunkt wissen wo das Projekt steht: Was kann es und was kann es nicht, welche Funktionalität in welche Qualität kann ich erwarten. Das ist anders als beim klassischen Entwicklungsvorgehen. Der zweite wesentliche Vorteil ist der Umgang mit Veränderung. Agilität nimmt explizit auf, dass ein System während seiner Entwicklungs- und Betriebszeit Änderungen unterliegt. Am wichtigsten ist für uns aber auch dass Agilität die Wertschätzung gegenüber allen Beteiligten eines Projekts sehr, sehr hochhält."
Kommunikation auf Augenhöhe
Es geht also um mehr Qualität von Software, darum diese schneller anpassbar zu machen, aber auch darum, Kommunikation auf Augenhöhe zwischen Softwareingenieuren und Auftraggebern zu erreichen. Waren es in den ersten Jahren zu Beginn dieses Jahrtausends eher kleinere Unternehmen, die sich auf diesen Prozess eingelassen haben, haben sich agile Methoden mittlerweile durchgesetzt, beobachtet Henning Wolf. Er ist Geschäftsführer der it-agile GmbH aus Hamburg und hat als Trainer und als Berater Projekte begleitet.
"Ich würde schon meinen, dass wir mittlerweile im Mainstream angekommen sind mit agilen Methoden, insbesondere Scrum hat sich sehr stark verbreitet, aber auch Kanban was vielleicht aus dem Lean-Bereich kommt, und immer mehr Unternehmen setzen es ein denen man Agilität per se erst einmal nicht zutrauen würde, immer mehr Versicherungen und Banken. Das ist für mich ein sicheres Indiz dass es angekommen ist."
Frank Buschmann bestätigt das:
"Das gilt auch für große Unternehmen wie die Siemens AG. Wir entwickeln die meisten unserer Systeme mit agilen Methoden."
Sicherheit zu wenig beachtet
Eines der Themen, das vor allem größere Unternehmen lange abgehalten hat war die Frage, ob diese Systeme auch sicher sind. Das werde bisher in Projekten teilweise noch zu wenig beachtet, sagt Stephan Kaps, Geschäftsführer des Bonner Beratungsunternehmens Kitenco:
"Das liegt daran, dass dieses Bewusstsein dafür, dass man sich um Sicherheitsprüfungen selber kümmern muss und nicht kurz vor Produktionsbeginn einen Penetrationstester in die Hand drücken kann, dass man sich schon während der Entwicklung um Sicherheitsfragen kümmern muss, dieses Bewusstsein ist glaube ich noch nicht überall so weit verbreitet."
Gemeinsam mit einem Sicherheitsexperten hat Kaps ein Regelwerk aufgestellt, wie Sicherheitswerkzeuge in den Prozess der Softwareentwicklung mit agilen Methoden integriert werden können. Daraus aber abzuleiten, dass mit agilen Methoden entwickelte Software weniger sicher ist als mit konventionellen Methoden wäre aber falsch. Methoden wie Programmieren zu zweit, die Aufteilung in kleine, testbare Einheiten und die genauere Definition der gewünschten Ergebnisse sorgen dafür, dass Software eher das tut, was sie tun sollte: funktionieren.