10. Treffen am 18.7.2018 bei TNG Technology Consulting

Hilfe, Kind im Brunnen - Systematisch technische Schulden abbauen

Speaker: Dr. Gernot Starke

Wir verbringen als Entwickler und Architekten die meiste Zeit mit der Weiterentwicklung bestehender Systeme (der so genannten "Wartung"). Dabei ärgern wir uns oftmals über die vielfältigen Defizite dieser Systeme: Selbst vermeintlich einfache Dinge werden bei diesenLegacy-Systemen unsäglich schwierig, die time-to-market wird immer schlechter, die Fachbereiche bauen immer mehr Feature-Druck auf. Im Vortrag zeige ich Ihnen Möglichkeiten auf, dieser Falle technischer und anderer Schulden systematisch zu entkommen: Lernen Sie langfristige Verbesserungsansätze kennen, mit denen Sie auch in verfahrenen Situationen das Kind wieder aus dem Brunnen bergen können. Dazu begeben wir uns im ersten Schritt auf methodische Breitensuche nach Problemen, um unsere technischen, organisatorischen und kommunikativen Schulden erstmal klar zu identifizieren. Anschließend stelle ich Ihnen eine Reihe strategischer Verbesserungsansätze vor, beispielsweise Verbesserung durch:

  • Verkleinerung: Migration in Richtung Self-contained Systems ("change-by-split" und "change-by-extraction")
  • stärkeren Fokus auf Fachlichkeit: Ansätze von Domain-Driven Design schrittweise in Legacy-Systeme einbringen ("restructure-to-domain")
  • Stärkung der Kohäsion innerhalb von Systemen ("improve modularization")
  • Homogenisierung - ähnliche Probleme in Systemen auch ähnlich lösen ("improve consistency")
  • Daten aufräumen: Modularisierung und Homogenisierung in Bestandsdaten ("database refactoring")

Ich grenze diese strategischen (d.h. langfristigen) Ansätze gegen die bekannten taktischen Verbesserungen wie Refactoring ab, und illustriere durch (anonymisierte) praktische Beispiele.

Gernot Starke (innoQ Fellow), Coach und Berater für methodische Softwarearchitektur, (Mit-)gründer von arc42.org, Gründer von aim42.org. Gernot hat bei Entwurf und Implementierung mittlerer und großer Systeme für Organisationen aus unterschiedlichen Bereichen mitgearbeitet, hauptsächlich im Bereich Finanzen, Versicherungen, Automotive, Logistik und Telekommunikation. Daneben hat er zahlreiche Bücher über Softwarearchitektur und Patterns geschrieben und veröffentlicht regelmäßig Fachartikel. Er lebt mit seiner Familie in Köln.

Auf Wunsch von Gernot sind Folien und Video nicht verfügbar.

Gestern lief's doch noch. Muss ich heute schon wieder alles testen? Forschungsergebnisse und eigene Erfahrungen mit Test-Impact-Analyse

Speaker: Dr. Elmar Juergens

Je älter und größer ein Softwaresystem ist, desto wichtiger ist eine verlässliche, automatisierte Testsuite. Insbesondere, wenn ich unter Zeitdruck viele Änderungen umsetze und kurze Release-Zyklen habe. Wenn das System wächst, muss auch die Testsuite wachsen. Damit steigt aber auch die Ausführungsdauer. Wir sehen in der Praxis immer öfter Suites, die mehrere Stunden oder sogar Tage laufen. Langlaufende Suites werden aber typischerweise seltener ausgeführt als schnelle Suites, z.B. wöchentlich statt täglich. Leider muss ich als Entwickler dadurch immer länger auf Feedback warten, wodurch es immer aufwändiger wird, die Ursache für fehlschlagende Tests zu lokalisieren. Ironischerweise mindert das den Wert der Tests gerade für die Systeme, in denen sie eigentlich besonders wichtig sind. Test-Impact-Analyse adressiert dieses Problem, indem sie Testfälle aussortiert, die bei der nächsten Ausführung höchstwahrscheinlich keine Fehler finden. Dazu werden die Code-Änderungen analysiert, die seit dem letzten Testlauf durchgeführt worden sind. Außerdem werden Tests so in Reihenfolge gebracht, dass sie möglichst schnell möglichst viele Änderungen durchlaufen. In unseren empirischen Studien konnten so über 90% der Fehler in weniger als 10% der Ausführungszeit gefunden werden. Der Vortrag stellt Grundlagen, Forschungsergebnisse und empirische Studien zu Test-Impact-Analyse vor. Daneben berichten wir von unseren Erfahrungen damit in der eigenen Entwicklung, in Open-Source Projekten und bei Kunden.

Dr. Elmar Juergens hat über statische Codeanalyse promoviert und für seine Doktorarbeit den Software-Engineering-Preis der Ernst Denert-Stiftung erhalten. Er ist Mitgründer der CQSE GmbH und begleitet seit acht Jahren Teams bei der Verbesserung ihrer Qualitätssicherungs- und Testprozesse. Juergens spricht regelmäßig auf Konferenzen wie dem QS-Tag, W-JAX, JAX, OOP, Teamconf, DWX, ICSE, CSMR, SQD oder den XP Days. Er wurde von den Teilnehmern zum besten Sprecher der Clean Code Days 2014, der Software Quality Days 2015, dem Java Forum 2015 und 2017 und dem QS-Tag 2016 gewählt. Elmar Jürgens wurde 2015 zum Junior Fellow der Gesellschaft für Informatik ernannt.

Video:

Folien und weitere Links: siehe https://www.cqse.eu/en/blog/vortrag-test-impact-analyse-swa-muc-2018/



Wir haben uns am 18. Juli 2018 um 18:30 Uhr in den Räumen von TNG Technology Consulting GmbH in der Arabellastraße getroffen:
Arabellastraße 4a
81925 München