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!

In 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.

Weiterlesen

Komponententests in Angular: Ein Leitfaden

von Markus Wiktorin

Kennst 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.

Weiterlesen

„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.

Weiterlesen

Als Frontend- oder Full-Stack-Entwickler*in stellt man sich die Frage, wie es mit den Tests im Frontend aussieht - wie teste ich da und welche Aspekte sollten dabei im Fokus stehen? In diesem Erfahrungsbericht möchte ich die Diskussionen zusammenfassen die in meinen begleiteten Projekten zu diesem Thema geführt wurden und einen Überblick darüber geben, was wir in dieser Zeit gelernt haben.

Weiterlesen

Github Copilot - Ein Erfahrungsbericht

von Felix Rolshausen

Seit 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.

Weiterlesen

Bewusste 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.

Weiterlesen

Die 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.   

Weiterlesen

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.

Weiterlesen

„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.

Weiterlesen

Systemische Fragetechniken im Agilen

von Vera Hofheinz und Christoph Jung

Wollen 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.

Weiterlesen

Bei 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.

Weiterlesen

Reaktive 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.

Weiterlesen

Ein 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.

Weiterlesen

Der Nutzen von Qualitätsmetriken

von Moritz Tiedje

In 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.

Weiterlesen

Es 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.

Weiterlesen

Warum geht der Backend-Aufruf nicht mehr?

von Thomas Czogalik

Backend-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.

Weiterlesen

Der ewige Streit um Softwarequalität

von Moritz Tiedje

In 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.

Weiterlesen

Die Systemische Schleife im Agilen Kontext

von Christoph Jung und Vera Hofheinz

Systemisches 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.

Weiterlesen

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.

Weiterlesen