Die Clean Code Days in München sind ein Highlight für alle, die sich mit Softwarequalität, Testen, Clean Code Development und Zukunftsthemen für erfolgreiche Softwareentwicklung befassen wollen. Anfang Juli reist unser Clean Code-Team nach München um sich an der Konferenz zu beteiligen. Im modernen 3-6-1-System sind wir mit 3 Sessions, 6 Vortragenden und 1 Keynote vertreten. Wir werden das Event auch live auf Twitter begleiten und im Blog für alle, die nicht dabei sein können, ausführlich nachbereiten.
Die Clean Code Days warten auch in der 7. Auflage wieder mit einem voll gefüllten und breit gefächerten Programm auf. Dieses Jahr stehen insbesondere die Inputs zu Qualität und Testen in einem agilen Umfeld sowie die vielen Beiträge zum Feintuning bekannter Methoden, wie der (statischen) Codeanalyse, im Fokus. Ein Blick in die Agenda lohnt sich jetzt schon.
Auch die viadee wird hier ihren Beitrag in den Themen Code Reviews, Teamkultur, Predictive Maintenance, Agile Games sowie Erfolgsfaktoren für Aufbau und Motivation agiler Teams leisten. Unsere Sessions im Überblick:
„Yes, but …“ — (un-)konstruktive Feedbackkultur in Code Reviews
- Referenten: Tobias Voß und Joris Wachter
- Termin: 3. Juli 2019, 11:15 Uhr
- Raum: Paris
Code Reviews sind ein häufiger Bestandteil der Definition of Done agiler Teams. Doch Feedback geben und annehmen will gelernt sein und muss für eine lösungsorientierte Teamkultur geübt werden, um konstruktiv mit Konflikten umgehen zu können. "Ja, aber" ist ein typisches Beispiel für einen Kommunikations-Fallstrick und schlechte Feedbackkultur, das sich in Code Reviews gerne in Dialogen der Art "Ja, aber ich hätte es anders gemacht oder fände es eleganter, wenn..." manifestiert. Wir wollen anhand konkreter Beispiele aus unserer Praxis aufzeigen, was gute Code Reviews ausmacht und an welchen Stellen ein moderierender oder vermittelnder Eingriff durch den Scrum Master notwendig ist. Dabei betrachten wir auch die psychologischen und gruppendynamischen Faktoren wie wertschätzendes Feedback oder das Johari-Fenster. Damit erklären wir, warum Reviews ein sensibles Thema sind und wie man die Effizienz von Reviews steigern und gleichzeitig die Teamkultur stetig weiterentwickeln kann.
Ein Team von Saubermännern und -frauen - was ist das Geheimnis des Erfolgs?
- Referenten: Christoph Meyer und Claudia Simsek-Graf
- Termin: 3. Juli 2019, 15:15 Uhr
- Raum: Paris
Jedes Entwicklerteam weist eine eigene funktionierende Teamkultur auf. Die einzelnen Teammitglieder werden von unterschiedlichen Motiven getrieben. Je nach Zusammensetzung des Teams und der Motive der einzelnen Teammitglieder sollte die Einführung von Clean Code-Prinzipien und -Techniken individuell umgesetzt werden. Um das passende Vorgehen für das betreffende Team zu gestalten, müssen dazu verschiedene Fragen beantwortet werden.
- Wie findet man heraus, wie das Team aufgestellt ist?
- Gibt es Methoden, um zu guten Ergebnissen bei der Analyse der Teamkultur zu gelangen?
- Wie verknüpfe ich die Einführung von Clean Code mit der Teamentwicklung?
- Welche Bedürfnisse, Ängste und Befindlichkeiten werden dadurch ggf. tangiert?
- Wie kann ein gemeinsames Qualitätsbewusstsein im Team entwickelt und verbessert werden?
- Welche Clean Code-Prinzipien und Praktiken passen am besten zu den Werten des Teams? Welche nicht?
Diese und weitere Fragen haben wir uns gestellt. In verschiedenen Projekten bei sehr unterschiedlichen Kunden diversester Kulturen haben wir Teams bei ihrer Entwicklung unterstützt und Clean Code-Methoden eingeführt. Unsere dabei gewonnenen Erkenntnisse möchten wir gerne mit den Zuhörern teilen und im Anschluss diskutieren.
Let’s Play! Agile Games Room
- Referenten: Claudia Simsek-Graf und Björn Meschede
- Termin: 3. Juli 2019, 17:30 Uhr - open end
- Raum: tbd
Wer Teams dazu bringen will Clean Code-Prinzipien wirklich zu leben, muss Menschen überzeugen, motivieren und nicht zuletzt eine Menge Veränderungen anstoßen und begleiten.
(Lern)Spiele, auch Agile oder Serious Games, können dabei einen wertvollen Beitrag leisten: Sie lassen Menschen in kurzer Zeit wertvolle Erfahrungen machen, setzen gezielt Impulse und können ungeahnte Kreativität freisetzen. Und nicht zuletzt machen sie eine Menge Spaß!
Neugierig geworden? Dann kommt am 3.7. in unseren „Games Room“! Dort könnt ihr zusammen mit Claudia Simsek-Graf und Björn Meschede verschiedene Spiele kennenlernen, ausprobieren und das Ganze gleich reflektieren.
Pride & Prejudice: Teambildung & Motivation im agilen Umfeld
- Referenten: Christoph Meyer und Johannes Dienst
- Termin: 4. Juli 2019, 9:00 Uhr
- Raum: Paris
Im agilen Umfeld hat das Team die Arbeitsgemeinschaft ersetzt. Crossfunktional, T-Shaped und selbstorganisiert soll es sein. Was sich nach einer idealen Arbeitsumgebung anhört, kann langfristig trotzdem zu Frust und Motivationsverlust führen. Was können die Ursachen sein?
Im ersten Teil des Vortrags (Stolz) geht es um die Mechanismen rund um Teambildung. Im Großen sind das Bestimmung einer Teamvision und -Mission und die Ermittlung von gemeinsamen Werten. Im Kleinen ist es das Konzept der „Psychological Safety“, das allen erfolgreichen Teams gemeinsam ist. Außerdem wird mit Stoizismus eine Geisteshaltung vorgestellt, mit der jeder Einzelne aktiv sein teamorientiertes Handeln verbessern kann.
Es ist aber ein Vorurteil, wenn man glaubt, dass ein funktionierendes Team einmal zusammengestellt dauerhaft gut zusammenarbeitet. Daher werfen wir im zweiten Teil einen Blick auf den aktuellen Forschungsstand und die Historie von Motivation. Teilnehmer verstehen, was es mit extrinsischer und intrinsischer Motivation auf sich hat und welche Menschenbilder Taylorismus und die X-Y-Theorie propagieren. Wir gehen auf verschiedene evolutionäre Organisationsformen von Unternehmen ein und zeigen, wie gut die verschiedenen Motivationstheorien zu bestimmten Organisationsformen passen.
Abschließend bringen wir Stolz & Vorurteil zusammen: wir zeigen, wie in agilen Teams mit der individuell passenden Motivation langfristig erfolgreich zusammengearbeitet werden kann.
Fixing the Water Leak with H2O – Predictive Maintenance für SonarQube
- Referenten: Björn Meschede & Hauke Husstedt
- Termin: 4. Juli 2019, 12:15 Uhr
- Raum: Paris
Wartungsbudget ist in der Regel ein knappes Gut. Wie kann man es im Projektalltag effizient einsetzen? Die „Fixing the Water Leak“-Methode versucht, das Entstehen technischer Schulden schon beim Schreiben von Quellcode zu verhindern. Dies funktioniert gut für neuen Code, durch enge Qualitätskriterien oder etwa harte Quality Gates für neue Klassen. Bei der Wartung von bestehendem Code hingegen hilft dieser Ansatz nur begrenzt.
Hier sind auch qualitative Kriterien, wie sie in Tools wie SonarQube verwendet werden, nur bedingt anwendbar. Denn die Entscheidung, ob und in welchem Umfang technische Schulden aufgelöst werden sollten, ist immer abhängig vom jeweiligen Kontext. Hier ist vor allem ausschlaggebend, ob die technischen Schulden in den betroffenen Klassen im weiteren Verlauf noch negative Auswirkungen haben. Dies geschieht meistens dann, wenn Änderungen an Klassen durch die technischen Schulden komplexer und aufwendiger werden oder durch Code Smells ausgelöste Missverständnisse zu unerwünschten Ergebnissen führen können.
Mit „Change Prediction“ kann man in diesem Fall bessere Ergebnisse erzielen. Über die Vorhersage, welche Klassen sich in näherer Zukunft ändern werden und welche nicht, können die Code Smells und Issues ausgewählt werden, die nicht nur qualitativ relevant sind, sondern bei deren Behebung man mit großer Wahrscheinlichkeit auch in der Wartung besonders profitieren wird. Somit geht die Wartung Hand in Hand mit zukünftigen erwarteten Anpassungen an den Klassen und bereitet diesen den Weg.
Im Vortrag stellen wir das OpenSource-Projekt SonarIssueScoring vor, welches Issues aus SonarQube mit einer ergänzenden Bewertung versieht, um eine effiziente Auswahl von Issues zu unterstützen. Diese Bewertung, der „Desirability-Score“, setzt sich aus zwei Komponenten zusammen:
Zum einen der funktionalen Bewertung auf Basis der strukturellen Eigenschaften einer Klasse (u.a. Alter, Abhängigkeiten) und der SonarQube-Metriken (u.a. Severity, Effort). Zum anderen der Vorhersage der Änderungswahrscheinlichkeit der betroffenen Klasse. Diese wird auf Basis einer Analyse des Code-Repository mit einem H2O-Modell berechnet. Dabei wird analysiert, welche Faktoren in der commit-Historie Änderungen an bestimmten Klassen bzw. Typen von diesen ausgelöst haben und das entstehende Modell auf den aktuellen Stand des Repository angewandt. Die resultierende Vorhersage der Änderungswahrscheinlichkeit wird anschließend genutzt, um den funktionalen Score zu gewichten.
Im Ergebnis bekommt man so eine erweiterte und aufgewertete SonarQube-Analyse, die eine effizientere Steuerung der Wartungsaktivitäten ermöglicht. Neben den technischen Grundlagen stellen wir im Vortrag unsere Erfahrungen bei der Erarbeitung und Erprobung des Konzeptes, u.a. durch die Analyse eines laufenden Wartungsprojektes, vor und geben einen Ausblick auf mögliche Erweiterungen des Konzeptes.
Bleiben sie mit uns auf dem laufenden!
Wir werden mit unserem Team über unseren Twitter-Kanal live von der Konferenz berichten und die wichtigsten Erkenntnisse und Neuigkeiten auch auf diesem Blog zusammenfassen.
zurück zur Blogübersicht