Buchbesprechung: Modernes Software Engineering​

Dave Farley beleuchtet Historie sowie Praxis des Software Engineering und diskutiert die Konflikte zwischen Softwarearchitektur und Programmierung.​

In Pocket speichern vorlesen Druckansicht 4 Kommentare lesen
Buchrezension: Arm Assembly Internals and Reverse Engineering

(Bild: Gorodenkoff/Shutterstock.com)

Lesezeit: 5 Min.
Von
  • Tam Hanna
Inhaltsverzeichnis

Dave Farley
Modernes Software Engineering
Bessere Software schneller und effektiver entwickeln
mitp, September 2023
286 Seiten, ab 34,99 Euro (Print und E-Book)
ISBN: 978-3-7475-0635-6

Der Begriff "Software Engineering" impliziert einen ingenieurwissenschaftlichen Ansatz beim Entwickeln von Software. In der Praxis werde diese Vorgehensweise jedoch vielfach missverstanden, ist Dave Farley überzeugt. Er gilt als Wegbereiter für Continuous Delivery und die darauf aufbauende DevOps-Bewegung. In seinem neuen Buch "Modernes Software Engineering" will er mit Vorurteilen aufräumen und aufzeigen, wie sich bessere Software schneller und effektiver entwickeln lässt.

Im ersten Teil des nun bei mitp auch auf Deutsch erschienenen Werkes reflektiert der Autor über die Konflikte zwischen Softwarearchitektur und Programmierung im Alltag. Die mit aufwendigen mathematischen Modellen beschäftigten Softwarearchitektinnen und -architekten gelten Entwicklerinnen und Entwicklern häufig als Bremsklotz, der "einfach" funktionierendem Code nur im Wege stehe.

Farley nähert sich diesem Konflikt zunächst mit einem Rückblick auf die Entstehungsgeschichte des Software Engineering und geht dabei auch auf dessen Abgrenzung gegenüber den klassischen Ingenieurswissenschaften ein – gemäß dem weitverbreiteten Leitsatz: "Softwareentwicklung ist kein Brückenbau". Für die alltägliche Softwareentwicklung ungeeignete Vorgehensweisen wie die "formale Verifikation" führt Farley als Denkansätze an, die den Lesern eine Bewertung eigener oder nach dem Erscheinen des Werkes neu aufgekommener Methoden der Softwarearchitektur ermöglichen.

In den folgenden Kapiteln seines Buches bemüht sich der Autor darum, Softwarearchitektinnen und -architekten als "professionelle Lerner" darzustellen, die durch permanente Bewertung und Analyse der ihnen zur Verfügung stehenden Prozesse und der erwirtschafteten Ergebnisse ein möglichst optimales Resultat für ihre Kunden und Anwenderinnen anstreben. Farley klammert dabei auch das Embedded-Segment nicht aus, das lange als ein Bereich galt, in dem nur sehr wenig Veränderung stattfindet.

(Bild: mitp)

Naheliegenderweise spricht der Autor über etablierte Methoden wie die Feedbackschleifen. Für den Rezensenten überraschender – in Zeiten standardisierter Kommunikationsprotokolle und Microservice-getriebener Architekturen –, aber nicht weniger wichtig, sind Farleys Gedanken zum Unterschied zwischen inkrementeller und iterativer Entwicklung: Wer in der Welt von TDD (Test-driven Design) & Co. gefangen ist, bedenkt in vielen Fällen nicht, dass Modularisierung gegenüber klassischen kontinuierlichen Verbesserungsprozessen in manchen Situationen erhebliche Vorteile bringt.

An dieser Stelle muss der Rezensent auch die über das gesamte Buch verteilten "grauen Kästen" loben, in denen der Autor Anekdoten aus der historischen Entwicklung des Software Engineering präsentiert. Diese erfreuen keineswegs nur Trivia-Anhänger, sondern helfen allen Leserinnen und Lesern, die Konzepte historisch einzuordnen.

Im achten Kapitel folgen wertvolle Überlegungen zur Rolle des Experiments in der Ingenieurwissenschaft. Farley zeigt hier auf, dass sich experimentelles Vorgehen eignet, um kognitiven Fehlleistungen, wie sie etwa das Baader-Meinhof-Phänomen (Frequenzillusion) beschreibt, ein formalisiertes Konzept entgegenzustellen. Denn auch in der Softwareentwicklung steige das Risiko kognitiver Fehlleistungen, einhergehend mit den wachsenden Anforderungen, die Anwenderinnen und Anwender an neue Produkte stellen. Problem des Menschen ist seit jeher seine "eingeschränkte Arbeitsspeichergröße": Je mehr Variablen Entwickler und Entwicklerinnen gleichzeitig im Kopf behalten müssen, desto höher die Wahrscheinlichkeit für das Auftreten kognitiver Fehlleistungen.

Als Gegenmaßnahme empfiehlt Farley die Modularisierung des Codes. Ein Ansatz, der sich in der Praxis – insbesondere bei falscher Anwendung – häufig eher nachteilig als vorteilhaft auf die Softwarearchitektur im Ganzen auswirkt. An dieser Stelle führt der Autor einige "einzigartige" Denkansätze an, die sich auf persönliche Erfahrungen aus seiner Tätigkeit im Bereich der Software für High-Frequency Trading stützen. Erstmals im Buch präsentiert er dazu auch Code Snippets, die zumindest für all jene verständlich sein sollten, die schon mit einer objektorientierten Programmiersprache gearbeitet haben oder zumindest über OOP-Grundkenntnisse verfügen.

In den nachfolgenden "Value Added"-Kapiteln finden sich unter anderem noch Überlegungen zum intelligenten Aufbau von APIs sowie eine Besprechung der Software-Koppelung. Aus Sicht des Rezensenten fehlt an dieser Stelle aber ein Hinweis auf den von Ted Faison in dessen Buch Event-Based Programming vermittelten rigide mathematischen Ansatz der Kopplungsmathematik. Andererseits bleibt das Werk dadurch aber auch für mathematisch weniger vorgebildete Softwarearchitekten noch einfach lesbar.

Abschließend gibt Farley noch einen Überblick zur "Rolle" des Software Engineers und geht auch auf Anknüpfungspunkte im Code ein: Analyse- und vergleichbare Systeme profitieren maßgeblich davon, wenn man sie am "korrekten" Punkt in den Programmcode einer Anwendung einbindet.

Der mitp-Verlag liefert mit "Modernes Software Engineering" ein nach Ansicht des Rezensenten rundum gelungenes Werk, das die Rolle der Softwarearchitektur in einem modernen Unternehmen als Ganzes behandelt – auch die Übersetzung aus dem Englischen ist vorbildlich gelungen. Von der Lektüre profitieren insbesondere Entwicklerinnen und Entwickler, die erst seit wenigen Jahren programmieren, aber auch "alte Hasen" mit mehr als zehn Jahren Erfahrung können noch einiges darüber lernen, wie ihr Code als Teil eines Werte-schöpfenden Ganzen anzusehen ist. Der Rezensent empfiehlt das Buch daher nicht nur Programmiererinnen und Programmierern in seinem eigenen Unternehmen.

Tam Hanna
befasst sich seit dem Jahr 2004 mit Handcomputern und Elektronik. Derzeit liegt sein Fokus auf interdisziplinären Anwendungen von Informationstechnologie.

(map)