Software-Modernisierung

Modernisieren von komplexen Software-Systemen

Sie möchten eine bestehende Softwarearchitektur modernisieren oder für neue Geschäftsfelder einsetzen? Sie möchten Betriebs- und Entwicklungskosten Ihrer Systeme senken und deren Flexibilität erhöhen?

Wir helfen Ihnen bei systematischer Verbesserung, beginnend bei der strukturierten Problem- und Risikoanalyse sowie der Maßnahmenfindung. Diese Grundlagen bewerten wir dann aus betriebswirtschaftlicher Sicht. Wir unterstützen Sie so bei der notwendigen Priorisierung und bei der strategischen Planung und Umsetzung der notwendigen Verbesserungsmaßnahmen.

Mit Ihnen gemeinsam ergreifen wir die geeigneten Maßnahmen, um die unter wirtschaftlichen, organisatorischen und technischen Rahmenbedingungen für Sie optimale Architektur und Implementierung zu erreichen. Sprechen Sie mit uns - über Ihre Zukunftsfähigkeit durch systematische Modernisierung.

  • Architekturmodernisierung mit SCS und Microservices

    Vortrag Alexander Heusingfeld, Michael Vitz OOP 2017 Folien verfügbar

    Dieser Vortrag adressiert ein klassisches Dilemma der IT: eine große, monolithische Anwendung, kritisch und wichtig, und innerlich ungeheuer schwer und aufwendig zu warten. Um auf fachliche Änderungen und dynamische Märkte schneller reagieren zu können, müssen wir dieses Altsystem modularisieren und strukturell sowie konzeptionell modernisieren – dabei aber kontinuierlich (hoch) verfügbar halten. Ganz nebenbei verfügen wir natürlich nur über ein eingeschränktes Budget.

    Wir zeigen Ihnen anhand etablierter Praktiken und Patterns (aus dem Fundus von aim42.org) typische Möglichkeiten auf, solche Projekte anzugehen. So können Sie Stück für Stück, gerade so, wie es das Projektbudget zulässt, die Architektur des Gesamtsystems modernisieren, ohne ein Big-Bang-Release zu fürchten. Hierbei wollen wir auch die Frage beantworten, mit welchen Themen Sie sich neben „Wie teile ich mein System auf“ außerdem beschäftigen müssen, und wie wir die Vorteile einer Microservice-Architektur nutzen können, ohne uns gleich allen ihren Herausforderungen auf einmal stellen zu müssen.

    Zielpublikum: Architekten, Entwickler, Projektleiter Voraussetzungen: Basiswissen Software-Architektur und verteilte Systeme Schwierigkeitsgrad: Anfänger

    Mehr lesen
  • Software verbessern – aber richtig (mit aim42)

    Vortrag Gernot Starke .NET Developer Conference 2016

    Die Informatikausbildung fokussiert auf die Neuentwicklung von Software – den Alltag vieler Softwerker prägen jedoch meist Pflege, Änderung oder Erweiterung von Systemen. In diesem Workshop stelle ich Ihnen aim42 vor, ein systematisches Vorgehen zur Verbesserung von Software. aim42 ist frei verfügbar (Open-Source) und kondensiert Praktiken und Patterns rund um Modernisierung, und Evolution von IT-Systemen.

    aim42 funktioniert iterative in den Phasen Analyse, Evaluate und Improve. Es adressiert sowohl technische wie auch fachliche Stakeholder und schließt damit eine gravierende Verständnislücke in Entwicklungs- und Änderungsprozessen von Software.

    Sie müssen Ihre Systeme parallel zum Tagesgeschäft verbessern, und sind dabei von engen Zeit- und Budgetgrenzen gebunden? Sie möchten innere Qualität verbessern, müssen statt dessen immer neue Features liefern? Ich zeige Ihnen Wege aus diesem Legacy-Chaos.

    Im Workshop stelle ich die Grundlagen von aim42 vor und begebe ich anschließend in praktischen Übungen mit Ihnen gemeinsam auf die Suche nach konkreten Problemen. Sie lernen, wie Sie die identifizierten Probleme betriebswirtschaftlich einschätzen und damit Ihrem Management begreiflich machen können.

    Ich nutze praktische Beispiele realer IT-Systeme, um die aim42 Praktiken zu erläutern.

    Voraussetzungen: Der Workshop richtet sich primär an Softwareentwickler und –architekten mit Projekterfahrung, aber auch Product-Owner und Projektleiter kommen auf ihre Kosten.

    Mehr lesen
  • Lean Prinzipien und das Management von Technical Debt

    Vortrag Sven Johann XP Days Germany 2016

    Viele Systeme haben allerhand unsichtbare Probleme, die man heutzutage als Technical Debt zusammenfassen kann: Code Smells, fehlende Tests und Dokumentation, schlechtes Design, unangemessene Architektur und/oder veraltete Technologie. Kleine Probleme wie Code Smells sind noch einfach zu beheben, aber substantielle Probleme, die große Teile der Codebase betreffen sind aus vielen Gründen weitaus schwieriger anzupacken. Risiko, Kosten und Wert der “Rückzahlung” von Technical Debt sind zudem schwer abzuschätzen.

    Es heißt oft, dass Technical Debt zu vermeiden sei, dies ist aber letztenendes unmöglich und deshalb rückt mehr und mehr das Maximieren des Wertes von “Technical Debt Management” in den Vordergrund. Ein in die Jahre gekommenes System hat fast immer so viel Verbesserungsbedarf, dass Verbesserungen nicht blind gemacht werden dürfen. Es ist wichtig, die Stellen anzupacken, die am meisten Wert versprechen.

    Hier kommen Lean Prinzipien ins Spiel um zu entscheiden, was man wann und wie verbessern sollte.

    Dieser Vortrag gibt erst einen Überblick über die Technical Debt Landkarte und warum man Technical Debt managen sollte, statt einfach nur blind zu verbessern. Danach werden die Lean Prinzipien “Eliminate Waste”, “Decide as late as possible”, “Deliver as fast as possible” und “See the whole” diskutiert und wie man sie nutzen kann, um ein System wertorientiert zu verbessern.

    Mehr lesen
  • Software systematisch verbessern

    Artikel Gernot Starke

    Es ist ein bekanntes Phänomen: Obwohl zu Beginn beim Entwickeln des Projekts alles sauber und ordentlich zuging, degeneriert das System mit der Zeit – das Phänomen der „verfaulenden Software“ schlägt zu. Änderungen werden dann immer riskanter, schwieriger und langwieriger. In der Entwicklung und im Betrieb mehren sich die Probleme, die zu beheben immer mehr Zeit in Anspruch nimmt. Gleichzeitig steigen aber auch Änderungs- und Betriebskosten, während die Zufriedenheit von Entwicklern, (fachlichen) Auftraggebern, Testern, Administratoren und anderen Beteiligen ständig abnimmt. Vermutlich kennt jeder Leser diese Situation: Willkommen in der Legacy-Hölle.

    Mehr lesen
  • Managing Technical Debt

    Vortrag Sven Johann The Architecture Gathering 2016

    Viele Systeme haben allerhand unsichtbare Probleme, die man heutzutage als Technical Debt zusammenfassen kann: Code Smells, fehlende Tests und Dokumentation, schlechtes Design, unangemessene Architektur und/oder veraltete Technologie. Kleine Probleme wie Code Smells sind noch einfach zu beheben, aber substantielle Probleme, die große Teile der Codebase betreffen, sind aus vielen Gründen weitaus schwieriger anzupacken. Risiko, Kosten und Wert der “Rückzahlung” von Technical Debt sind zudem schwer abzuschätzen.

    Es heißt oft, dass Technical Debt zu vermeiden sei, dies ist aber letztenendes unmöglich. Deshalb rückt mehr und mehr das Maximieren des Wertes von “Technical Debt Management” in den Vordergrund.

    Dieser Vortrag diskutiert anhand mehrerer Beispiele, z.B. Ablösung von Alt-Frameworks oder Totalumbau eines Domänenmodells, angewandte Ideen, wie man mit Hilfe unterschiedlichster Ideen wie Shearing Layers oder Value-Chain-Analysis den Wert einer Verbesserung innerhalb eines Entwicklungsprozesses für alle Stakeholder sichtbar und nachvollziehbar machen kann, und wie man dies in einen Standard-Entwicklungsprozess wie z.B. Scrum einbetten kann.

    Mehr lesen
  • JAX TV: Legacy-Systeme mit Microservices, Hystrix und RxJava modernisieren

    Link Arne Landwehr, Holger Kraus

    In ihrem Vortrag bei der WJAX 2015 zeigen Arne Landwehr und Holger Kraus, wie auch größere, monolithische Altsysteme mithilfe der offenen Netflix-Bibliotheken schrittweise in Richtung einer Microservice-Achitektur weiterentwickelt werden können. Hystrix kann dabei einen wertvollen Beitrag zur Gesamtstabilität des entstehenden verteilten Systems leisten. Der Einsatz von RxJava ist eine gute Möglichkeit, den Anteil von asynchronen Prozessen innerhalb der Legacy-Architektur zu erhöhen. Der Vortrag wird anhand von Beispielen demonstrieren, wie der hier angedeutete Modernisierungsprozess umgesetzt werden kann.

  • Software verbessern - aber richtig

    Vortrag Gernot Starke Java Forum Stuttgart 2016

    Unser berufliches Leben besteht zum größten Teil aus erweitern, korrigieren, ändern, patchen, fixen von Software, also Anpassungen bestehender Systeme.

    Genau diesen Teil ignoriert die klassische IT-Ausbildung, die primär auf die Neuerstellung fokussiert. Ich zeige im Vortrag pragmatische Wege, wie Sie die wesentlichen Aspekte Ihrer Systeme systematisch verbessern können.

    Sie lernen, wie Sie:

    • die schlimmsten Probleme finden,
    • Ihr Management von Umbaumaßnahmen überzeugen,
    • Verbesserungen mit Ihrem Tagesgeschäft verbinden,
    • mittel- und langfristige Verbesserungen angehen können.

    Dazu bekommen Sie einen Überblick über die Architecture Improvement Method, die (Open-Source) Methodik zur Verbesserung, Modernisierung und Evolution von IT-Systemen.

    Anhand realer Beispiele aus unterschiedlichen Domänen zeige ich die Anwendung dieser Praktiken auf mittlere und große IT-Systeme. Damit erhalten Sie konkrete Ansätze, Management und Projektleitung von Verbesserungen zu überzeugen.

    Mehr lesen
  • Microservice-Architekturen zur Modernisierung von Bestandssystemen

    Vortrag Alexander Heusingfeld, Michael Vitz Microservices Summit 2016

    Ein klassisches Dilemma der IT: eine große, monolithische Anwendung, kritisch und wichtig, und innerlich ungeheuer schwer und aufwändig zu warten. Um auf fachliche Änderungen und dynamische Märkte schneller reagieren zu können, müssen wir dieses Altsystem modernisieren – nur wie? Erneuern wir nur den Technologie-Stack und bauen einen neuen Monolithen? Oder modularisieren wir und bauen strukturell sowie konzeptionell Neues? Wie können wir das entscheiden?

    Wir zeigen Ihnen in diesem Workshop anhand etablierter Praktiken und Patterns (aus dem Fundus von aim42.org) typische Möglichkeiten auf, solche Projekte anzugehen und die Systeme dabei (hoch) verfügbar zu halten. So können Sie Stück für Stück, gerade so wie es das Projektbudget zulässt, die Architektur des Gesamtsystems modernisieren, ohne ein Big-Bang-Release zu fürchten. Hierbei wollen wir uns auch mit der Frage beschäftigen, die so gern von unseren Vorgesetzten gestellt wird: “Können Sie mir mal vorrechnen, wieso eine Microservice-Architektur die finanziell bessere Entscheidung ist?“ Nach dem Workshop haben Sie einige anwendbare Muster kennengelernt, mit deren Hilfe Sie Ihre eigenen Monolithen wieder zu besser wartbaren Systemen migrieren können.

    Mehr lesen
  • Value-based Improvement (wert-/nutzenbasierte Modernisierung)

    Vortrag Martin Schmidt, Gernot Starke Business Technology Days 2016 Folien verfügbar

    Wenn Softwaresysteme durch ständiges „Herumbasteln“ (sprich: Erhöhung der technischen Schulden) verrotten, dann werden fachliche Erweiterungen immer teurer und riskanter. Ein Teufelskreis – denn dann steigt gleichzeitig der Druck, neue Features liefern zu müssen.

    Im Vortrag zeigen wir systematische Auswege aus dieser Situation: Mit aim42-basierter Analyse identifizieren Sie die schlimmsten Wartungshindernisse und bewerten diese aus betriebswirtschaftlicher Sicht. Parallel zu fachlicher Erweiterung beseitigen Sie systematisch und kontinuierlich diese Hemmnisse – und balancieren damit Wartbarkeit und Business-Value. Klassischen Refactoring-Ansätzen fehlt dieser betriebswirtschaftliche Aspekt – daher stoßen sie bei Entscheidern so oft auf Widerstand.

    Mehr lesen

    Microservices zur Architektur­modernisierung

    Vortrag Alexander Heusingfeld, Michael Vitz JAX 2016 Folien verfügbar

    Dieser Vortrag adressiert ein klassisches Dilemma der IT: eine große, monolithische Anwendung, kritisch und wichtig, und innerlich ungeheuer schwer und aufwändig zu warten. Um auf fachliche Änderungen und dynamische Märkte schneller reagieren zu können, müssen wir dieses Altsystem modularisieren und strukturell sowie konzeptionell modernisieren – dabei aber kontinuierlich (hoch) verfügbar halten. Ganz nebenbei verfügen wir natürlich nur über ein eingeschränktes Budget.

    Wir zeigen Ihnen anhand etablierter Praktiken und Patterns (aus dem Fundus von aim42.org) typische Möglichkeiten auf, solche Projekte anzugehen und Stück für Stück die Architektur des Gesamtsystems zu modernisieren. Hierbei unterstützen uns u. A. Bibliotheken wie Hystrix dabei, die Risiken dieser Umstellung zu managen und auch zu visualisieren. Nach dem Vortrag haben Sie einige anwendbare Muster kennengelernt, mit deren Hilfe Sie Ihre eigenen Monolithen wieder zu besser wartbaren Systemen migrieren können.

    Mehr lesen
  • Software modernisieren – aber richtig

    Vortrag Gernot Starke EuregJUG April 2016

    Bestehende IT-Systeme leiden oftmals an vielerlei Krankheiten, die Innovation und Weiterentwicklung behindern (und obendrein das Entwicklerleben erschweren).

    Systematische Modernisierung und Verbesserung muss parallel zum Tagesgeschäft und auch mit beschränkten Budgets funktionieren - gleichzeitig sowohl für Entwickler wie auch Manager nachvollziehbar sein. Genau hier setzt aim42 an, die (Open-Source) „Architecture Improvement Method“ - die schon vielen Teams pragmatische Wege aus dem Legacy-Chaos aufgezeigt hat.

    aim42 arbeitet iterativ und enthält eine Vielzahl etablierter, einfach umsetzbaren Praktiken rund um die Verbesserung. aim42 funktioniert komplett unabhängig von Technologie und ist sowohl in kleinen wie auch größeren Umfeldern einsetzbar.

    Der Vortrag zeigt Highlights und grundlegenden Ansätze von aim42, nutzt dazu Beispiele unterschiedlicher Fachdomänen.

    Einige Stichworte:

    • Problemanalyse muss Breiten- und Tiefensuche kombinieren
    • Böse Fallen statischer Codemetriken
    • Nichtlineare Beziehungen zwischen Problemen und Lösungen
    • Wie schlimm ist ein Problem wirklich?
    • Wie erkläre ich meinem Manager mein technisches Problem?
    • Kategorien von Verbesserungsmaßnahmen
    Mehr lesen
  • When Microservices Meet Real-World Projects: Lessons Learned

    Vortrag Alexander Heusingfeld JUG Dortmund Spring Event Folien verfügbar

    Als Berater sehen wir oft beide Seiten der Medaille: Auf der einen Seite arbeiten wir mit Leading-Edge-Technologien, die meist gerade erst marktreif sind. Auf der anderen Seite stehen Kunden mit sehr konservativen Betriebsabteilungen, Legacy-Systemen und strikten Reglementierungen zur Datensicherheit.

    In dieser Session möchten wir von den Erfahrungen berichten, die wir im Beratungsalltag sammeln durften. Was bedeutet eigentlich “pets vs. cattle”? Warum soll sich ein Entwickler mit den Business-Use-Cases auseinandersetzen? Warum können IT-Projekte auf Grund der Unternehmensorganisationen scheitern, und was hat eine DevOps-Mentalität mit Perspektivenwechsel zu tun? Wir zeigen Wege, wie wir eine Legacy-Anwendung iterativ modernisiert und in mehrere, leichter wartbare Self-Contained-Systeme aufgeteilt haben. Dabei werden nicht nur die unterschiedlichen Ebenen von Architekturentscheidungen herausgestellt, sondern auch die Auswirkungen auf die Organisationsstruktur und kritische Punkte auf dem Weg verdeutlicht.

    Mehr lesen
  • Den Modernisierungsmotor anwerfen

    Vortrag Martin Schmidt innoQ-Themenabend: Digitale Transformation

    Die Digitale Transformation / Modernisierung stellt neue Herausforderungen an die IT. Martin Schmidt spricht in seinem Vortrag darüber, wie Sie den «Modernisierungsmotor» anwerfen können. Das Ziel ist es, Strategie, Organisation und Technologien in Einklang zu bringen. Dabei sind die richtigen Ansatzpunkte und die Modernisierung als stabilisierender Faktor für die Transformation entscheidend.

    Mehr lesen
  • Legacy Systeme modernisieren mit Microservices, Hystrix und RxJava

    Vortrag Holger Kraus, Arne Landwehr OOP 2016 – Software meets Business Folien verfügbar

    Als Software-Entwickler ist man nur sehr selten in der Situation, ein völlig neues System auf der Basis neuester Technologien entwickeln zu dürfen. Oft sollen bestehende Systeme nur um viele kleinere Features erweitert werden. Die Renovierung der grundlegenden Systemarchitektur und die Einführung neuer Programmierparadigmen sind in diesem Umfeld schwierig. Umso wichtiger ist es, dass man die Modernisierung von Altsystemen zu einem fortlaufenden Bestandteil auch des Feature-getriebenen Entwicklungsprozesses macht.

    In diesem Vortrag möchten wir zeigen, wie auch größere, monolithische Altsysteme mithilfe der offenen Netflix-Bibliotheken schrittweise in Richtung einer Microservice-Achitektur weiterentwickelt werden können. Hystrix kann dabei einen wertvollen Beitrag zur Gesamtstabilität des entstehenden verteilten Systems leisten.

    Der Einsatz von RxJava eröffnet eine gute Möglichkeit, den Anteil von asynchronen Prozessen innerhalb der Legacy-Architektur zu erhöhen. Der Vortrag wird anhand von Beispielen demonstrieren, wie der hier angedeutete Modernisierungsprozess umgesetzt werden kann.

    Mehr lesen
  • Wider die Mikroskop-Falle: Die wahren Probleme Ihrer Software finden

    Vortrag Gernot Starke OOP 2016 – Software meets Business Folien verfügbar

    Wenn wir Software verbessern oder bewerten wollen, müssen wir eine möglichst präzise Vorstellung der existierenden Probleme oder technischen Schulden erarbeiten. Vordergründig bietet sich Quellcode zur Suche an, die meisten der typischen Code- und Architektursmells werden Sie schon kennen. Ich zeige Ihnen jedoch einige weitere typische Problemzonen auf, etwa Daten- und Datenstrukturen, Schnittstellen, technische Infrastruktur, querschnittliche technische Konzepte, Entwicklungs- und Betriebsprozesse sowie die beteiligten Menschen – überall lauern Probleme und Risiken. Zusätzlich lernen Sie typische Fallen bei der Problemanalyse kennen, etwa die Mikroskopfalle oder die Widerstandspyramide, die Ihre Problemsuche schnell zu Albträumen werden lassen.

    Als Ausblick zeige ich Ihnen, ganz analog zur Bauch-Beine-Po Gymnastik, einige etablierte Praktiken zur Abhilfe auf und weise damit den Weg zur systematischen Verbesserung und Evolution von Software.

    Ich führe hier auf pragmatische Weise die Disziplin “Ganzheitliche System- und Architekturbewertung” ein, bei der Methoden wie ATAM in der Praxis nur einen zu kleinen Teil der gesamten Probleme erfassen. “Qualitative wie auch quantitative Analysen in erweitertem Suchraum” wäre wohl eine etwas seriösere Formulierung des Titels.

    Ich verspreche den Teilnehmern praxisnahe, umsetzbare Hinweise, um in eigenem Kontext/System Probleme und Risiken zu identifizieren - und parallel dazu typische Verbesserungsansätze zu erkennen.

    Mehr lesen
  • Warum Programmierer an ihren Software-Systemen riechen müssen

    Link Gernot Starke

    Die Redaktion von jaxenter.de hat sich am Rand des Software Architecture Summit in Berlin mit Gernot Starke über die Evolutions on Softwaresystemen unterhalten. Wenn Ihr Softwaresystem langsam ist und Schwierigkeiten damit hat, sich “weiterzuentwickeln”, ist es gut möglich, dass Ihr Team nur eindimensional arbeitet. Lesen Sie mehr dazu im Interview.

  • Microservices in the Real World

    Link Alexander Heusingfeld, Tammo van Lessen

    InfoQ did an interview with our colleagues Alexander Heusingfeld and Tammo van Lessen about getting people from operations involved in architecture and dealing with “us vs. them” behavior when applying DevOps. They also talked about what the Self-Contained Systems approach is and how it can be used to modernize software systems, similarities and differences between the Self-Contained Systems approach and microservices, improving deployment pipelines and using measurements in deployment, and about their experiences with a “getting out of your comfort zone” program.

  • Microservices zur Architektur­modernisierung

    Vortrag Alexander Heusingfeld, Michael Vitz Microservices Summit

    Dieser Workshop adressiert ein klassisches Dilemma der IT: Eine große, monolithische Anwendung, kritisch und wichtig, und innerlich ungeheuer schwer und aufwändig zu warten. Um auf fachliche Änderungen und dynamische Märkte schneller reagieren zu können, müssen wir dieses Altsystem modularisieren und strukturell sowie konzeptionell modernisieren – dabei aber kontinuierlich (hoch) verfügbar halten. Ganz nebenbei verfügen wir natürlich nur über ein eingeschränktes Budget… Wir zeigen Ihnen anhand etablierter Praktiken und Patterns (aus dem Fundus von aim42.org) typische Möglichkeiten auf, solche Projekte anzugehen und Stück für Stück die Architektur des Gesamtsystems zu modernisieren. Hierbei unterstützen uns u.A. Bibliotheken wie Hystrix dabei die Risiken dieser Umstellung zu managen und auch zu visualisieren. Nach dem Workshop haben Sie einige anwendbare Muster kennengelernt, mit deren Hilfe Sie Ihre eigenen Monolithen wieder zu besser wartbaren Systemen migrieren können.

    Mehr lesen
  • When Microservices Meet Real-World Projects

    Vortrag Alexander Heusingfeld GOTO Conference Berlin 2015 Folien verfügbar

    As a consultant, Alexander Heusingfeld has seen both sides of the coin: on the one hand, he gets to know the leading-edge technologies that have just become ready for the market. On the other hand, there are customers with conservative operation teams, legacy systems, and strict data security regulations.

    In this session, he shares some learnings from consulting gigs, talks about what business domain thinking means, and why the DevOps mindset can change the team spirit. He explains some of the approaches he used to iteratively modernize legacy systems into multiple self-contained systems, the different levels of architectural decisions that have to be taken and the impact of this architectural approach on a classic organization structure.

    Mehr lesen
  • Hitliste der Legacy-Sünden

    Vortrag Eberhard Wolff W-JAX 2015 Folien verfügbar

    Jeder kennt Systeme mit schlechter Codequalität und Architektur – und die sind schwer änderbar. Aber andere Faktoren sind oft noch viel wichtiger. Was ist mit Tests? Oder dem Releaseprozess? Dieser Vortrag zeigt die populärsten Sünden in Legacy-Anwendungen, wie man sie beheben kann und so ein erfolgreiches Projekt auch mit einer alten Codebasis umsetzen kann.

    Mehr lesen

    Know your Enemies: Problembewusstsein als Grundlage von Änderungs- und Evolutionsprojekten

    Vortrag Gernot Starke W-JAX 2015 Folien verfügbar

    Die meiste Zeit verbringen wir in der Softwareentwicklung mit Änderung oder Verbesserung bestehender Systeme. Dabei ist es besonders wichtig, an den richtigen Stellen zu ändern (und nicht willkürlich die bekannten Refactoring-Patterns anzuwenden).

    Ich zeige auf, wie Sie systematisch die aus langfristiger und ökonomischer Sicht schlimmsten Probleme in Ihren Softwaresystemen und -architekturen finden können und wie Sie dann deren Lösung angehen können. Dabei spannen wir den Bogen von der Analyse der beteiligten Stakeholder und externen Schnittstellen über verschiedene Ansätze der (quantitativen) Code- und (qualitativen) Architekturanalyse bis hin zu fortgeschrittenen Themen wie Datenanalyse, Prozessanalyse oder Kontextanalyse. Anhand realer Probleme aus mittleren und großen Projekten zeige ich auf, dass die “Feinde” manchmal an überraschenden Stellen lauern.

    Mehr lesen
  • Microservices Meet Real-World Projects: Lessons Learned

    Vortrag Alexander Heusingfeld, Tammo van Lessen JavaOne Conference 2015 Folien verfügbar

    As consultants, this session’s speakers regularly see both sides of the coin: on the one hand, they get to know the leading-edge technologies that have just become ready for the market. On the other hand, there are customers with conservative operation teams, legacy systems, and strict data security regulations. In this session, they share some learnings from their consulting gigs, what business domain thinking did to their customers, and why the DevOps mindset changed the team spirit. They explain the different approaches they used to iteratively modernize a big Java legacy system into multiple self-contained systems, the different levels of architectural decisions they made, the impact on a classic organization structure, and the critical points along the way.

    Mehr lesen
  • Evolutionsstrategien: Refactoring im (ganz) Großen

    Vortrag Gernot Starke The Architecture Gathering 2015

    Evolution und Verbesserung von Software müssen neben den Code-Umbauten im Kleinen auch das Große Ganze im Fokus halten, die langfristige Strategie: Wollen wir das bestehende System komplett ersetzen, oder nur Teile austauschen? Wollen wir einen Big-Bang, eine Database-first Migration, Legacy-Strangulation oder einen Change-by-Split?

    In diesem Vortrag möchte ich Ihnen diese und andere Ansätze vorstellen, damit Sie für die langfristige, systematische Verbesserung Ihrer eigenen Systeme besser planen können.

    Mehr lesen
  • Legacy Systeme modernisieren mit Microservices, Hystrix und RxJava

    Vortrag Holger Kraus, Arne Landwehr Berlin Expert Days 2015

    Als Software-Entwickler ist man nur sehr selten in der Situation, ein völlig neues System auf der Basis neuester Technologien entwickeln zu dürfen. Oft sollen bestehende Systeme nur um viele kleinere Features erweitert werden.

    Die Renovierung der grundlegenden Systemarchitektur und die Einführung neuer Programmierparadigmen ist in diesem Umfeld schwierig. Umso wichtiger ist es, dass man die Modernisierung von Altsystemen zu einem fortlaufenden Bestandteil auch des Feature-getriebenen Entwicklungsprozesses macht.

    In diesem Vortrag möchten wir zeigen wie auch größere, monolithische Altsysteme mithilfe der offenen Netflix-Bibliotheken schrittweise in Richtung einer Microservice-Achitektur weiterentwickelt werden können. Hystrix kann dabei einen wertvollen Beitrag zur Gesamtstabilität des entstehenden verteilten System leisten.

    Der Einsatz von RxJava ein gute Möglichkeit den Anteil von asynchronen Prozessen innerhalb der Legacy-Architektur zu erhöhen. Der Vortrag wird anhand von Beispielen demonstrieren wie der hier angedeutete Modernisierungsprozess umgesetzt werden kann.

    Mehr lesen
  • ANALYZE: So finden Sie die Probleme Ihrer Software

    Vortrag Gernot Starke Software Architecture Summit 2015

    Zu Beginn jeder systematischen Verbesserung Ihrer Systeme sollten Sie einen Überblick über deren Problemzonen haben (die oftmals über banale Code- oder Performanceprobleme hinausgehen).

    Im Workshop stelle ich die typischen Problemzonen mittlerer und großer Softwaresysteme vor und zeige eine Menge Praktiken und Vorgehensweisen, wie Sie solche Probleme in Ihren eigenen Systemen analysieren können. Neben Code, Technologie sowie Architektur bekommen auch Infrastruktur, Daten und Prozesse die ihnen zustehende Aufmerksamkeit.

    Am Ende haben Sie einen pragmatischen Katalog und eine Menge Ansätze, Ihre eigenen Systeme selbständig zu analysieren. Schließlich gehe ich darauf ein, wie Sie mit diesem „Haufen Probleme“ sinnvoll umgehen und darauf eine „evolutionäre Verbesserung“ basieren können.

    Mehr lesen
  • Code: Lieber Redundanz oder lieber Reuse?

    Artikel Eberhard Wolff

    In einem neuen Artikel auf Heise Developer beschäftigt sich Eberhard Wolff mit der Wiederverwendung von Code.

    Wiederverwendung war der heilige Gral der Softwareentwicklung. Was Entwickler wiederverwenden können, müssen sie nicht noch einmal schreiben. Das ermöglicht ungeahnte Produktivitätssprünge, so dachte man. Mittlerweile hat sich aber einiges geändert – und sogar redundanter Code zeigt seine Vorteile. Auch Redundanzfreiheit ist nur ein Trade-off.

  • JAX TV: Die Hitliste der Legacy-Sünden, ein JAX 2015-Talk von Eberhard Wolff

    Link Eberhard Wolff

    Jeder kennt Systeme mit schlechter Codequalität und Architektur – und die sind schwer änderbar. Aber andere Faktoren sind oft noch viel wichtiger. Was ist mit Tests? Oder dem Releaseprozess? Eberhard Wolff zeigt in diesem Vortrag die populärsten Sünden in Legacy-Anwendungen, wie man sie beheben kann und so ein erfolgreiches Projekt auch mit einer alten Codebasis umsetzen kann.

  • Schluss mit Verschlimmbesserung: Software-Evolution, aber richtig

    Vortrag Gernot Starke Dev Day 2015

    In diesem Talk erfahren Sie, worauf es bei Evolution, Wartung und Änderung von Software wirklich ankommt. Den größten Teil unseres Informatikerlebens verbringen wir mit Anpassungen bestehender Systeme - und genau diesen Teil ignoriert die klassische IT-Ausbildung. Ich zeige einen pragmatischen und systematischen Lösungsweg aus diesem Dilemma - und verspreche Ihnen Bausteinen wesentlicher Lösungsansätze:

    • So finden Sie die schlimmsten Probleme
    • So überzeugen Sie Ihr Management von Umbaumaßnahmen
    • So gehen Sie kurz-, mittel- und langfristig Verbesserungs- und Evolutionsprojekte an
    Mehr lesen
  • Modernization of legacy systems with microservices, Hystrix and RxJava

    Vortrag Holger Kraus JEEConf

    As a software developer you are not very often in the situation where you develop a completely new system from scratch based on recent techonologies. More often just small features have to be integrated in already existing systems. A change of the basic software architecture and an introduction of new programming paradigms are very difficult in this context. It is all the more important to make the modernization of a legacy systems an ongoing part of the feature-driven development process.

    In this talk I will show step by step how to transform a big, monolithic legacy system towards a modern microservice based architecture. I will also demonstrate how two open libraries from Netflix can support this process. Hystrix will help us to improve the overall stability of the system and RxJava will help us to handle asynchronous processes in a more elegant way. Based on examples I will show how the suggested modernization process could be realised.

    Mehr lesen
  • Know your Enemies – Problembewusstsein als Grundlage von Änderungs- und Evolutionsprojekten

    Vortrag Gernot Starke JAX 2015 Folien verfügbar

    Die meiste Zeit verbringen wir in der Softwareentwicklung mit Änderung oder Verbesserung bestehender Systeme - dabei ist es besonders wichtig, an den richtigen Stellen zu ändern (und nicht willkürlich die bekannten Refactoring-Patterns anzuwenden). Ich zeige auf, wie Sie systematisch die aus langfristiger und ökonomischer Sicht schlimmsten Probleme in Ihren Softwaresystemen und -architekturen finden können - und wie Sie dann deren Lösung angehen können. Dabei spannen wir den Bogen von der Analyse der beteiligten Stakeholder und externen Schnittstellen über verschiedene Ansätze der (quantitativen) Code- und (qualitativen) Architekturanalyse bis hin zu fortgeschrittenen Themen wie Datenanalyse, Prozessanalyse oder Kontextanalyse. Anhand realer Probleme aus mittleren und großen Projekten zeige ich auf, dass die “Feinde” manchmal an überraschenden Stellen lauern.

    Mehr lesen
  • Systeme modernisieren mit Microservices, Hystrix und RxJava

    Vortrag Holger Kraus, Arne Landwehr JavaLand 2015

    Als Softwareentwickler ist man nur sehr selten in der Situation, ein völlig neues System auf der Basis neuester Technologien entwickeln zu dürfen. Oft sollen bestehende Systeme nur um viele kleinere Features erweitert werden. Die Renovierung der grundlegenden Systemarchitektur und die Einführung neuer Programmierparadigmen ist in diesem Umfeld schwierig. Umso wichtiger ist es, dass man die Modernisierung von Altsystemen zu einem fortlaufenden Bestandteil auch des Feature-getriebenen Entwicklungsprozesses macht. In diesem Vortrag möchten wir zeigen wie auch größere, monolithische Altsysteme mithilfe der offenen Netflix-Bibliotheken schrittweise in Richtung einer Microservice-Achitektur weiterentwickelt werden können. Hystrix kann dabei einen wertvollen Beitrag zur Gesamtstabilität des entstehenden verteilten System leisten. Der Einsatz von RxJava ein gute Möglichkeit den Anteil von asynchronen Prozessen innerhalb der Legacy-Architektur zu erhöhen. Der Vortrag wird anhand von Beispielen demonstrieren, wie der hier angedeutete Modernisierungsprozess umgesetzt werden kann.

    Mehr lesen
  • KEYNOTE: Software ändern - aber richtig

    Vortrag Gernot Starke Software Quality Days 2015

    Ich möchte Ihnen nahebringen, worauf es bei Evolution, Wartung und Änderung von Software wirklich ankommt. Der größte Teil des Software Lifecycle änder und erweitern wir bestehende Systeme - oftmals leidet darunter deren Qualität. Als Konsequenz steigen Änderungskosten und -risiken beständig an - sehr zum Unbill der Verantwortlichen.

    In dieser Keynote zeige ich auf, wie Sie technische und betriebswirtschaftliche Anforderungen an solche Änderungen verbinden können - um auch langfristig eine hohe Qualität von Systemen sicherzustellen.

    Sie erhalten in Form von Mustern und methodischen Bausteinen wesentliche Lösungsansätze erläutert - beispielsweise für den Umgang mit technischen Schulden und die langfristige Organisation von Verbesserungsmaßnahmen.

    Mehr lesen
  • Darwin und Godot - Über Evolution und Wartung

    Vortrag Gernot Starke W-JAX 2014

    Keine Sorge, es geht weder um Biologie noch um Theater, vielmehr möchte ich Ihnen nahebringen, worauf es bei Evolution, Wartung und Änderung von Software wirklich ankommt. Den größten Teil unseres Informatikerlebens verbringen wir mit Anpassungen bestehender Systeme - und genau dieser Teil kommt in der klassischen Ausbildung praktisch nicht vor. Zuerst fasse ich für Sie die wesentlichen Gründe für Änderungen zusammen. Anschließend erkläre ich in Form von Mustern und methodischen Bausteinen wesentliche Lösungsansätze:

    • Sinnvolles Verhalten, wenn Sie mehr Probleme als Budget haben
    • So finden Sie die schlimmsten Probleme
    • So überzeugen Sie Ihr Management von Umbaumaßnahmen
    • So finden Sie schlechten Code
    • So gehen Sie mit technischen Schulden um
    Mehr lesen
  • Software ändern, aber richtig!

    Vortrag Gernot Starke Java User Group Darmstadt

    In diesem Vortrage bringe ich Ihnen nahe, worauf es bei Evolution, Wartung und Änderung von Software wirklich ankommt. Den größten Teil unseres Informatikerlebens verbringen wir mit Anpassungen bestehender Systeme – und genau dieser Teil kommt in der klassischen Ausbildung praktisch nicht vor.

    Zuerst fasse ich für Sie die wesentlichen Gründe für Änderungen zusammen. Anschliessend erkläre ich in Form von Mustern und methodischen Bausteinen wesentliche Lösungsansätze:

    • Sinnvolles Verhalten, wenn Sie mehr Probleme als Budget haben.
    • So finden Sie die schlimmsten Probleme.
    • So überzeugen Sie Ihr Management von Umbaumaßnahmen.
    • So gehen Sie mit technischen Schulden um.
    Mehr lesen
  • Vorsicht: Schuldenfalle — Was die IT aus der Finanzwelt lernen kann

    Vortrag Tammo van Lessen, Jörg Nitzsche Herbstcampus 2014

    Schulden machen ist leicht, zu leicht manchmal und ehe man sich versieht, hat man Mühe die Schuldenlast zurück zu zahlen. Ähnlich verhält es sich auch bei Softwarearchitektur. Ein “das fixen wir später” hier, “die Dokumentation ziehen wir nach der Abnahme nach” dort, ein kleiner Hack da, ein schnelles Feature dazu und schon sieht man sich einer degenerierten Software(architektur) gegenüber, die hohe Wartungskosten nach sich zieht und eine weitere Entwicklung nur bedingt zulässt.

    Damit es nicht so weit kommt muss man sich der Schulden bewusst sein, die man durch manche Entscheidungen aufnimmt und muss den Schuldenberg im Griff behalten.

    In diesem Vortrag gehen wir auf verschiedene Arten technischer Schulden ein und zeigen Wege auf, wie man ihnen im Projektalltag begegnet.

    Zielgruppe: Entwickler, Architekten, Projektleiter

    Mehr lesen
  • Software Improvement – Done Right

    Vortrag Gernot Starke, Alexander Heusingfeld European Conference on Software Architecture (ECSA) 2014 Folien verfügbar

    Greenfield development is a rare luxury in the software world. Usually developers and software architects have to enhance, modify or repair existing systems. The emphasis of changes lies on additional features, instead of architectural, structural or conceptual improvement – often resulting from restricted budgets and severe timing constraints.

    This tutorial helps you out of this maintenance dilemma – by showing how to:

    • identify important and valuable improvement opportunities within your system,
    • convince management that architectural evolution is neccessary – and which benefits and risks to expect,
    • find appropriate solution approaches to technical problems and risks,
    • maintain conceptual integrity of your system over its complete lifetime – keeping understandability high and maintenance costs an adequate ranges.

    We introduce aim42 – the (open source) methodical approach to systematic architecture improvement.

    aim42 relies on a few clear domain concepts and works iteratively in three phases (analyze, evaluate, improve) supported by crosscutting activities. For each phase, In the tutorial, you experience many of the proven and established practices and patterns contained in aim42. We explain how to addresses both business and technical stakeholders of your system.

    By participating, you enhance your own methodical toolset by various practices to identify problems and issues, evaluate those in economical terms and find technical and structural remedies for improvement.

    All our content is backed by intensive experience. We cover detailed examples from various domains and projects, and provide practical tipps on how to improve your own systems.

    Mehr lesen
  • Software ändern, aber richtig - mit AIM42

    Vortrag Alexander Heusingfeld JUG Dortmund Sommerfest Folien verfügbar

    Den größten Teil unseres Informatikerlebens verbringen wir mit Anpassungen an bestehenden Systemen - genau dieser Teil kommt in der klassischen Ausbildung aber praktisch nicht vor. In diesem Lightning-Talk sprechen wir über Software-Änderungen, welche Ursachen sie haben, wo es häufig zu Meinungsverschiedenheiten bzgl. Prioritäten zwischen Entwicklung und Fachabteilung kommt und zeigen wie aim42 mit Hilfe von Mustern und methodischen Bausteinen diese Schwierigkeiten überbrücken helfen kann.

    http://www.jugdo.de/2014/08/08/sommer-event-programm/

    Mehr lesen
  • Using Scala to Drive Modernization in Enterprise Environments

    Vortrag Martin Schmidt 5th Annual Scala Workshop Folien verfügbar

    Enterprise Environments tend to show resistance to change. innoQ has been involved in many modernization projects for customers, especially in combination with vast architectural tasks and re-engeering. Based on this experience, Martin will show how Scala can help to push modernization efforts and bring the desired changes to these companies.

    Mehr lesen
  • Software systematisch verbessern

    Artikel Gernot Starke

    Die Informatik-Ausbildung fokussiert auf die Neuentwicklung von Software – den Alltag vieler Softwerker prägen jedoch meist Pflege, Änderung oder Erweiterung von Systemen. In diesem Artikel stelle ich Ihnen aim42 vor, ein systematisches Vorgehen zur Verbesserung von Software. aim42 ist frei verfügbar und kondensiert Praktiken und Patterns rund um Evolution, Änderung und Wartung von IT-Systemen.

    Mehr lesen
  • Software ändern - aber richtig

    Vortrag Gernot Starke rheinjug Düsseldorf Folien verfügbar

    Ich bringe Ihnen nahe, worauf es bei Evolution, Wartung und Änderung von Software wirklich ankommt. Den größten Teil unseres Informatikerlebens verbringen wir mit Anpassungen bestehender Systeme - und genau dieser Teil kommt in der klassischen Ausbildung praktisch nicht vor. Zuerst fasse ich für Sie die wesentlichen Gründe für Änderungen zusammen. Anschliessend erkläre ich in Form von Mustern und methodischen Bausteinen wesentliche Lösungsansätze:

    • Sinnvolles Verhalten, wenn Sie mehr Probleme als Budget haben
    • So finden Sie die schlimmsten Probleme
    • So überzeugen Sie Ihr Management von Umbaumaßnahmen
    • So gehen Sie mit technischen Schulden um
    Mehr lesen
  • Vorsicht Schuldenfalle — was die IT aus der Finanzwelt lernen kann

    Vortrag Tammo van Lessen, Jörg Nitzsche JAX 2014 Folien verfügbar

    Schulden machen ist leicht, zu leicht manchmal und ehe man sich versieht, hat man Mühe die Schuldenlast zurück zu zahlen. Ähnlich verhält es sich auch bei Softwarearchitektur. Ein “das fixen wir später” hier, “die Dokumentation ziehen wir nach der Abnahme nach” dort, ein kleiner Hack da, ein schnelles Feature dazu und schon sieht man sich einer degenerierten Software(architektur) gegenüber, die hohe Wartungskosten nach sich zieht und eine weitere Entwicklung nur bedingt zulässt.

    Damit es nicht so weit kommt muss man sich der Schulden bewusst sein, die man durch manche Entscheidungen aufnimmt und muss den Schuldenberg im Griff behalten. Das gilt für traditionelle Softwareprojekte gleichermaßen wie für SOA- und BPM-Projekte.

    In diesem Vortrag gehen wir auf verschiedene Arten technischer Schulden ein und zeigen Wege auf, wie man ihnen im Projektalltag begegnet.

    Mehr lesen
  • Vorsicht Schuldenfalle — was die IT aus der Finanzwelt lernen kann

    Vortrag Tammo van Lessen, Jörg Nitzsche BPM Integration Days 2014

    Schulden machen ist leicht, zu leicht manchmal und ehe man sich versieht, hat man Mühe die Schuldenlast zurück zu zahlen. Ähnlich verhält es sich auch bei Softwarearchitektur. Ein “das fixen wir später” hier, “die Dokumentation ziehen wir nach der Abnahme nach” dort, ein kleiner Hack da, ein schnelles Feature dazu und schon sieht man sich einer degenerierten Software(architektur) gegenüber, die hohe Wartungskosten nach sich zieht und eine weitere Entwicklung nur bedingt zulässt.

    Damit es nicht so weit kommt muss man sich der Schulden bewusst sein, die man durch manche Entscheidungen aufnimmt und muss den Schuldenberg im Griff behalten. Das gilt für traditionelle Softwareprojekte gleichermaßen wie für SOA- und BPM-Projekte.

    In diesem Vortrag gehen wir auf verschiedene Arten technischer Schulden ein und zeigen Wege auf, wie man ihnen im Projektalltag begegnet.

    Mehr lesen
  • Versionsmanagement auf dem Tanker

    Artikel Andreas Krüger

    In verschiedenen großen Projekten mit festen Releasezyklen hat der Autor bestimmte Situationen ganz ähnlich mehrfach erlebt. Dieser Artikel berichtet von typischen Herausforderungen aus Versionsmanagement-Sicht, die sich in solchen Situationen ergeben und von praxiserprobten Möglichkeiten, sie zu meistern.

    Mehr lesen
  • NoSQL - Einsatzgebiete für die neue Datenbank-Generation

    Artikel Dirk Lingstädt

    NoSQL ist derzeit in aller Munde, obwohl manche Konzepte und Technologien schon seit Jahrzehnten bestehen. Der Begriff umspannt inzwischen derart viele Datenbank-Kategorien und -Produkte, dass es oft zu Verwirrungen und falschen Annahmen über den geeigneten Einsatz kommt. Dieser Artikel betrachtet anhand konkreter Beispielszenarien die Kriterien, die bei der Entscheidung für ein klassisches relationales Datenbanksystem oder eine der NoSQL-Varianten eine Rolle spielen.

    Mehr lesen