Köln 5.-7. April 2017
German flag

 

Talks

Technische Schulden tun weh! Wie man sie erkennt und beseitigt.

Carola Lilienthal

Fast jedes Softwaresystem wird mit guten Vorsätzen aber unter schwierigen Bedingungen entwickelt. Deadlines, unterschiedliche Qualifikationen und Missverständnisse im Entwicklungsteam führen dazu, dass die Architektur des Systems erodiert und Schritt für Schritt technische Schulden aufgebaut werden. Bis das ganze System zu einem unordentlichen großen Knäul verwoben ist und jede Anpassung zu einer unkalkulierbaren Kostenschraube wird. Weder dem Entwicklungsteam, noch dem Management macht ein System in einem solchen Zustand Freude.

In diesem Vortrag zeige ich, wie man Sourcecode organisieren und weiterentwickeln kann, um das Entstehen und Ansteigen von technischen Schulden zu verhindern. Dabei werdet ihr sehen, welche Prinzipien helfen, technische Schulden zu vermeiden und wie sie durch geeignetes Refactoring aus der Welt geschaffen werden können. Basis aller Empfehlungen werden Beispiele aus den nunmehr über 100 Analysen sein, die ich an unterschiedlichsten Softwaresystemen durchführen durfte.

Erwarte die Ausnahmen – Elegante Fehlerbehandlung

Bastian Hofmann

Auch die beste Testabdeckung einer Web Applikation verhindert nicht, dass Fehler und Bugs in der Produktionsumgebung auftreten können, insbesondere bei Datenbank Problemen oder Lastspitzen. Deshalb ist es wichtig, Fehler und Probleme frühzeitig zu erkennen, um diese schnell beheben zu können. In diesem Talk werde ich effiziente Wege wie z.B. Deployment Strategien, Canary Environments oder Circuit Breaker vorstellen um Fehler messen, loggen und dann elegant behandeln zu können. Ziel ist, den Einfluss auf Gesamtstabilität und User-Experience der Applikation so gering wie möglich zu halten.

Build and ship a feature on trivago

Christoph Reinartz

In dieser Session zeige ich wie wir einen A/B Test in unserem Kernprodukt, der auf Symfony basierten trivago Hotelsuche, implementieren. Der Vortrag zeigt den Lebenszyklus eines Features beginnend von der Task-Erstellung, über die eigentliche Implementierung hin zu Testing und Code Review. Nach erfolgter Prüfung werden wir das Feature releasen und den A/B Test aktivieren.

Neben der technischen Seite der Implementierung gehe ich auch auf den Workflow sowie die Engineering Culture in unserem large scale environment ein.

Business-Workflows in Symfony-Anwendungen modellieren

Christian Flothmann

Komplexe Geschäftsprozesse in Code zu fassen kann sehr schnell komplex und unübersichtlich werden - und in der Folge zu schwer zu wartender Software führen. Dieser Talk wird eine theoretische Einführung in das Thema Workflow Nets und State Machines bieten, sowie praktisch zeigen, wie sich Prozesse mit der Workflow Komponente in einem Symfony Projekt nutzen lassen.

Was Symfony für IT-Sicherheit unternimmt und was nicht

Andreas Sperber

Fast jedes Softwaresystem wird mit guten Vorsätzen aber unter schwierigen Bedingungen entwickelt. Deadlines, unterschiedliche Qualifikationen und Missverständnisse im Entwicklungsteam führen dazu, dass die Architektur des Systems erodiert und Schritt für Schritt technische Schulden aufgebaut werden. Bis das ganze System zu einem unordentlichen großen Knäul verwoben ist und jede Anpassung zu einer unkalkulierbaren Kostenschraube wird. Weder dem Entwicklungsteam, noch dem Management macht ein System in einem solchen Zustand Freude.

In diesem Vortrag zeige ich, wie man Sourcecode organisieren und weiterentwickeln kann, um das Entstehen und Ansteigen von technischen Schulden zu verhindern. Dabei werdet ihr sehen, welche Prinzipien helfen, technische Schulden zu vermeiden und wie sie durch geeignetes Refactoring aus der Welt geschaffen werden können. Basis aller Empfehlungen werden Beispiele aus den nunmehr über 100 Analysen sein, die ich an unterschiedlichsten Softwaresystemen durchführen durfte.

Ansible Tips 'n' Tricks

Lukas Sadzik

Jemand sagte mal zu Lukas "Sei faul oder dumm, aber nie beides zur selben Zeit". Deshalb mag er clevere Automatisierungstools wie Ansible. Ob vom Raspberry Pi zuhause bis hin zum mehrere Dutzend Instanzen umfassenden Serverfarm, Ansible etabliert sich immer mehr zum Quasi Standard der Provisionierung. Es ist simpel zu lernen und erste schnelle Erfolge lassen in der Regel nicht lange auf sich warten. Aber wie geht es weiter?

Der Talk zeigt ein paar Kniffe, nützliche Patterns und zeigt, wie man gern gemachte Fehler beim alltäglichen Gebrauch von Ansible vermeidet.

Learn Redis the hard way ... in production

Andy Grunwald

Für unser Hauptprodukt, die trivago Hotelsuche, benutzen wir die NoSQL Datenbank Redis sehr ausgiebig. Die Use cases variieren: Caching, temporäre Speicherung der Daten bevor diese in eine andere Datenbank verschoben werden oder selbst als typische Datenbank für Hotel Meta Informationen inkl. Persistenz.

Das Frontend der Hotelsuche ist in PHP geschrieben. Dies mit einer Redis Datenbank zu verbinden ist nicht die Herausforderung. Es wird jedoch zu einer bei steigendem Traffic. In diesem Talk erzählen wir euch die Story, wie wir (auf dem harten Weg) gelernt haben Redis effizient und richtig zu benutzen. Inklusive unseren Fehlschlägen und unseren Erfahrungen.

Dependency Management ist mehr als "composer update"

Nils Adermann

Du hast Composer schon so oft benutzt, aber wie genau kennst du deine Abhängigkeiten wirklich? Schaffst du es aus jeder kniffligen Situation? In diesem Vortrag geht es um das gesamte Spektrum von Dependency Management: Von der Analyse der Risiken, die Software von Dritten für geschäftskritischen Code birgt, z.B. durch unerwartet Kompatibilitätsbrüche, bis hin zu praktischen Tips für die Benutzung von Composer im echten Leben. Zum Beispiel: Wie geht man bei Merge-Konflikten einer composer.lock Datei vor, wenn Kollegen und man selbst unterschiedliche Änderungen an Abhängigkeiten vorgenommen haben.

The more testing you do

Jeffrey McGuire & Sebastian Bergmann

Obwohl wir ans Testen "glauben" und "wissen", dass es beim Liefern besserer Qualität hilft, tun sich viele von uns schwer, Testen in ihren Arbeitsalltag zu integrieren. Warum? Wie bekommen wir technische und nicht-technische Projektbeteiligte ins selbe Boot, wenn es darum geht, gute Software zu entwickeln? Und wie beteiligen wir sie aktiv an diesem Prozess?

In diesem Vortrag diskutieren Sebastian Bergmann, Autor von PHPUnit, und Jeffrey A. "jam" McGuire, Evangelist bei Acquia, wie das Einführen gefolgt von konsequenter Anwendung von Testmaßnahmen dazu führt, dass die Softwareentwicklung bessere Ergebnisse bei niedrigeren Gesamtkosten liefert und wie sich die Vorteile des Testens über die Zeit entfalten.