Über unsMediaKontaktImpressum
[Sponsored Post] 31. Juli 2018

Software-Industrialisierung 2.0: Qualität und Produktivität statt Nearshore und Farshore.

Aktuell gibt es einige Herausforderungen in der Softwareentwicklung: Die Nachfrage nach IT ist sehr hoch. Die Welt scheint mehr IT-Ressourcen zu benötigen, als sie aktuell zu produzieren vermag. Wir sprachen mit Michael Rohleder von der QAware GmbH über steigende Anforderungen in der Softwareentwicklung.

Informatik Aktuell: Schnellere Systeme mit besseren Antwortzeiten und hoch skalierbarem Lastverhalten, Premium User Experience, immer höhere Anforderungen an die Sicherheit, kürzere Releasezyklen (Continuous Delivery, schnellere Time-To-Market), DevOps. Wie kann man Software qualitativ hochwertig und zugleich kostengünstig entwickeln?

Michael Rohleder: Aus meiner Sicht ist dazu eine neue Art der Software-Industrialisierung notwendig, ich nenne sie Software-Industrialisierung 2.0. Der erste Ansatz begann vor etwa zehn Jahren und zielte vor allem auf die Verlagerung von Arbeit in Billiglohnländer (Nearshore/ Farshore) ab. Er ist aus meiner Sicht gescheitert, zumindest im Projektgeschäft: Die aufgebauten Qualitätsschulden stehen nicht im Verhältnis zur Einsparung von Erstentwicklungskosten. Außerdem ist agile Entwicklung mit diesem Ansatz nur sehr eingeschränkt möglich. Wir brauchen also eine neue Denke: Die Produktivität der On-site-Entwicklungsteams drastisch steigern und konsequent den Aufbau von Qualitätsschulden vermeiden. Qualität macht agil!

Informatik Aktuell: Wie wirken sich aufgebaute Qualitätsschulden im Software-Projekt aus?

Michael Rohleder: Qualitätsschulden sind zukünftige Kosten, die durch falsche Kompromisse bei der Qualität entstehen. Sie wirken sich negativ auf die Produktivität aus und sorgen somit für Mehrkosten. So richtig spürt man das leider erst nach einigen Monaten. Die Feature-Entwicklung verlangsamt sich, Fehler häufen sich. Damit sinkt die Motivation im Team und mit ihr die Produktivität. Entwickler wollen stolz sein auf die Software, die sie erschaffen. 

Informatik Aktuell: Warum werden Qualitätsschulden bei Management-Entscheidungen bisher so wenig berücksichtigt?

Michael Rohleder: Es fehlt aus meiner Sicht an Transparenz, denn Qualitätsschulden sind nicht nur mit einem Blick auf einzelne Code-Zeilen zu sehen: Bestehen Architekturverletzungen? Wie sicher ist die Software? Wie verhält sich die Anwendung unter Last? All diese Fragen können oftmals nicht ausreichend beantwortet werden oder erst sehr spät, wenn die Software bereits eine kritische Größe erreicht hat. Die Beseitigung der Qualitätsschulden wird dann teuer und das Management hat es schwer, noch gegenzusteuern.

Zudem steigen die Qualitätsschulden selbst dann, wenn nichts an der Software verändert wird. Denn Open Source-Komponenten können veralten und Sicherheitsprobleme werden oftmals erst im Laufe der Zeit aufgedeckt. Wir bezeichnen das als technische Inflation. Daher sollte man Open Source-Komponenten regelmäßig auf den Prüfstand stellen, um zukunftsfähig und sicher zu bleiben. 

Informatik Aktuell: Was ist aus Ihrer Sicht zu tun?

Michael Rohleder: Entwicklungsteams benötigen ein hohes Qualitätsbewusstsein, das den Aufbau von Qualitätsschulden verhindert. In unseren Projekten fördern wir das über die Verankerung dieses Qualitätsbewusstseins im Projektvorgehen, z. B. über einen Qualitäts-Backlog mit ca. 20 Prozent der Sprint-Kapazität, dedizierte Härtungs-Sprints, Bug-Hunting-Days und einer umfassenden Definition-of-Done, zu der auch ein Qualitätskontrakt gehört. Er definiert das verbindliche Qualitätsniveau für die Software, z. B. Regeln für unerlaubte Code-Anomalien, Mindestwerte für Testüberdeckung, Architekturtreue, Sicherheitsüberprüfungen. Daneben sollte die Produktqualität für alle Projektbeteiligten sichtbar sein – auch dem Management. Das trägt maßgeblich zur Qualität der Software und zur Produktivität des Teams bei. Wir messen und visualisieren die Produktqualität automatisch und kontinuierlich mit unserem QAradiator, einem Großbildschirm auf der Projektfläche, der die Kennzahlen und ihren zeitlichen Verlauf über die letzten Wochen visualisiert. Außerdem hat jedes Teammitglied die QAtorch, die per USB mit dem Notebook verbunden ist und über verschiedenfarbige LEDs direktes Feedback zum Qualitätsstatus gibt.

Informatik Aktuell: Sie sagen, Software-Industrialisierung zielt neben der Vermeidung von Qualitätsschulden auf die Steigerung der Produktivität. Wie lässt sich die Produktivität steigern?

Michael Rohleder: Dazu ist es wichtig zu erklären, was wir unter Produktivität verstehen. Es geht nicht nur darum, mehr Code zu produzieren. Wir müssen vielmehr das Problem der Nutzerinnen und Nutzer verstehen und mit Kreativität eine fachliche und technische Lösung dafür finden. Diese formulieren wir mit Quellcode und machen sie als Softwarefunktion nützlich. Produktivität definiert sich demnach über die Anzahl der nützlichen Softwarefunktionen pro Zeit (Features). Wie nützlich ein Feature ist, wird über den erzielten Mehrwert (Business Value) bestimmt. Die Produktivität lässt sich steigern, indem wir die Arbeitszeit reduzieren, die pro Menge an Business Value benötigt wird. Dies hat zwei Ausprägungen: Erstens, das Team schlichtweg schneller zu machen und zweitens, auf ein möglichst kleines Kosten-Nutzen-Verhältnis zu fokussieren. 

Informatik Aktuell: Wie kann so etwas konkret umgesetzt werden?

Michael Rohleder: Eine Möglichkeit besteht darin, den Automatisierungsgrad von arbeitsintensiven und wiederkehrenden Arbeitsschritten zu steigern. Sobald wir merken, dass sich Arbeiten wiederholen, entwickeln wir Werkzeuge, die uns diese abnehmen. Denn Entwickler und Entwicklerinnen, die den Kopf nicht frei haben für kreative Gedanken und genervt sind von stereotyper Arbeit, sind auch nicht produktiv. So setzen wir mit dem Konzept von Continuous Deployment auf vollautomatisiertes Ausliefern der Software bis in die Produktion, nachdem die Software zuvor automatisch gebaut, integriert und getestet wurde. Dazu braucht es eine Werkzeugkette im Projekt, die dies vollständig unterstützt. Damit verkürzen sich Releasezyklen und die Zusammenarbeit zwischen Entwicklung und Betrieb verbessert sich. Das sehen wir als einen ersten Schritt in Richtung einer erfolgreichen Umsetzung von DevOps im Unternehmen. Übrigens beschränken wir uns bei Continuous Deployment nicht nur auf Code: Dokumentationen schreiben wir mit AsciiDoc und lassen die Ergebnisdokumente automatisiert mit Gradle im benötigten Zielformat, z. B. PDF oder Atlassian Confluence bauen. Wir experimentieren auch damit, die Dokumente automatisiert auf gutes und lesbares Deutsch zu prüfen.

Informatik Aktuell: Es lässt sich jedoch nicht jede Softwarefunktion automatisieren. Und manchmal spricht das Kosten-Nutzen-Verhältnis für eine manuelle Entwicklung. Wie lässt sich in diesem Fall die Produktivität steigern?

Michael Rohleder: Die konsequente Verfolgung des Software-OEM-Ansatzes erhöht die Entwicklungsgeschwindigkeit. Das bedeutet: Software mit geringer Fertigungstiefe auf Basis von Open Source-Komponenten entwickeln. Für viele gängige Programmiersprachen gibt es ein reiches und weitgehend reifes Open Source-Ökosystem. In unseren Projekten setzen wir oft mehr als 50 Open Source-Bibliotheken ein. Die Fertigungstiefe liegt dann meist deutlich unter 10 Prozent. Dies kann die Produktivität massiv erhöhen, erfordert allerdings spezielle Fertigkeiten in Auswahl, Integration und Pflege von Open Source-Bausteinen. Die Kernfragen lauten: Lohnt sich der Einsatz? Ist die Lizenz geeignet für den Einsatz im Projekt? Welche Sicherheitsprobleme gibt es? Wie aktiv ist die Community für den Baustein? Bei der Bewertung hilft uns das QAware-Open-Source-Radar. Es dokumentiert unsere Einschätzung zu Reife und Innovationsgrad von Open Source-Komponenten.

Informatik Aktuell: Die Erstellung von Werkzeugen zur Automatisierung und der richtige Einsatz von Software-OEM kosten Zeit und Geld. Wie lässt sich dort die Geschwindigkeit hochhalten?

Michael Rohleder: Ein wichtiger Ansatzpunkt ist die Produktivität eines jeden einzelnen Teammitglieds. Dazu trägt eine optimale Arbeitsumgebung bei, mit schneller Hardware, großen oder mehreren Bildschirmen und den richtigen Räumlichkeiten. Wir setzen auf kleine Büros statt Großraumbüros, in denen das Risiko der Ablenkung und Unterbrechungen steigt. Wir sorgen für Rückzugsmöglichkeiten für konzentriertes Arbeiten und bieten große Arbeitsflächen, die als Treffpunkt zum Austausch von Ideen dienen und Freiraum für Kreativität geben. Für verteiltes Arbeiten an verschiedenen Standorten und Homeoffice liefern wir die notwendige Infrastruktur. Dazu gehören Videokonferenzanlagen und digitale Whiteboards. Ganz neu im Einsatz haben wir einen Telepräsenz-Roboter. Dieser besteht aus einem Monitor auf einem fahrbaren Unterbau, der remote durch eine Person steuerbar ist. Die Idee ist dabei, näher am Team vor Ort zu sein, z. B. in Meetings oder einfach nur, um bei den Kollegen im Büro vorbeizuschauen.

Informatik Aktuell: Das heißt, Softwareentwickler und Softwareentwicklerinnen müssen kreativ, erfindungsreich und gleichzeitig qualitätsbewusst sein. Das sind hohe Anforderungen. Wie kann man die erfüllen?

Michael Rohleder: Die kontinuierliche Ausbildung der Mitarbeitenden ist ein Muss, denn die Halbwertszeit von technologischem Spezialwissen ist kurz. Es gibt aber auch ewig wahres Wissen, das sich auf die Produktivität und Softwarequalität auswirkt, wie z. B. gutes Programmieren, IT-Beratung, Softwarearchitektur und Projektmanagement. Für beide Arten an Wissen benötigt es ein Ausbildungsprogramm, um den Qualitätsanspruch dauerhaft erfüllen zu können. Das kostet Zeit und Geld. Wir rechnen mit 6 Prozent unseres Umsatzes. Das ist ein relevanter Invest, der sich aber mittelfristig auszahlt.

Am Ende des Tages wirkt sich Überhitzung negativ auf die Produktivität aus.

Informatik Aktuell: Wie kann ein solches Ausbildungsprogramm im Unternehmen wirksam etabliert werden?

Michael Rohleder: Ein wesentlicher Bestandteil der Ausbildung sollte in der täglichen Projektarbeit erfolgen. Hier braucht es Coaching-Modelle im Projekt. Wir haben beispielsweise das Prinzip "Alter Hase und junges Reh" etabliert: Junge und noch unerfahrene Mitarbeitende werden durch erfahrene Kolleginnen und Kollegen betreut, die mit Rat und Tat bei allen fachlichen Problemen zur Seite stehen. Sie helfen bei kniffligen Lösungen, geben Feedback zu Arbeitsergebnissen und vernetzen die neuen Mitarbeitenden im Projekt. Als weiteren Ausbildungsbaustein wenden wir das Konzept des "Beifahrers" an. Der neue Mitarbeitende sitzt für mehrere Stunden neben dem erfahrenen Mitarbeitenden und beobachtet und lernt dessen Arbeitsweise. Oft sind es Kleinigkeiten, die im Arbeitsalltag einen deutlichen Effizienzgewinn ausmachen, z. B. die richtige Verwendung der Entwicklungsumgebung oder der Produktivitätswerkzeuge. Daneben ist kontinuierliches Feedback zu den Arbeitsergebnissen, insbesondere zum Code, ein wichtiger Erfolgsfaktor für das Lernen im Projekt. Dafür haben wir Peer Reviews etabliert, also kontinuierliche Feedbacks anderer Kolleginnen und Kollegen zum geschriebenen Code. 

Informatik Aktuell: Wie gehen Sie mit der angesprochenen kurzen Halbwertszeit von technologischem Spezialwissen um?

Michael Rohleder: Spezialwissen vermitteln wir über QAtalks. Dies sind Vorträge zu einem frei wählbaren Thema, gehalten von unseren Mitarbeitenden oder Gastreferenten. Daneben veranstalten wir Codefeste, bei denen gemeinsam einen halben Tag lang bei Pizza und Club Mate mit einer bestimmten Technologie programmiert wird. Wir experimentieren dabei auch mit neuen Formaten, z. B. hatten wir ein Code-Dojo zum Thema Kotlin. Dabei gibt es eine Aufgabe, die jeweils durch ein Zweiergespann bearbeitet wird. Einer ist dabei der Fahrer (programmiert), der andere ist der Beifahrer (gibt Hinweise und Ratschläge). Die restlichen Teilnehmerinnen und Teilnehmer beobachten das Vorgehen der beiden per Beamer-Projektion. Die Aufgabe wird dabei in "Baby Steps" (vielen kleinen Schritten) bearbeitet und der Code ständig optimiert. Nach kurzer Zeit übernimmt ein neues Zweiergespann die Bearbeitung der Aufgabe, bis sie vollständig gelöst ist. Ein Code-Dojo ist ein wirksames Format, um schnell erste Erfahrungen mit neuen Technologien zu sammeln und in der Gruppe voneinander zu lernen.

Informatik Aktuell: Nun haben wir viel über die technische Seite der Softwareentwicklung geredet. Zusammengefasst: Worauf wird es zukünftig in Software-Projekten ankommen?

Michael Rohleder: Wir müssen Software immer schneller liefern. Damit steigt auch der Druck auf die Teams, ihre Produktivität zu optimieren. Bei allem Optimierungsdrang darf der Blick auf die Menschen nicht verloren gehen. Das Risiko von Überhitzung im Team steigt. Dafür braucht es einen Gegenpol, denn am Ende des Tages wirkt sich Überhitzung negativ auf die Produktivität aus. Hier ist achtsames Projektmanagement gefragt, dass zum einen für Leistungsspitzen im Team sorgt – denn das treibt viele Menschen an – und zum anderen Zeit zum Durchschnaufen bietet.

Informatik Aktuell: Herr Rohleder, vielen Dank für das Gespräch!

Im Interview

Michael Rohleder

Michael Rohleder hat als Projektleiter für agile IT-Projekte bei BMW und Allianz Deutschland gearbeitet. Seine Erfahrungen hat er in das QAware-Vorgehensmodell für agile Projekte einfließen lassen und es damit maßgeblich geprägt.
>> Weiterlesen
Das könnte Sie auch interessieren
Kommentare (0)

Neuen Kommentar schreiben