Unser Bericht von der code.talks 2015
In diesem Beitrag
- Radical Agility with Autonomous Teams and Microservices in the Cloud
- Data-Driven Software Development: The quest for the intelligent machine that manages software projects
- Two-Stack CMS
- A tour of the language landscape
- Patterns in a containerized world?
- Fuck, wir sind pleite!
- Composer im Unternehmensalltag
- Performance Testing Crash Course
- Mit CQRS, DDD und Event Stream von der Legacy Application in eine schöne neue Welt
- Microservice-Teststrategie mit Symfony2
- Code Qualität in agilen Teams - wie wichtig ist das wirklich?
- CRDT und mehr – über extreme Verfügbarkeit und selbstheilende Daten
- Whirlwind tour through the HTTP/2 spec
- Don’t Make The Browser Think
- Docker – why we shouldn’t use it
Wir waren dieses Jahr zum dritten Mal dabei. Vier Mitarbeiter hatten zwei Tage lang die Gelegenheit, im Cinemaxx Hamburg Dammtor bei Popcorn und Nachos neue Ideen zu sammeln und von den Erfahrungen (und Fehlern) anderer zu profitieren.
Hier unser Kurzbericht von der Konferenz.
Radical Agility with Autonomous Teams and Microservices in the Cloud
von Jan Löffler (Zalando)
Jan Löffler stellt den Ansatz „Radical Agility“ vor, mit dem Zalando Entwicklungsteams weitgehend voneinander entkoppelt und weitreichende Entscheidungsmöglichkeiten einräumt. Das hat natürlich Auswirkungen auf die Organisation der Technik und die gesamte Organisations- und Führungsstruktur. Für ein börsennotiertes Unternehmen stellt sich dabei auch die Frage, wie sich Compliance und Innovation vereinbaren lassen.
Data-Driven Software Development: The quest for the intelligent machine that manages software projects
von Stefan Richter (freiheit.com technologies gmbh)
Wie kann eine Softwareschmiede wie freiheit.com 90% Entwickler beschäftigen? Wo ist da der Projektmanagement-Wasserkopf? Stefan Richter hat einen interessanten Ansatz gezeigt, mit dem möglichst wenig invasiv datengetrieben typische Projektemanagement-Aufgaben automatisiert werden können. Dabei lassen sich die Entwickler ein bisschen freiwillig überwachen. Ein interessanter Vergleich zu unserer Arbeitsweise, bei der wir ja auch mit einem Minimum an Projektmanagement auskommen.
Two-Stack CMS
von Arne Blankerts (thePHP.cc) und Robert Lemke (Flownative)
Die beiden berichten von einer Architektur, in der das CMS auf der einen Seite für die Vorab-Erstellung von „Content-Snippets“ in HTML zuständig ist. Zur Auslieferung werden diese Inhalte dann performant zu Gesamtseiten zusammengesetzt. Dieser Ansatz eigne sich auch gut, um Inhalte aus verschiedenen Fremdsystemen zu integrieren. Leider war die Art der Präsentation als "lustiges Streitgespräch" zwischen den beiden meiner Ansicht nach nicht so gelungen. Die Kernidee war eine Wiederauflage von Arnes letztjährigem Vortrag an gleicher Stelle. Ich bin mir nicht sicher, ob sie auch alleine, nur mit dem heutigen Vortrag, zu verstehen gewesen wäre.
A tour of the language landscape
von Yan Cui (Gamesys)
Andrew Hunt und David Thomas empfehlen in ihrem Pragmatic Programmer Entwicklern, jedes Jahr eine neue Sprache zu lernen. Denn Programmiersprachen folgen Paradigmen, die die Art beeinflussen, wie wir Probleme sehen und lösen können. Anders gesagt sind die erlernten Programmiersprachen eine Begrenzung des Lösungsraums, den ein Entwickler sieht. Eine neue Programmierprache haben wir in diesem Talk natürlich nicht gelernt, aber Yan Cui hat uns spannende Konzepte und Eigenheiten vorgestellt, die Lust auf mehr Blick über den Tellerrand machen.
Patterns in a containerized world?
von Dennis Benkert und Matthias Lübken (Giant Swarm)
Matthias Lübken und Dennis Benkert von GiantSwarm, einem Kölner Start-up für Docker-basierte Anwendungen, stellen in „Container Pattern“ zunächst einige Eigenschaften vor, die die Unabhängigkeit und Eigenständigkeit von Containern sicherstellen sollen. Anschließend beschreiben sie einige Muster, wie sich aus solchen Containern mit Hilfe von „Pods“ verschiedene Deployment-Probleme lösen lassen.
Fuck, wir sind pleite!
von Joscha Krug (marmalade GmbH)
In seinem leider etwas kurzen Talk zeigte Joscha Krug, wie er mit seiner Typo3-Agentur mehrfach an Nahezu-Pleiten vorbei geschlittert ist und wie er die Probleme in den Griff bekommen hat. Beispielsweise - ganz agil - sich im Wochenintervall um ein in sich abgeschlossenes, dem Kunden in Rechnung stellbares Zwischenprodukt bemühen und Rechnungen pünktlich zu stellen. Und im Gegenzug natürlich selbst auch pünktlich zu zahlen - denn man ist auf eine gute Beziehung zu seinen Kunden und Dienstleistern angewiesen. Und wenn es da dauerhaft nicht so läuft, empfiehlt er die harte Trennung. Ich war sehr froh, dass wir solche Trennungen schon hinter uns haben und im Moment mit allen Kunden und Dienstleistern gerne und toll zusammen arbeiten!
Composer im Unternehmensalltag
von Stephan Hochdörfer (bitExpert AG)
Stephan beschrieb, wie die bitExpert AG in den letzten Jahren zum Paketmanagement von selbstgebauten Lösungen auf Composer umgestiegen ist und welche Tools aus dem Composer-Ökosystem hilfreich sind. Im Prinzip hat er genau das beschrieben, was wir seit 2011 bei der webfactory auch getan haben :-). Insofern gab es leider keine grundsätzlich neue Ideen. Es war aber eine gute Gelegenheit, Stephan einmal persönlich kennenzulernen, da ich bisher nur virtuell auf GitHub Änderungsvorschläge für die Composer- und Satis-Codebasis mit ihm diskutiert habe.
Performance Testing Crash Course
von Dustin Whittle (AppDynamics )
Dustin Whittle - ein toller Speaker - empfiehlt, Performance als Feature zu betrachten, und belegt das mit dem konkreten Business Value, den verringerte Ladezeiten bei großen Seiten wie Amazon oder Yahoo haben. In seinem Talk stellte er einige auch Cloud-basierte Werkzeuge wie Bees with Machine Guns vor - noch spannender fand ich persönlich aber die leider nur am Rande erwähnte Möglichkeit, Performance-Tests automatisiert in den development/build-Prozess aufzunehmen. Warum nicht nach jedem Update von Dritt-Bibliotheken, oder auch einem neuen Feature automatisiert testen, ob die Performance noch stimmt? Das sollten wir uns mal näher anschauen.
Mit CQRS, DDD und Event Stream von der Legacy Application in eine schöne neue Welt
von Verena Ruff (FLYERALARM)
Verena Ruff berichtete davon, wie bei flyeralarm.de die Software-Architektur schrittweise im Microservices aufgeteilt wurde. Diese Umstellung ging mit einer weitreichenden Re-Organisation der Teams und einer Änderung der gewohnten Vorgehensweisen einher. In den einzelnen Services wird das CQRS-Prinzip angewendet. Schreibende Zugriffe werden über Domain Events und eine Event Queue an alle anderen Dienste kommuniziert.
Microservice-Teststrategie mit Symfony2
von Per Bernhardt (Chefkoch GmbH)
Ehrensache, dass wir den Talk unseres ehemaligen Auszubildenden besucht haben. Per Bernhardt hat ein Thoughtworks-Paper zum Testen von Microservices konkret auf die Symfony-Welt bezogen und mit seinen praktischen Erfahrungen bei und Code-Beispielen von Chefkoch gewürzt. Spannend, da wir auch gerade für einen unserer Kunden einen Monolithen aufbrechen und zu einer Microservice-Architektur migrieren und vor den ganz ähnlichen Problemen stehen.
Code Qualität in agilen Teams - wie wichtig ist das wirklich?
von Frank Sons (code-quality.de)
Als Frank Sons ankündigte, bei der fortgeschrittenen Uhrzeit gäbe es jetzt nur noch leichte Koste und keine harten Software-Metriken, war ich ehrlich gesagt ziemlich enttäuscht. Und so empfand ich auch den Rest des Talks als relativ oberflächlich. Nun muss ich dazu sagen, dass dieses Thema seit Jahren ein Steckenpferd von mir und es deshalb zugegeben schwer ist, mir hier etwas wirklich Neues zu erzählen - aber ich hatte mir halt deutlich mehr vom Titel erhofft.
CRDT und mehr – über extreme Verfügbarkeit und selbstheilende Daten
von Uwe Friedrichsen (codecentric AG)
Ein toller Vortrag mit Ausflügen zurück in die Zeit der Informatik-Vorlesungen. Zunächst gab Uwe Friedrichsen einen Überblick über das CAP-Theorem und die verschiedenen Konsistenzeigenschaften verteilter Systeme, die sich daraus ableiten lassen. Anschließend stellte er "Conflict-free replicated data types" (CRDTs) vor. Das sind grundlegende Datenstrukturen, die sich in Systemen mit „Eventual Consistency“-Garantien sicher und widerspruchsfrei zusammenführen lassen. Der Talk machte deutlich, welche Herausforderungen die Arbeit mit entsprechenden Datenbanksystemen stellt und dass man entsprechende Technologien nicht zu blauäugig einsetzen sollte.
Whirlwind tour through the HTTP/2 spec
von Ole Michaelis (Jimdo)
Dieser Vortrag wurde dem Titel gerecht: In Windeseile führte Ole Michaelis durch die Neuerungen des HTTP/2-Protokolls und zeigte die Neuerungen und Möglichkeiten dieses Protokolls auf. Dabei hatte er keine Angst davor, stellenweise tief in technische Details einzusteigen und die Kompressionsalgorithmen sowi Byte-Strukturen der Protokollköpfe zu erläutern. Die nächsten Jahre werden in dieser Hinsicht sicherlich sehr interessant, weil einige Performance-Optimierungen aus der Zeit von HTTP/1.1 in Zukunft nachteilig sein könnten und sich die Tools und Paradigmen zum Einsatz von HTTP/2-Streams und Server-Push erst noch entwickeln müssen.
Don’t Make The Browser Think
von Regine Heidorn (DEMOS Gesellschaft für E-Partizipation)
Ich hatte gehofft, nochmals ein paar Ideen zur Organisation von Stylesheets mitnehmen zu können, um so zu besser wartbarem, wiederverwendbarem und strukturierterem CSS zu gelangen. In den letzten Jahren gab es zu dem Thema großartige Vorträge, beispielsweise von Nicole Sullivan mit "OO-CSS" oder mit Prinzipien wie SMACSS oder der BEM-Methodik. Leider blieb der Vortrag trotz des "Advanced"-Levels in der Ankündigung weit dahinter zurück und verzettelte sich damit, die grundsätzliche Funktion der CSS-Kaskade zu erläutern, die m. E. zu den Grundlagen der Mediengestalter-Ausbildung gehört. Schade!
Docker – why we shouldn’t use it
von Daniel Schweighöfer (POSpulse)
Docker ist ein heißes Thema, kaum ein Slot auf der Konferenz kam ohne einen Vortrag dazu aus. Alle reden davon, wie sie auf Docker-Plattformen wechseln wollen oder gewechselt sind und was man alles "verpasse", wenn man es nicht tut. Insofern war es nicht überraschend, dass ein Vortrag mit diesem Titel bis auf den letzten Platz besetzt war. Im Laufe des Vortrags bekam ich aber zunehmend den Eindruck, dass die vorgetragene Kritik nicht in allen Punkten substanziell war. Zu Punkten wie (vermeintlich?) fehlenden Resourcen-Limits für Container wurde aus dem Publikum vehement widersprochen, und Einwände wie "es gibt kein gutes Konfigurationsmanagement innerhalb von Containern" wurden damit gekontert, dass die Container-Architektur eine komplett andere Denkweise als die "traditionelle" Systemadministration erfordere und das Konfigurationsmanagement jetzt in den Build-Prozess verlagert werde. Auch die hohe Anzahl von Teilnehmern, die während des Vortrags den Saal verließen, bestätigten diesen Eindruck.