Konferenzprogramm

Thema: Legacy / Tests / Verifikation

Nach Tracks filtern
Nach Themen filtern
Alle ausklappen
  • Dienstag
    22.10.
  • Mittwoch
    23.10.
  • Donnerstag
    24.10.
, (Dienstag, 22.Oktober 2024)
10:10 - 10:55
Di2.1
How to Read Code (Properly)
How to Read Code (Properly)

Why are we always complaining about old code? Why are we rarely happy when digging into old stuff, especially old code by other people?

It is very tempting to believe that you can easily do it better than that. And that you can improve the situation by rewriting code. By making stuff simpler. In the first park of this talk, I will dive into why we believe this. Expect some insights into psychology and into how our brains work :)

Second part: Why we are wrong, most of the times. Again, this will be about psychology and biases, about code reading and about the IT as a business.

I'm Anja, Principal Fullstack Engineer working at Mister Spex @ Berlin, Germany. We are right now breaking down a monolith and replacing parts of it by future-ready technology. Previously, I have worked for eBay.
Also, I'm sports enthusiast and current local champion in wakeskating. I love to find and cross the borders of what seems achievable.

Anja Kunkel
10:10 - 12:15
Di3.1
Combining Event Storming and Hexagonal Architecture with Test-Driven Development
Combining Event Storming and Hexagonal Architecture with Test-Driven Development

This workshop utilises insights from a previous Event Storming session to design a well-structured hexagonal architecture for a software system. Clear and intuitive naming conventions are prioritized to ensure that the resulting design accurately reflects the intricacies of the domain. Test-Driven Development (TDD) principles are embraced to move seamlessly from concept to implementation, fostering a rigorous and iterative development process. By combining EventStorming, Hexagonal Architecture, and TDD, participants can understand how these methodologies work together to create robust software solutions.

Join us for 2–3 hours of learning and fun. Bring your notebook and have your development environment (IDE) ready to write tests and code!

Patrick Baumgartner works as a passionate software crafter, coach, and trainer at 42talents. He works with people to create beautiful and simple solutions and enjoys building software for the cloud with Java, the Spring ecosystem, Neo4j and ElasticSearch and other open-source technologies. 

Khaled is a versatile tech professional with experience in development, architecture, auditing, coaching, and team leadership. He has worked in Tunisia, France, Canada, and Switzerland for over a decade.

Patrick Baumgartner, Khaled Souf
Patrick Baumgartner, Khaled Souf

Vortrag Teilen

16:25 - 17:25
Di1.5
Domain Re-discovery Patterns for Legacy Code
Domain Re-discovery Patterns for Legacy Code

In the world of software development, legacy code often poses significant challenges. Existing codebases, built years ago, may lack documentation and understanding of the original domain. This lack of knowledge can hinder effective maintenance, upgrades, and feature development. The process of rediscovering the domain of legacy code is invaluable for developers seeking to enhance and extend these systems.

In this talk we'll delve into various domain re-discovery patterns that help in identifying and reconstructing the domain model that the legacy code represents. These patterns go beyond merely deciphering the code's functionality; rather, they provide strategies to comprehend the underlying concepts, behaviors, and relationships in the domain.

Attendees can expect to gain practical insights, methodologies, and practical tips to tackle the challenges associated with legacy codebases. By embracing domain rediscovery patterns, developers can bring order and coherence to legacy systems, paving the way for future enhancements and system evolution.

Richard is a software archeologist, tailor and auditor. After 10 years in the business he's almost no longer a junior and about to become a teenager developer. He's consulted legacy and greenfield projects at all large german organizations or knows someone who has and has now held multiple talks about his experience at international conferences and meetups. He enjoys mastering TDD, BDD, DDD, decoupled design and even practices that don't include two D's. Most importantly though is that he likes to break the fourth wall and engage his audience. Do you like that as well?

Richard Groß
Richard Groß
Vortrag: Di1.5

Vortrag Teilen

16:25 - 17:25
Di2.5
Qualität trotz immer kürzerer Releasezyklen – mit Continuous Quality Control
Qualität trotz immer kürzerer Releasezyklen – mit Continuous Quality Control

Softwareentwicklung muss branchenübergreifend immer kürzeren Releasezyklen gerecht werden. Dieser Trend hat starke Auswirkungen auf die Qualitätssicherung, denn wir können Releases nicht länger in dedizierten Test- und Stabilisierungsphasen absichern. Vielmehr müssen wir dafür sorgen, dass unsere Softwaresysteme praktisch jederzeit die Qualitätsansprüche für ein Release erfüllen. Deshalb führen wir mit "Continuous Quality Control" Maßnahmen zur Qualitätssicherung (Codeanalyse, Tests, Reviews) entwicklungsbegleitend und änderungsgetrieben durch.

Dieser Vortrag erklärt auf Basis der Erfahrung von 10 Jahren und dutzenden Kundenprojekten, wie Continuous Quality Control funktioniert. Die Teilnehmer lernen, wie sie

  • erstens statische Codeanalyse änderungsgetrieben einsetzen können, um Qualitätsdefizite zu vermeiden und historisch gewachsene Systeme zu verbessern,
  • zweitens mit Test-Gap-Analyse risikoorientiert automatisierte Test-Suites aufbauen können, und
  • drittens durch Reviews und Retrospektiven Transparenz schaffen, das Entwicklungsteam abholen und ein gemeinsames Qualitätsbewusstsein verankern können.

Dr. Tobias Röhm hat über Softwareanalysen und Programmverstehen promoviert, mehrere Jahre als Freelancer Software entwickelt und ist seit vielen Jahren Berater für Softwarequalität. Zusammen mit seinem Team unterstützt er etwa vierzig  Kunden-Entwicklungsteams, Qualitätsanalysen nutzbringend einzusetzen und alltagstaugliche Qualitätssicherungsprozesse aufzusetzen und zu leben. Er hat Best-Paper-Awards auf zwei renommierten wissenschaftlichen Konferenzen gewonnen und spricht regelmäßig auf (inter-) nationalen Konferenzen wie DWX, ESE, JFS und OOP.

Tobias Röhm
Tobias Röhm
Vortrag: Di2.5

Vortrag Teilen

, (Mittwoch, 23.Oktober 2024)
10:10 - 10:55
Mi1.1
Lebendige Softwarearchitektur in Langzeit-Projekten
Lebendige Softwarearchitektur in Langzeit-Projekten

Wie schafft man es, die sich stetig ändernden Anforderungen in Langzeit-Projekten kontinuierlich umzusetzen? Bestehende Qualitätsanforderungen stehen immer in einem Spannungsfeld zu neuen Qualitätsanforderungen und neuen fachlichen Anforderungen. Das lässt sich besonders bei Legacy-Software beobachten: Dort ist es typischerweise entscheidend, dass das System erweiterbar und wartbar bleibt – dies bringt aber oft größere Anpassungen der Architektur mit sich.

Dieses Dilemma beleuchten wir anhand eines etwa 8 Jahre alten Projekts zur Verwaltung und Auslieferung von Firmware-Updates für IoT-Geräte. Wir betrachten konkrete Beispiele, wie wir in der Praxis die Architektur des Systems kontinuierlich an neue Anforderungen angepasst haben.

Dazu stellen wir unter anderem die Einführung eines neuen Technologiestacks, die Anpassung eines Prozesses an vollständig geänderte Qualitätsanforderungen und das Error Handling in unserer Microservice-Landschaft vor.

Als leidenschaftlicher Softwareentwickler und Architekt hat Benedikt Hunger bei der Scandio GmbH seine Begeisterung für Softwarearchitektur entdeckt. In agilen Projekten im Versicherungsumfeld sowie der IoT-Branche trägt er nicht nur zur Entwicklung der Software bei, sondern übernimmt auch die Kommunikation mit externen Stakeholdern und die explizite Anforderungsanalyse. Bei der Entwicklung legt er besonderen Wert darauf, dass langfristige Ziele und Konsequenzen stets im Blick behalten werden.

Studied CS (Informatik) B.Sc at University of Augsburg. 

Worked as an intern and working student at Secomba GmbH, helping with the development of Boxcryptor, a cloud encryption software product.

Then started as a full time employee at Scandio, working on the firmware distribution solution for BSH IoT home appliances.

Benedikt Hunger, Lisa Bez
Benedikt Hunger, Lisa Bez

Vortrag Teilen

11:15 - 12:15
Mi1.2
Legacy-Migration – aber bitte getestet
Legacy-Migration – aber bitte getestet

Migration von lange gewachsener Legacy-Softwareentwicklung birgt von vornherein viele Risiken. Häufig ist das Detailwissen zu großen Teilen der Fachlichkeit verloren gegangen. Der Code ist komplex und Tests gibt es sowieso nicht. Da liegt es in der Natur der Sache, dass der Aufwand für ein Migrationsprojekt schwer geschätzt werden kann. Das Ergebnis sind häufig Zeit- oder Budget-Überschreitungen. Nicht selten werden solche Projekte abgebrochen und als gescheitert erklärt.

Was kann man dagegen tun? Ein Schlüssel zu einer erfolgreichen Legacy-Migration ist ausreichendes Testen. Dabei geht es zunächst darum, die bestehende Applikation mit automatisierten Tests zu versehen, um einerseits ein Gefühl für die Funktionalität und den Umfang zu bekommen und andererseits eine deutlich höhere Sicherheit bei der Migration selbst. 

In der Session zeige ich, wie das gelingen kann und wie wir es dadurch geschafft haben, Migrationsprojekte, die vorher bereits als gescheitert oder unmöglich erschienen, erfolgreich zu Ende zu führen.

Arne Limburg ist Lead Architect bei der open knowledge GmbH in Oldenburg. Er verfügt über mehrjährige Erfahrung als Entwickler, Architekt und Trainer im Enterprise- und Microservices-Umfeld. Zu diesen Bereichen spricht er regelmäßig auf Konferenzen und führt Workshops durch. Darüber hinaus ist er im Open-Source-Bereich tätig, unter anderem als PMC Member von Apache OpenWebBeans und Apache DeltaSpike sowie als Urheber und Projektleiter von JPA Security.

Arne Limburg
Arne Limburg
Vortrag: Mi1.2

Vortrag Teilen

, (Donnerstag, 24.Oktober 2024)
09:00 - 17:00
Do4
Domain-Driven Transformation—How to Bring (Back) Sustainable Architecture to Legacy and Monoliths
Domain-Driven Transformation—How to Bring (Back) Sustainable Architecture to Legacy and Monoliths

Today we know very well how to start a new project on a greenfield and how to build a good architecture. But most of us work in projects that have been around for a long time and whose architecture (to put it mildly) is not quite so beautiful. “Monolith” and “Big Ball of Mud” are the unflattering labels put on such systems.

This talk will show how we can introduce (or bring back) structure. Every system is different here, so it’s important to first understand where you are. Then the right steps have to be taken. I present a catalog of refactorings to choose from and heuristics which are the right choices.

The catalog contains refactorings that help to cure: BBOM architecture, anemic domain models, and badly organized teams.

Dr. Sönke Magnussen hat an der Christian-Albrechts-Universität in Kiel Diplom Informatik studiert und promovierte im Jahr 2003 an der Universität Lübeck im Bereich Software Engineering und Programmiersprachen. Nach der Promotion wechselte Sönke zur Lufthansa und arbeitete hier in verschiedenen Rollen (Softwareentwickler, IT-Architekt, Manager mit Führungsverantwortung) an der Wartung und Weiterentwicklung, an Architektur-Projekten und Betriebsthemen von größeren Softwaresystemen und Applikationslandschaften. 

Seiner großen Leidenschaft (Softwareentwicklung und IT-Architektur) bleibt Sönke auch nach einigen Ausflügen in die Prozess-Automatisierung mit Robotics-Process-Automation (RPA), AI, Natural Language Processing treu und bringt seinen reichhaltigen Erfahrungsschatz nun als IT-Architekt, IT-Consultant, Trainer und Projektleiter in Kundenprojekte der WPS ein. Der Fokus seiner Arbeit liegt in der Transformation von größeren Systemen/Landschaften und Organisationen mit dem Ziel, die Systeme zukunftsfähig für  die Digitalisierung oder andere große Herausforderungen aufzustellen. Meistens bedeutet dies eine Transformation hin zu modularen IT-Architekturen, Cloudtechnologie und DevOps, um damit eine agilere Anpassung von Software und einen flexibleren und sichereren Betrieb der IT-Systeme zu ermöglichen. Dabei bildet häufig Domain-Driven Design (DDD) das Fundament für die Erarbeitung einer angemessenen IT-Architektur sowie dem richtigen Aufbau der IT-Organisation.

Zurück