GitLab CI/CD für Android

Mit GitLab CI/CD kann eine Continuous-Integration- / Continuous-Delivery-Pipeline direkt innerhalb eines GitLab Repositories definiert und konfigurationslos an jedes beliebige Softwareprojekt angeflanscht werden. In diesem Workshop rekapitulieren wir die schrittweise Umsetzung unserer Build- und Release-Pipeline für ein bestehendes Android-Projekt. Dabei lernen wir GitLab CI/CD und die generelle Funktionsweise cloudbasierter CI/CD-Pipelines in der Praxis kennen.

Weiterlesen

Four Key Metrics

Wer kennt es nicht: “Der letzte Release war die Hölle … Wir müssen in unsere CI/CD investieren und wir brauchen mehr DevOps!” Dafür benötigt man jedoch das entsprechende Funding.

Spätestens an diesem Punkt werden einige Fragen aufgeworfen, die es zu beantworten gilt: Wie soll ich das dem C-Level schmackhaft machen, obwohl das so technische Themen sind? Und wie zeige ich auf, dass uns das auch finanziell beeinträchtigt?

Oder, um es etwas einfacher zu machen: Welche KPIs kann ich zu Rate ziehen, wenn es um die Software Delivery Performance geht?

Weiterlesen

Komponenten- und Featureteams – ein Forschungsergebnis

Die Frage, wie die Arbeit innerhalb einer Entwicklungs-Organisation am besten organisiert werden kann, ist seit langem von theoretischem und praktischem Interesse. Häufig stößt man hierbei auf Feature- und Komponententeams.

In diesem Beitrag möchte ich auf die Unterschiede sowie auf den aktuellen Stand der Forschung eingehen.

Weiterlesen

The State of UX in 2022

Auch dieses Jahr hat das UX Collective wieder einen Blick auf den State of UX geworfen. Und wie immer ist der Artikel wirklich lesenswert.

Ich möchte das zum Anlass nehmen, euch wieder einmal einen kleinen Überblick darüber zu geben, welche UX-Themen ihr in diesem Jahr auf dem Schirm haben solltet.

Weiterlesen

Der Noob, die Container und warum statisch gebundene Sprachen wieder cool sind

Da hatte ich doch neulich die Chance, bei unserem Crew-Man Talex eine zweitägige Druckbetankung zum Thema Kubernetes zu bekommen. Das war viel Zeug, aber es passte alles zusammen … und ein paar Dinge aus dem Informatikstudium kamen auch wieder zurück.

Jedenfalls war ich angefixt. Lass uns mal einen Container bauen! Warum hatte ich das eigentlich vorher noch nie getan? Na ja, in der Rolle eines Agile Coaches ist es dann doch nicht mein oberstes Ziel, selbst was zu dockern.

Weiterlesen

Async/Await in Swift 5.5

With Swift 5.5, the Swift programming language gains a powerful new set of tools for making asynchronous code easier to read, write, and debug. Similar to other languages (e.g., Python, C#), the async/await pattern is added and used plentifully throughout Swift’s standard library.

In this article, I am going to introduce the basics of async/await in Swift 5.5. Also, I will dive in further by looking at how to write asynchronous code in a structured way. Last but not least, we will explore how async/await integrates with SwiftUI and how you can update your existing code to make use of async/await.

Note: Using async/await requires Xcode 13 and is supported by iOS/iPadOS 15, macOS 12 and watchOS 8 (or later).

Weiterlesen

Von Fackeln und Forken – wie der Mob remote zusammenkommt

Die aktuelle Situation verlangt von uns, im Home-Office zu arbeiten. Dadurch fehlt vielen Teams der direkte persönliche Kontakt; im Alltag kommt es bei uns zum Beispiel sehr häufig vor, dass ein Teammitglied in den Raum hinein ruft, wie ein Problem zu lösen wäre. Schon alleine das verbale Auseinandersetzen mit dem Problem führt häufig zur Lösung.

Damit wir nicht bald alle nur noch mit unseren Gummienten reden, möchte ich hier eine mögliche Lösung aufzeigen. Denn es gilt: Entwicklerteams können auch remote hervorragend zusammenarbeiten.

Weiterlesen

Retrospektive Schulden

In meinem Lieblings-Slack zu agilen Themen, dem Slack-Kanal von Mein Scrum ist kaputt, wurde wieder einmal eine spannende Frage gestellt:

Wie wirkt sich die Frequenz einer Retrospektive auf die Dynamik und die Inhalte aus? Ich habe das Gefühl, dass bei Retrospektiven, die man eher unregelmäßig macht, man einen großen Raum geben muss, um sich „auskotzen“ zu können. Ich fänd es spannend, wenn wir da ihr hierüber von euren Erfahrungen berichtet

• Wie ist dieser Zusammenhang
• Wie entwickelt sich auch eine Retro innerhalb eines Teams im Zeitverlauf

Oft ist das Problem ja nicht die richtige Antwort, sondern die richtige Frage. Und ich glaube, dass hier ist genau so eine „richtige Frage“.

Weiterlesen

Architectural Decision Records

Architecture is abstract until operationalized, when it becomes a living thing.

Patrick Kua

Das agile Manifest für Software-Entwicklung hat die Dokumentation nicht ohne Grund auf die rechte Seite gestellt: „Working software over comprehensive documentation.“

Eine leichtgewichtige und daher schnelle Dokumentation ermöglicht die agile Praxis der Architectural Decisions Records.

Weiterlesen

Die 10 Commandments of Egoless Leadership

In der Softwareentwicklung gibt es die 10 Commandments of egoless programming aus The Psychology of Computer Programming schon lange. 

Das Grundmotiv dieser Gebote ist die Akzeptanz der eigenen Schwächen und Fehler. Bei der Erstellung von Software spielen sie eine so große Rolle, dass wir das ganze mit Test-driven Development sogar zur Arbeitsweise erhoben haben:

Wir beginnen mit dem Test, der mangels Code einen Fehler anzeigt; unser eigentlicher Auftrag ist nur die Reparatur des Fehlers. Unser Normalnull ist also der Fehlerzustand.

Weiterlesen