design

Blaupause der Tower Bridge

Jede Software hat eine Architektur. Nur ist sie nicht immer (sofort) erkennbar. Auf die Frage "Was ist Software-Architektur?" gibt es als Antwort zahlreiche und unterschiedliche Definitionen. Die Frage hat meiner Meinung nach nur akademische Bedeutung.

Viel wichtiger ist die Frage "Welche Bedeutung hat die Architektur für das System?". Ist das System aufgrund der Architektur leicht zu pflegen und zu erweitern, ist es performant und skalierbar, ist es leicht für neue Mitarbeiter zu begreifen, ist es zukunftsfähig. Eine schlechte Architektur kann all diese Punkte zunichte machen.

Die entscheidenden Fragen bezüglich der Software-Architektur fangen also nicht mit 'was' an, sonder mit 'wie'.

Artikel lesen scroll to top

Sketchnote zur OOP2017

Die OOP steht für hochkarätige Sprecher, die unsere IT-Landschaft wesentlich gestalten, für interessante Vorträge und Workshops, die unmittelbar für den Arbeitsalltag neue Ideen liefern, und für 2150 Coder, Software-Architekten und Projektmanager, die am Puls der Zeit im IT-Bereich sind.

Die OOP ist ein jährlich wiederkehrender Kongress in München, dieses Jahr vom 30.01. bis 03.02.2017, veranstaltet von SIGS DATACOM. Die 2000 Teilnehmer können aus den 130 sessions, die in meist 8 parallelen slots stattfinden, die auswählen, die sie interessieren. Aus 484 eingereichten Vorschlägen hat ein Komitee von 73 reviewern die Vorträge der 140 Sprecher aus 12 Ländern ausgewählt. Die Vorträge werden je nach Interesse der Teilnehmer und nach Fähigkeit der Referenten entweder in deutscher oder englischer Sprache gehalten. Die Talks und Workshops werden von einer Fachmesse mit 90 Ausstellern begleitet. Auch im Bereich der Fachmesse finden eine Reihe von Vorträge und Präsentationen statt.

Aufgrund der aufgezählten Fakten und dem enorm hohen Anspruch ist die OOP für einen Software-Architekten beziehungsweise für einen Projektleiter im IT-Sektor die Veranstaltung in Deutschland respektive Europa.

Aus dem reichhaltigen Angebot an Talks und Workshops habe ich ein paar ausgewählt, die meiner Meinung nach für eine Berichterstattung interessant sind und die mich persönlich interessieren. Die Auswahl ist etwas Entwickler und Software-Architekten-lastig, was eventuell einen falschen Eindruck von der Vielfalt der Talks vermitteln könnte.

Artikel lesen scroll to top

Architektur Antipattern passieren. Software Entwickler erzeugen sie nicht (absichtlich). Antipattern werden in vorhandener Software gefunden, bestaunt und beschimpft. Man kann ihnen auf zwei verschiedenen Wegen begegnen: Zum einen kann man versuchen, sie in Zukunft zu vermeiden. Zum anderen kann man dagegen angehen und beginnen sie aufzulösen.

Im Folgenden werde ich auf einige bekannte Antipattern in der Software-Architektur eingehen und sie hinsichtlich dieser zwei Herangehensweisen untersuchen.

Artikel lesen scroll to top

Als Software-Entwickler oder Software-Designer steht man vor der Aufgabe, mit Code zu arbeiten, der von möglichst vielen anderen Entwicklern und Designern verstanden werden können soll. Das schließt den ursprünglichen Autor mit ein, wenn er unter Umständen Jahre danach den Code wieder selbst bearbeitet. Zu rund 80% arbeiten Entwickler mit bestehendem Code und stehen oft vor dem Problem, dass sie ihn nicht (auf Anhieb) verstehen. Das hat unterschiedliche Ursachen:

  • Der Quellcode wurde über die Zeit immer wieder unter Umständen von unterschiedlichen Entwicklern ergänzt,
  • und er hat unter Umständen unter den vielen verschiedenen Stilen gelitten.
  • Durch debugfixing wurde der Code immer nur an lokal mit geringem scope gefixt, ohne das große Ganze zu sehen.

Das realisiert sich dann durch unleserlichen Code oder in einer Software-Architektur, die beide als Vorlage für sogenannte Antipatterns dienen können. Antipattern begegnen uns in zweierlei Hinsicht: Im Kleinen im Code in Form von unverständlichen Bezeichnern, Sprach-Konstrukten oder Code-Strukturen. Im Großen in einer Architektur, die schwer zu verstehen ist und aber auch eine Pflege, Ergänzung oder Fehlerbeseitigung erheblich erschwert.

Artikel lesen scroll to top

Das Auditorium war während der keynotes gut besucht.

25 Jahre OOP geben Anlass zu einem Rückblick, zu einem Vergleich und zu einer Beurteilung der Leistung über den Zeitraum. Vorab kann sicher der Veranstalter, die Sigs Datacom, für die Kontinuität und den Durchhaltewillen gelobt werden. Wie sich die diesjährige OOP in diesen Reigen einfügt, stelle ich im Folgenden aus meiner Sicht als Teilnehmer dar.

Artikel lesen scroll to top

Warum schon wieder ein Vortrag über refactoring?

Wie ist das Verhältnis bei den Tätigkeiten eines Entwicklers zwischen neuen Code erstellen und Code warten? Wie viele von den anwesenden Entwicklern haben so angefangen zu Coden in der letzten Woche? Laut Nicholas Zakas kann man von neuen Code erstellen sprechen, wenn ein Entwickler mit einem leeren Editor-Fenster beginnt. (Bücher von Nicholas Zarkas)

Folge: Die meiste Zeit verbringt ein Entwickler damit, Code zu warten. Jedes Mal, wenn Code gewartet wird, stellt sich implizit die Frage, kann soll darf ich diesen Code einem refactoring unterziehen?

Wo lernt man refactoring? Nicht in der Ausbildung, nicht in der Schule nicht im Studium1. - In der Praxis. daraus kann man ableiten:

  • refactoring hat mit Erfahrung zu tun.
  • refactoring wird unter anderem von dem Team beeinflusst, in dessen Umfeld der Entwickler arbeitet.

Deshalb kann auf dieses Thema nicht oft genug eingegangen werden, und zwar an der (Arbeits-)Stelle, an der es passiert.

Was ist der größte Feind von refactoring? Rockstar Mentalität - ‘Das ist mein Code und der ist so genial und kunstvoll, so dass niemand daran etwas ändern darf.’ Welcher Entwickler produziert den wertvolleren Code? Der Rockstar oder der Teamplayer? sicherlich der Teamplayer, denn was nützt der genialste Code, wenn er nicht gepflegt werden kann, weil keiner ihn versteht.

Oft haben Entwickler das Gefühl, wenn sie refactoring betreiben, dass sie sich freien Fall befinden, und sie wissen nicht, ob am Ende der Fallschirm aufgeht. Ziel ist es nun, dieses Gefühl gar nicht erst aufkommen zu lassen, beziehungsweise mehr Vertrauen in das gear und die eigenen Fähigkeiten zu bringen.


  1. Ein Kollege hat mich auf ein Skript der Fernuniversität Hagen aufmerksam gemacht, welches anscheinend als Grundlage für einen Studiengang dient, und in welchem detailliert mit speziellen Methoden auf Techniken des refactoring eingegangen wird. ?

Artikel lesen scroll to top

Peter Hruschka mit seinen Podiumsteilnehmern

Die Sonne scheint über den Dächern der Messehallen von München und lässt die OOP an ihrem letzten Tag (ok, morgen gibt es noch ein paar workshops) in einem strahlenden Licht erscheinen. Die Veranstalter haben (fast) alles richtig gemacht und jeder Teilnehmer geht mit einer positiven Bilanz nach hause. Auf dem feedback-board der OOP halten sich die post-it unter dem positiven und negativen Smily die Waage. Ich persönlich vermisse ein wenig mehr Gelegenheiten, sich an einen Tisch mit WLAN und Steckdose vielleicht auch mit mehreren Teilnehmern zusammen zu setzen. Die angebotenen Lounges sind zu klein und nicht ergonomisch. Aber, man braucht ja auch noch etwas, was man verbessern kann. Der kommende vierte Tag hatte aber dann noch ein paar richtige Kracher an board.

Artikel lesen scroll to top

Kevlin Henney mit Podiumsdiskussions-Teilnehmern

Am Morgen des dritten OOP Tags stand ich gleich vor einem Gewissenskonflikt: Ich musste mich zwischen zwei sehr interessanten Vorträgen entscheiden. In dem einen beleuchteten Gernot Starke und Stefan Tilkov das Thema "Warum und wie von Software-Evolution". Der andere ist etwas näher an dem Motto der OOP mit dem Thema "Complexity: Managed or Mishandled", vorgetragen von Frank Buschmann und Kevlin Henney. Beide Themen sind extrem interessant und alle Referenten excellent. Da ich das Duo Starke und Tilkov nun schon oft genossen habe und Buschmann und Henney immer für eine Überraschung gut sind habe ich mich für das komplexe Thema entschieden, eine Entscheidung, die ich nicht bereut habe.

Artikel lesen scroll to top

Tischfussball, eine Möglichkeit Komplexität zu verdrängen

"Die Komplexität wächst zunächst nur im Bauch. Es überkommt einen das Gefühl, dass es nun doch ein wenig viel wird. Die Anforderungen, nicht nur die von oben oder den Projekten, sondern auch die von mir an mich wachsen. Ich muss plötzlich mit immer mehr Leuten reden. Meine Produktivität scheint darunter zu leiden. Ich suche nach einem Gegenmittel. Finde keines. Suche Rat. Gehe auf die OOP und merke es geht vielen so. Die Komplexität ist angekommen." (unbekannter IT-ler)

Jutta Eckstein hat zu Beginn der ersten Keynote heute noch einmal darauf hingewiesen, wie sie dieses Thema versteht und warum es aktueller denn je ist. Jetzt ist es an uns, wie wir mit diesem Problem umgehen. 

Artikel lesen scroll to top

Modell des Mars Rover Curiosity

Die diesjährige OOP steht unter dem Motto "COMPLEXITY: Managing todays challenges". Ist die IT-Welt noch komplexer geworden? Hat man sich noch letztes Jahr neu erfunden unter dem Motto "CONTINUOUS Innovation", so kann man sich fragen, welche Entwicklung zu dem neuen Motto geführt hat?

Was hat sich im vergangenen Jahr in der IT verändert? Edward Snowden hat Namen genannt für Vorkommnisse, die schon Jahre zuvor hier auf der OOP vorgetragen wurden (Stuxnet). Ergebnis dieser Entwicklung dürfte sein, dass sich der ein oder andere etwas mehr Gedanken über Daten-Sicherheit und -Schutz macht als vor einem Jahr. Wir sind alle etwas reifer geworden, auch an Projekten, Code-Zeilen und sozialen Kontakten.

Auf dem Stand von Siemens in der angeschlossenen Fachmesse wird ein Modell vom Mars Rover "Curiosity", designed by Siemens, ausgestellt. Jahr für Jahr werden die Besucher der OOP mit Mini-Riegeln unter anderem "Mars" verwöhnt, die an allen Möglichen Stellen ausgelegt werden, um damit die Besucher mit einer ausgleichenden Zuckerration zu versorgen. Genau so ein Mini-Mars hat jemand direkt vor dem Marsroboter deponiert. Braucht nun so ein komplexes System wie der Mars Rover auch eine Stärkung?

Artikel lesen scroll to top

Der fünfte Tag für mich auf der OOP war weniger von Vielfalt und mehr von Intensivität geprägt. Die Seminare, Workshops und Vorträge der 7 Slots dauerten jeweils den ganzen Tag. Ich habe mich für den Vortrag von Frank Buschmann mit dem Thema "7 Secrets every Architect should know" entschieden, und das war wirklich ein intensives Erlebnis.

Artikel lesen scroll to top

Gunter Dueck mit Feinde der Innovation auf der OOP 2013

Den vierten Tag der OOP 2013 habe ich ein wenig abgekürzt bzw. später begonnen und mich auf zwei Vorträge am Abend konzentriert. Dafür waren dies echte Schmankerl. Gunter Duecks "Die Feinde der Innovation" und ein Drama in 5 Akten mit dem Titel "Continuous Delivery".

Artikel lesen scroll to top

Open Arena auf der OOP 2013

Der dritte Tag auf der OOP 2013 wird für mich sicher mindestens so lang werden wie der zweite. Am Nachmittag habe ich die Qual der Wahl zwischen drei Vorträgen, die zur gleichen Zeit stattfinden und die mich alle drei interessieren. Die Themen heute: Agil und Dokumentation, verteilte Teams, Innovation und Generationenkonflikt, was bringt html5 (in der Zukunft), Platform- oder Service-Provider und Team-Motivation. Wieder ein bunter Mix, auf den ich genauer eingehen werde.

Artikel lesen scroll to top

Fachmesse auf der OOP 2013

Am zweiten Tag der OOP öffnet die Fachmesse mit den Ausstellern und die Besucherzahlen steigen. Dies aber auch weil auch die Vorträge konzentrierter werden, das bedeutet mehr Vorträge in kürzerer Zeit. Und hier spielt die OOP nun ihre Mannigfaltigkeit aus. Die Themen decken ein weites Spektrum ab, das spielend zwei oder drei weitere Veranstaltungen gefüllt hätte.

Dieses Spektrum habe ich mit meiner Auswahl aus den acht parallelen Slots voll ausgeschöpft. Von API Design über Web-Performance-Optimization und funktioneller Programmierung hin zu kooperativem Software Qualitätsmanagement. Zwischendrin fanden noch zwei keynotes statt: "Identity Management in Social Networks" von Jeff Crume und "Beyond Budgeting - A Management Model" von Bjarte Bogsnes.

Artikel lesen scroll to top

Plakate der letzten OOP-Veranstaltungen

Die diesjährige OOP Veranstaltung steht unter folgendem Motto: CONTINUOUS Innovation: The Foundation for Success

Vor den Vortragsräumen sind die Plakate der OOP Veranstaltungen der letzten Jahre aufgestellt. Das diesjährige Plakat reiht sich als letztes ein und dessen Motto scheint in dieser Reihe auch eine logische Konsequenz auf die Schwerpunkte in den Jahren zuvor zu sein. Mit der Aufstellung der Plakate möchte man vielleicht speziell auf diese Entwicklung hinweisen. Im Rahmen der festen Größe, die die OOP bei Entwicklern, Architekten und Projektleitern darstellt und auf der Basis der immer wieder erreichten Qualität der Vorträge und Workshops muss sich auch diese Veranstaltung immer neu erfinden, um ihren Platz zu behaupten. Auch sie muss den Change annehmen und hat damit das Thema der vorletzten OOP verinnerlicht. Ein Prozess, der für einen Verlag vorbildlich ist.

Artikel lesen scroll to top

Ralph Langner als keynote speaker auf der OOP 2012

Ralph Langner, bekannt geworden durch das Stuxnet reverse engineering, hat auf der OOP 2012 eine keynote mit dem Thema "Mission Impossible - agile Waffenentwicklung am Beispiel Stuxnet" gehalten. Warum dieser Vortrag auf der OOP? Es ist schon seltsam genug überhaupt einen Vortrag zu diesem Thema in einem derart offenen Forum zu hören. Diese Themen mit dieser Informationsqualität findet man wenn überhaupt in Kreisen, in denen der normal sterbliche Software-Entwickler keinen Zugang hat.

Langner geht in seiner keynote noch einen Schritt weiter, er zäumt das Pferd von hinten auf. Es sind wahrlich genug Software-Entwickler anwesend. Er stellt ihnen die folgende Aufgabe: Verlangsamen Sie die iranische Uran-Anreicherung, indem Sie per Software-Angriff mindestens 1000 Zentrifugen in Nantanz technisch zerstören. Es soll wie ein Unfall aussehen. Mission impossible?

Artikel lesen scroll to top

Pecha Kucha Referenten sichtlich erleichtert nach dem Vortrag

Es gehört schon ein wenig Sadismus dazu, einen Pecha Kucha Abend zu besuchen. Einen solchen konnte ich auf der OOP 2012 erleben. Eine Reihe von Protagonisten (im Original sind es 14) versuchen über Thema zu referieren, das Ihnen am Herzen liegt anhand von 20 Bildern, die sie ausgewählt haben und die während des Vortrags gezeigt werden.

Das ist an sich noch nicht so besonders. Es gibt aber noch ein paar Regeln, die das ganze schmackhaft machen.

Artikel lesen scroll to top

Gunter Dueck während seines Vortrags auf der OOP 2012

Auf der OOP 2012 habe ich dieses Jahr zum zweiten Mal einen Vortrag von Gunter Dueck genossen. Wer ist Gunter Dueck und was hat er so bedeutendes zu erzählen, als dass ich darüber berichten möchte. Wer er ist kann man auf seiner Website omnisophie.com in seinem Lebenslauf nachlesen. Wenn man das tut, erfährt man dass er ein ganz hohes Tier bei IBM war, aber diesen Eindruck macht er da auf der Bühne gar nicht. Er wirkt eher etwas verschüchtert. Nach einer Weile könnte man fast meinen, das ist seine Masche. Am Ende glaubt man aber, das ist er einfach. Wenn man nichts weiter über ihn weiß, genügt erst einmal die Information, er ist Mathematiker und Philosoph.

Was hat er uns mitzuteilen? Nun er hat eins und eins zusammen gezählt.

Artikel lesen scroll to top

Tom DeMarco bei seiner keynote auf der OOP2011

Auf der OOP2011 in München hielt der Buchautor Tom DeMarco („Der Termin“, Adrenalin Junkies & Formular Zombies“, und einige mehr) eine bemerkenswerte keynote, die von vielen als der Höhepunkt des Kongresses bezeichnet wurde. Da es bisher wenig Aufzeichnungen und Quellen zu diesem Vortrag mit dem Thema 'collaborative design' gibt, und gar noch weniger in deutscher Sprache, habe ich versucht seine Aussagen zusammen zu fassen und ins deutsche zu übersetzen.

Bevor DeMarco zum Kern seiner Aussage kommt, untersucht er ein paar notwendige Definitionen und zieht seine Schlüsse daraus.

Artikel lesen scroll to top

Die Verwendung von Frameworks erfolgt aus zwei verschiedenen Richtungen: Entweder wird am Anfang eines Projekts entschieden die Entwicklung auf ein Framework aufzubauen, oder während der (Weiter-) Entwicklung werden wiederkehrende Funktionen ausgelagert, so dass sie zentral für andere (neue) Bausteine zur Verfügung stehen. Beide Herangehensweisen verlangen Fingerspitzengefühl und eine ernsthafte Abwägung, ob zum Beispiel ein eigenes Framework eingesetzt oder (neu) entwickelt wird, oder ob ein fremdes Framework übernommen wird.

Artikel lesen scroll to top

Im Webdesign sind momentan zwei gegenläufig Tendenzen fest zu stellen: Immer mehr Websites werden mit CSS und HTML so programmiert, dass Inhalt und Formatierung getrennt werden (barrierefreies Design). Auf der anderen Seite gibt es immer mehr Programme, die es dem Anwender leicht machen sollen, Websites mit einem ansprechenden Layout zu gestalten, wobei die Betonung ganz klar auf dem Layout liegt und barrierefreies Gestalten wenn überhaupt, dann nur partiell umgesetzt wird.


Artikel lesen scroll to top

Viele Medien, die an die Zielgruppe der Jugendlichen gerichtet sind, haben sich seit etlichen Jahren nicht verändert. Begründet sich dies darin, dass diese Zielgruppe besonders schwer zu erreichen ist, oder dass sie besonders anspruchsvoll ist, oder dass sie am Ende gar konservativ ist?


Artikel lesen scroll to top

So wie es bei jeder Art von Dienstleistung Unterschiede in der Qualität der abgelieferten Arbeit gibt, so ist es auch beim Webdesign. Im folgenden skizziere ich die beiden Extreme: einmal den schlimmsten anzunehmenden Fall und dem gegenübergestellt den optimalen Fall - wohlwissend, dass die Realität irgendwo dazwischen liegt. Letztendlich fällt mir auf, dass die Lücke der beiden Extreme, die leider auch jeweils in ihrer extremen Form in der Realität statt finden, sehr weit auseinander klafft. Die Leidtragenden sind orientierungslos gewordene Unternehmen.


Artikel lesen scroll to top