Sie sind hier
E-Book

Baukunst für Softwarearchitekten

Was Software mit Architektur zu tun hat

AutorJan Peuker
Verlagentwickler.press
Erscheinungsjahr2014
Seitenanzahl288 Seiten
ISBN9783868023022
FormatPDF/ePUB
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis19,99 EUR
Technologiearchitektur hat nicht viel mit Realweltarchitektur gemein, auch wenn Softwarearchitekten das gerne so hätten. Aber die IT-Welt ist genauso wenig Sandkasten wie der Rest der Bauwelt. Dies ist ein Lesebuch durch Geschichte und Konzepte der Gebäudearchitektur und Stadtplanung, ohne Anspruch auf Vollständigkeit oder Wunderlösungen. In einer IT-Welt von agiler und evolutionärer Softwareentwicklung, Servicedesign, Fehlertoleranz, Resilienz, Informationsflüssen, adaptiver und reaktiver Software lohnt sich der Blick über den Tellerrand. Dieses Buch erzählt zehn Geschichten aus der Architektur mit dem Ziel, diese alte Freundschaft wieder aufleben zu lassen. Die Themen • Bausteinprinzip • Enterprise-Architekturen • Agile Softwareentwicklung • Software Craftsmanship • Einheit von Form und Funktion • Systems Engineering • Software Engineering • Softwarearchitektur • Projektmanagement • Netzwerkorganisationen

Jan Peuker ist seit 15 Jahren Softwareentwickler, Architekt und Designer. Als Generalist mit Doppelabschluss in Informatik und Design steht er täglich der Zerreißprobe zwischen cleverem Design und pragmatischer Ingenieurskunst gegenüber. Technisch befasst er sich mit mobilen Anwendungen, skalierbaren Internetarchitekturen und agiler Entwicklung. In seiner Freizeit versucht er, neben dem Schreiben dieses Buches, alte Autos zu reparieren - das ist aber auch nicht einfach.

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

Prolog

You cannot only design a building to make it beautiful.
It has to really work well with the huge crowd that is using it.

Jacques Herzog

Warum ein Buch

Jacques Herzog sagt immer wieder, dass er nicht an Bücher über Architektur glaubt. Nicht weil er Bücher nicht mag, sondern weil er Sekundärliteratur für eine unnötige Einschränkung der Wahrnehmung hält. Als ein Gründer und Vordenker von Herzog & de Meuron, einem der wichtigsten Studios der Welt, muss er es wissen.

Die Zielgruppe dieses Buchs sind Programmierer, die neugierig sind, wie Strukturen ihre Arbeit beeinflussen können und dazu die Qual eines längeren Texts auf sich nehmen.

Dieser Text ist keine Einführung in die Architektur. Zwar wird Softwarearchitektur weder im Studium noch in der Arbeit hinreichend gelehrt, aber es gibt genug gute Sekundärliteratur zur Softwarearchitektur. Durchgängig hochwertige und breit angelegte Einführungen in das Thema Softwarearchitektur sind z. B. „Software Architecture“ von Vogel et al. oder „Software Architecture in Practice“ von Bass et al. und Starke und Hruschkas „Software-Architektur kompakt“. Viel Arbeit haben mir Kathrin Passig und Johannes Jander mit „Weniger schlecht programmieren“ erspart, indem sie ein Buch über Softwareentwicklung im Allgemeinen schrieben. Ergänzend hat Laurent Bossavit mit „The Leprechauns of Software Engineering“ eine fabelhafte Einführung in die Folklore des Softwareengineerings geschrieben. Beide kann ich guten Gewissens empfehlen. Neben den Büchern von Brooks1, Fowler, Beck, Simon, DeMarco und Cunningham sowie den Beiträgen von Dijkstra, Kay, Fielding, Brand und Brown kann dieses Buch rein fachlich nicht mehr viel beitragen. Deshalb ist dieses Buch eine Reise.

Donald Knuth würde nach eigener Aussage nie mit „The Art of Computer Programming“ fertig werden, wenn er auch noch im Internet stöbern würde. Ich schreibe diese Zeilen als letzten Teil des Buchs, während ich mich eigentlich auf die „MobileTechCon“ in München vorbereiten sollte. Über Twitter laufen interessante Diskussionen zur Architektur, wie jedes Jahr zur Frühjahrskonferenzsaison. Diese kann ich nicht mehr aufnehmen. In Zeiten von Twitter ein aktuelles Buch zu schreiben, ist eigentlich unmöglich.

Der Vorteil eines Buchs gegenüber einem Blog ist der von vorneherein definierte Umfang des Manuskripts, das zu einem festen Zeitpunkt abzugeben ist. Blog wie Buch sind für mich Möglichkeiten, ein Thema neu zu betrachten. Wie Chad Fowler in seinem Blog Martin Fowler mit den Worten zitiert „Whenever I want to really learn about something, I write a book about it.“2 Das Buch zwingt zu einem größeren Rahmen. Als Buchleser bevorzuge ich das, denn dieser Rahmen gibt eine Idee, die im Kopf bleibt. Das Buch ist ein Schnappschuss eines Gedankengangs, wohingegen sich ein Blog weiterentwickelt3. Ein Blog funktioniert nach „Embrace change“, er kann Antworten liefern. Das Buch muss Fragen stellen. Ein Buch muss dichter sein, einen Mehrwert in Form von Verweisen liefern, die über die aktuelle Diskussion hinausgehen. Das Buch kann eine Referenz sein, die neben dem Tablet oder PC liegt, man kann es genervt in die Ecke schmeißen und wieder aufnehmen, Seiten einknicken, Fußnoten folgen, es verschenken und in die Kaffeeecke für alle legen.

Ätzende Architekturmetaphern

Auf der JAX 2013 habe ich den Vortrag „Ätzende Architekturmetaphern“ gehalten4, bei dem ich das erste Mal seit meinem Diplom 2009 Gebäude- und Softwarearchitektur gegenübergestellt hatte. Das Thema hatte mich schon lange verfolgt, da ich seit jeher Bücher über beides lese. Der Vortrag fokussierte vor allem die folkloristische Verwendung von Architekturmetaphern5 im Softwareengineering, wie z. B. dem Wolkenkratzer als Sinnbild für die perfekte Ingenieurskunst, die man so auch im Softwarebereich anwenden solle. Ich hatte nie überlegt, ein Buch darüber zu schreiben, dennoch nahm ich das Angebot an, um mich dem Thema eingehender widmen zu können.

Viele Autoren haben betont, dass die Gebäudemetapher für Softwaresysteme nicht hilfreich ist und entsprechend auch die Architektenmetapher für die Rolle des Organisators nicht. Mario Barbacci hat 19986 bereits ganz trocken erkannt, dass die Ausbildung des Informatikers eher dem Bauingenieur denn dem Architekten entspricht. Parallel gab es z. B. mit Morville einige, welche den Aufbau von Beziehungen in den Vordergrund gestellt haben, oder wie James A. Highsmith das Lernende mit seinem Bild des Bergsteigers. Auch in Boochs berühmter Präsentation zu UML wird mit dem Beispiel des Hundehauses Architektur ironisch betrachtet. Und Kent Beck schrieb, dass wir uns generell von Metaphern aus der physischen Welt lösen wollten, weil diese immer nur schwer veränderbar seien. Was John Sonmez prägnant zusammenfasst „Software is living – bridges aren’t“7.

In „Beautiful Architecture“ wird gar keine Metapher herangezogen, weil Software eben immateriell und komplex ist. Mein persönlicher Favorit aus „Pragmatic Programmer“ erschien nur kurz später und hob hervor, dass unsere Arbeit eher dem „Garteln”8 entspricht, da Software organisch ist. Entsprechend sind wir keine Hochhausarchitekten, sondern Unkrautjäter. John Brøndum hat mehrfach geschrieben, dass die Gebäudemetapher zu weit hergeholt ist. Ebenso Martin Fowler9, der dazu Martin Pollan heranzieht, der auch ein großer Fan des Gartens ist, und argumentiert, dass der Architekt eigentlich ein Häufchen Elend ist. Im „Code Complete“ führt uns Steve McConnell erst einmal in die Probleme von Metaphern generell ein, um dann doch zu klären, warum er „bauen“ sinnvoller als „farming“ (eine dem Garteln ähnliche Herangehensweise) betrachtet. Deshalb umschiffen Standards wie die IEEE SWEBOK den Begriff Architektur elegant und sprechen von „Software Construction“. Dirk Riehle10 verbindet dieses Bauen mit dem Alterungsprozess aus „How Building Learn“ und erklärt, wie wenig Einfluss Architekten tatsächlich auf die Architektur haben. Vielleicht ist das der Grund für die sehr ausgewogene Herangehensweise der iSAQB-Zertifizierung: Sie akzeptieren den Begriff als Metapher, benutzen ihn aber nicht als Daseinsberechtigung. Denn Metaphern sind, wie Eric Evans festgestellt hat, zur Kommunikation nützlich. Sie helfen dabei, etwas zu identifizieren, was sonst informell und vage vor sich geht. Die beste Zusammenfassung dieses Problems liefert wohl Ruth Malan11:

„You could say a house is but a pile of wood and bricks, nails and such, but it doesn’t make sense to (only) see a house that way, if you want to build one. And it doesn’t make sense to (only) see a software system as a bunch of bits, or even lines of code. We have to see the bigger structures. The rooms, the flow among them, the supporting walls, the sheltering roof. The components, the interactions, the mechanisms, the sub­sys­tems.“

Disclaimer

Letztens habe ich einen Post von Erik Dietrich mit dem Titel „The Building Metaphor is dead“ gelesen, der etwas provokant in Entwickler und Überarchitekten12 trennt, wobei letztere durch ihre pure Genialität den Respekt der Gruppe haben. Doch Respekt in einem Fachgebiet macht noch keinen guten Architekten, es ist die Offenheit für neue Probleme. Dazu ein schönes Zitat von Naveen Jain auf der DLD 14: „As soon as you become an ‘expert’ you stop innovating, you’re an incrementalist.”

Ich war nie Experte, immer eher Generalist. Meine Interessensgebiete waren schon immer „T-Shaped“13, Tiefe in Design sowie IT-Systeme, aber breites Interesse an allem Kulturellen. Das machte mich zum Nerd bei den Nerds, weder bei den Designern noch den Hackern war ich richtig aufgehoben. Dieses Buch ist weder nur für Gebäude- noch nur für Softwarearchitekten geschrieben, sondern versucht eine Brücke zu schlagen, ohne zu „bullshitten“. Und dies weder mit dem Ziel, die beiden Gebiete zu separieren, noch willkürlich zusammenzuwürfeln, sondern die Metapher für sich stehen zu lassen und allen Softwarearchitekten die Geschichte der Architektur näherzubringen, mit dem Ziel, daraus zu lernen – genauso wie man aus der Geschichte der Kunst, Musik oder Mathematik lernen kann.

Softwarearchitekten haben oft ganz unterschiedlichen Hintergrund. Nicht nur von ihrer Ausbildung, sondern auch dem Umfeld, in welchem die Software entwickelt wird. Klein- und Großunternehmen, Start-ups und Forschung, Produkt- und Individualentwicklung. Dieser Kontext wird mir zu häufig in Büchern und Blogs unterschlagen. Deshalb benutze ich häufig die Ich-Form. Ich habe in nicht so vielen Bereichen Erfahrung wie Architekturgurus, bin kein Opinion- oder Thought-Leader, Evangelist oder Fellow. Zwar habe ich sowohl mit prozess- als auch mit datengetriebenen Systemen gearbeitet; SOA, Batch, Messaging und extrem heterogene Architekturen integriert; in Java, JavaScript/Node, PHP, SQL, C++, Delphi und etwas Scala/Play professionell programmiert. Aber in der Produktentwicklung14 war ich nur kurz, und das ist schon etwas länger her. Funktionale Programmierung, Embedded- und Systems-Engineering kenne ich nicht im Industriekontext. An wirklich maschinennahe Programmierung traue ich mich nach zehn Jahren nur noch spielerisch ran. Meine Erfahrung liegt in geschäftsprozessgetriebener Individualsoftware: Informationssystemen, wozu ich auch Mobile- und Webplattformen zähle, deren Integration und Life Cycle. Das...

Blick ins Buch

Weitere E-Books zum Thema: Architektur - Baukunst

Der Ingenieur und seine Designer

E-Book Der Ingenieur und seine Designer
Entwurf technischer Produkte im Spannungsfeld zwischen Konstruktion und Design Format: PDF

Design und Konstruktion entscheiden über den wirtschaftlichen Erfolg neuer technischer Produkte. Nicht allein die 'Aufmerksamkeitsökonomie' ist dafür ausschlaggebend; der Wert langlebiger Güter wird…

Der Ingenieur und seine Designer

E-Book Der Ingenieur und seine Designer
Entwurf technischer Produkte im Spannungsfeld zwischen Konstruktion und Design Format: PDF

Design und Konstruktion entscheiden über den wirtschaftlichen Erfolg neuer technischer Produkte. Nicht allein die 'Aufmerksamkeitsökonomie' ist dafür ausschlaggebend; der Wert langlebiger Güter wird…

Software-Architektur

E-Book Software-Architektur
Format: PDF

Als Architekt arbeiten Sie in einem sehr vielfältigen und dynamischen Umfeld. Neue Technologien drängen auf den Markt, neue Werkzeuge versprechen Effizienz- und Produktivitätssteigerungen und neue…

Öffentlicher Personennahverkehr

E-Book Öffentlicher Personennahverkehr
Herausforderungen und Chancen Format: PDF

Das Buch zur gleichnamigen ifmo-Konferenz enthält Beiträge zur künftigen Entwicklung, zu Auswirkungen und Herausforderungen im Zusammenhang mit dem öffentlichen Personennahverkehr (ÖPNV) sowie…

Öffentlicher Personennahverkehr

E-Book Öffentlicher Personennahverkehr
Herausforderungen und Chancen Format: PDF

Das Buch zur gleichnamigen ifmo-Konferenz enthält Beiträge zur künftigen Entwicklung, zu Auswirkungen und Herausforderungen im Zusammenhang mit dem öffentlichen Personennahverkehr (ÖPNV) sowie…

Weitere Zeitschriften

Arzneimittel Zeitung

Arzneimittel Zeitung

Die Arneimittel Zeitung ist die Zeitung für Entscheider und Mitarbeiter in der Pharmabranche. Sie informiert branchenspezifisch über Gesundheits- und Arzneimittelpolitik, über Unternehmen und ...

caritas

caritas

mitteilungen für die Erzdiözese FreiburgUm Kindern aus armen Familien gute Perspektiven für eine eigenständige Lebensführung zu ermöglichen, muss die Kinderarmut in Deutschland nachhaltig ...

Deutsche Tennis Zeitung

Deutsche Tennis Zeitung

Die DTZ – Deutsche Tennis Zeitung bietet Informationen aus allen Bereichen der deutschen Tennisszene –sie präsentiert sportliche Highlights, analysiert Entwicklungen und erläutert ...

die horen

die horen

Zeitschrift für Literatur, Kunst und Kritik."...weil sie mit großer Aufmerksamkeit die internationale Literatur beobachtet und vorstellt; weil sie in der deutschen Literatur nicht nur das Neueste ...

rfe-Elektrohändler

rfe-Elektrohändler

rfe-Elektrohändler ist die Fachzeitschrift für die CE- und Hausgeräte-Branche. Wichtige Themen sind: Aktuelle Entwicklungen in beiden Branchen, Waren- und Verkaufskunde, Reportagen über ...

VideoMarkt

VideoMarkt

VideoMarkt – besser unterhalten. VideoMarkt deckt die gesamte Videobranche ab: Videoverkauf, Videoverleih und digitale Distribution. Das komplette Serviceangebot von VideoMarkt unterstützt die ...