Der andrena Blog
Erfahrungen aus der Praxis im Software Engineering und Consulting - in unserem Blog teilen wir unsere Erlebnisse. Zu unseren Autor*innen gehören Agile Coaches und Software Engineers, die seit Jahren in Projekten arbeiten und äußerst routiniert darin sind, Theorie und Praxis zu vereinen. Hier schildern sie typische Muster, herausfordernde Situationen und vielversprechende Lösungsansätze. Lasst Euch inspirieren!
From Steady to Dynamic Teams - Navigating the Challenges of Flexible Team Structures in Software Engineering
von Christian PauschertIn the fast-paced world of software engineering, the concept of team dynamics is evolving rapidly. Researchers at Google found out that who is on a team matters much less than how team members interact, structure their work, and view their contributions. While a takeaway from this study is that stable teams are not a necessity for success, it stresses at the same time other factors of collaboration that are therefore crucial. This blog post wants to highlight best practices and challenges of dynamic re-teaming, exploring why flexibility is beneficial in software development, the contrast with stable team ideologies, and how approaches like unFIX can facilitate this transformation.
Komponententests in Angular: Ein Leitfaden
von Markus WiktorinKennst du das? Du hast gerade eine winzige Änderung an deiner Angular-App vorgenommen und plötzlich funktioniert irgendwas nicht mehr. Schnell wird klar: Ohne ordentliche Tests fliegt dir deine Anwendung irgendwann um die Ohren. In diesem Artikel zeigen wir dir, wie Komponententests in Angular dir das Leben leichter machen und wie du sie effektiv durchführst. Lass uns gemeinsam in die Welt der Komponententests eintauchen und verstehen, warum sie unerlässlich für qualitativ hochwertige Softwareentwicklung sind.
Frontend ohne Framework – nativ, nicht naiv!
von Jan Müller„Ein modernes Web-Frontend kann man nur mit Angular, React o. ä. bauen, weil die HTML- und JavaScript-Bordmittel bei Weitem nicht ausreichen. Da helfen auch ein paar kleine Libraries nicht.“ Das hört man häufiger, aber ich bin nicht überzeugt. Stattdessen möchte ich dem reflexartigen Griff zu Angular & Co. eine Alternative gegenüberstellen: WebComponents, also doch die nativen Bordmittel.
Testing im Frontend - Ein Erfahrungsbericht zu Komponenten-, Integrations- und End-to-End-Tests
von Thomas CzogalikGithub Copilot - Ein Erfahrungsbericht
von Felix RolshausenSeit einiger Zeit gibt es KI-basierte Assistenten wie Github Copilot, die uns Arbeit abnehmen und beim Programmieren helfen sollen. Doch wie gut funktionieren solche Tools bereits und wo liegen ihre Grenzen? Genau dieser Frage sind wir kürzlich in einem unserer Coding Dojos bei andrena in München nachgegangen. In diesem Blogbeitrag möchte ich von meinen Erfahrungen berichten.
Besser wär’s – Software-Architektur gemeinsam gestalten
von Maximilian AulingerBewusste Architekturentscheidungen in agilen Softwareprojekten – passt das zusammen? Sollte es. Denn sobald Software entsteht, werden kontinuierlich solche Entscheidungen getroffen. Das kann gezielt und aus einem Konsens im Team heraus geschehen oder mit einem fröhlichen „Wird schon irgendwie werden“ – Ansatz. Letzterer ist häufig ein entspannt formuliertes Scheitern mit Ansage. Weil es erfahrungsgemäß oft gar nichts wird, wenn ein so gebautes System auf die harte Realität des Produktionsbetriebs trifft. Deswegen lohnt es sich für das Team, gemeinsam Architekturarbeit zu leisten. Dieser Beitrag stellt drei Ansätze der Zusammenarbeit vor, die dem Team zu mehr Wissen und Erfahrung verhelfen, wenn es zu wichtigen strukturellen Entscheidungen kommt.
Veränderungsbegleitung in Organisationen – eine Perspektive aus der Gestalttherapie
von Christian PauschertDie Gestalttherapie birgt mit ihrem Fokus auf das Hier-und-Jetzt Ressourcen, die sich gut in die Arbeit des Agile Coaches integrieren lassen. Dieser Artikel beleuchtet wo wir im agilen Coaching vom Gestaltansatz profitieren können und wo bisher selten genutzte Potenziale für die Begleitung von Veränderungsprozessen liegen.
Viele Softwareentwickler*innen haben irgendwann mal Python-Code geschrieben, vielleicht auch nur einzelne Skripte oder in Notebooks zum Prototyping/Lernen. In meinem letzten Projekt sollte ich dabei unterstützen, den Tech-Stack Python in einem professionellen Umfeld aufzustellen, mit allem Drum und Dran wie Artefakten, die aus automatisierten Builds purzeln. Wie das funktioniert hat und ob es weh tat beschreibt dieser Artikel, inklusive Tipps zum Mitnehmen für DevOps-ler mit ähnlichen Vorhaben.
Lösungsorientiertes Coaching in Retrospektiven anwenden
von Franziska Beck„Retrospektiven bringen nichts!“.
Hinter dieser Haltung stecken oftmals Erfahrungen mit Meetings, die aus endlosen Diskussionen bestehen. Konkrete Ergebnisse bleiben aus, stattdessen endet der Termin in Schuldzuweisungen. Manchmal werden zwar Verbesserungsmaßnahmen definiert, jedoch im Nachgang nicht umgesetzt. Egal wie- es mündet unweigerlich in die Frustration der Beteiligten.
Wenn dir diese Situation bekannt vorkommt, kannst du in diesem Artikel erfahren, was es braucht, um Retrospektiven gewinnbringend zu gestalten.
Systemische Fragetechniken im Agilen
von Vera Hofheinz und Christoph JungWollen wir agile Veränderungsprozesse in Organisationen nachhaltig gestalten, sind wir als Führungskraft, Agile Coaches oder Scrum Master herausgefordert, Entscheidungen zu treffen, mit Widerständen und Konflikten kreativ umzugehen und sie zur Weiterentwicklung zu nutzen. Unsere kommunikativen Fähigkeiten sind hier gefragt. Ein Baustein in der systemischen Organisationsentwicklung und im systemischen Coaching sind Fragetechniken, die dabei unterstützen, neue Perspektiven aufzuzeigen und damit den Möglichkeitsraum für Veränderung zu öffnen. In unserem Artikel stellen wir verschiedene Kategorien von Fragetechniken vor, die im beruflichen Alltag jederzeit eingesetzt werden können.
Veränderungsbereitschaft fördern durch Motivierende Gesprächsführung
von Nadine Muhl-SchmittBei einer agilen Transformation kommt es gelegentlich vor, dass die Veränderung nicht wie gewünscht voran geht. Eine Veränderung ist fast immer mit Ambivalenzen behaftet, die einen großen Einfluss auf die Veränderungsbereitschaft und Motivation einer betroffenen Person nehmen können. Motivierende Gesprächsführung ist eine Möglichkeit, die Veränderungsbereitschaft und Eigenmotivation einer Person zu erhöhen. In diesem Artikel gebe ich einen kurzen Einblick in die Motivierende Gesprächsführung und erkläre, wie sie meine Arbeit als Scrum Masterin beeinflusst hat.
Playing with Marbles - Elegantes Testen von RxJS
von Marco SiebenReaktive Programmierung mit RxJS ist schon komplex genug, da sollten die Tests wenigstens gut lesbar und leicht nachzuvollziehen sein. Glücklicherweise gibt es mit Marble-Tests eine elegante Möglichkeit, einfach verständliche grafische Tests in Code zu verpacken.
In diesem Beitrag beschäftigen wir uns mit der Marble-Darstellung von Observables und wie sich diese für Tests verwenden lässt.
Mythos Wiederverwendbarkeit – eine andere Perspektive
von Jan MüllerEin weit verbreitetes Prinzip in der Softwareentwicklung lautet: Duplikation ist schlecht, Wiederverwendung hingegen gut. Immerhin lässt sich durch "Software-Recycling" Zeit und Aufwand sparen — und damit auch Geld. Das ist richtig. Ohne dieses Prinzip stünden wir in der Softwareentwicklung nicht da, wo wir sind. Trotzdem ist die Absolutheit, mit der es propagiert wird, auch falsch. In diesem Beitrag befassen wir uns mit den Grenzen dieses Grundsatzes.
Der Nutzen von Qualitätsmetriken
von Moritz TiedjeIn vielen Projekten besteht der Wunsch, die Qualität der Software zu messen. Manchmal führten die Qualitätsmessungen aus Sicht der Entwickler*innen zu echten Verbesserungen, manchmal zum genauen Gegenteil und manchmal waren sie einfach nur Zeitverschwendung. In diesem Beitrag analysieren wir, wann die Messungen in die erste, zweite oder dritte Kategorie fallen - und warum das Thema so eine Faszination ausübt.
Was sind Mutation Tests und warum sollten wir uns damit beschäftigen?
von Dr. Carsten OttoEs klingt trivial: Ein "guter" Test sollte bei einer Codeänderung, die nicht als reines Refactoring einzustufen ist, zu einem Testfehler führen. Das passiert nur nicht unbedingt. Denn wenn der Test zwar bestimmte Szenarien abdeckt, andere, ähnlich kritische aber nicht, dann bietet er nicht die erhoffte Sicherheit. Mutation Tests können Abhilfe schaffen. Warum und wie, das erläutert dieser Beitrag.
Warum geht der Backend-Aufruf nicht mehr?
von Thomas CzogalikBackend-Aufrufe führen zu Laufzeitfehlern? Änderungen oder Erweiterungen im Backend wurden im Frontend nicht umgesetzt? Das lässt sich mit dem OpenAPI-Generator vermeiden. Er unterstützt viele Programmiersprachen wie Typescript oder Javascript und lässt sich in gängige Frontend-Technologien einbinden, z. B. in Angular, React und Vue.js. Hier stellen wir einen Ansatz vor, der sich für uns in realen Projekten bewährt hat.
Der ewige Streit um Softwarequalität
von Moritz TiedjeIn Software-Entwicklungsprojekten begegnet uns immer wieder das Dilemma: "Investieren wir jetzt in Qualität und liefern langsamer als wir es könnten oder investieren wir jetzt nicht in Qualität und riskieren später Probleme mit der Lieferfähigkeit?" Wir wollen uns das einmal genauer anschauen und Tipps geben, wie man am besten damit umgehen kann.
Die Systemische Schleife im Agilen Kontext
von Christoph Jung und Vera HofheinzSystemisches Denken und Handeln findet immer mehr Beachtung in der Agilen Szene. Wir stellen euch die Systemische Schleife vor und zeigen, wie man im agilen Alltag von der systemischen Perspektive profitieren kann.
Nicht selten hört man von Multitasking-Fähigkeiten und verbindet damit intuitiv etwas Gutes, trotz aller Belege dafür, dass das menschliche Gehirn nicht dafür geeignet ist, mehrere Dinge gleichzeitig zu erledigen. Multitasking ist im Kontext von Organisationen nicht nur bei „Einzelgehirnen” interessant, sondern auch bei Teams und ganzen Organisationen. Wir werfen einen Blick auf die drei Ebenen und deren Wechselwirkungen.