Connect with us

Entwicklung & Code

Die Produktwerker: Die Macht der Pause


In dieser Folge ist Dominique Winter allein am Mikrofon und denkt laut über ein Thema nach, das im Produktalltag oft übersehen wird. Es geht um die Pause und um ihre Wirkung auf Entscheidungen, Zusammenarbeit und Produktentwicklung. Ausgangspunkt ist ein sehr persönlicher Zustand von Erschöpfung und Müdigkeit, der schnell deutlich macht, wie stark fehlende Erholung die eigene Denkfähigkeit beeinflusst. Genau daraus entsteht die Überzeugung, dass die Pause ein unterschätztes Werkzeug in der Produktarbeit ist.

Weiterlesen nach der Anzeige


Product Owner Days 2026

Product Owner Days 2026

(Bild: deagreez/123rf.com)

Fachvorträge und Networking-Möglichkeiten: Die Product Owner Days am 5. und 6. Mai 2026 in Köln befassen sich in über 20 Vorträgen mit aktuellen Themen rund um Product Ownership, KI im Produktmanagement, User Research, Product Discovery und Product Economics.

Pause bedeutet hier keinen Stillstand. Sie steht für Verarbeitung. Während der Körper scheinbar nichts tut, sortiert das Gehirn Eindrücke, verknüpft Gedanken und schafft Ordnung. Gerade Produktentwicklung ist geprägt von Komplexität, Unsicherheit und einer hohen Dichte an Entscheidungen. Ohne Pause entsteht schnell Entscheidungsmüdigkeit und Priorisierungen werden unsauber, strategische Fragen werden aufgeschoben und operative Themen übernehmen die Kontrolle. Die Pause schafft Raum, um innezuhalten und bewusst wahrzunehmen, warum eine Entscheidung so oder anders ausfällt.

Und gerade im persönlichen Arbeitsalltag zeigt sich das besonders deutlich. Product Owner und Produktverantwortliche sind häufig ein Engpass, weil viele Entscheidungen an ihnen hängen. Fehlt die Pause, fehlt die Energie für genau diese Entscheidungen. Dabei können kurze Unterbrechungen vor wichtigen Weichenstellungen helfen, den Kopf zu entlasten und die Qualität der Entscheidung zu verbessern. Das können sogar nur wenige Sekunden sein, ein tiefer Atemzug oder ein kurzer Blick aus dem Fenster. Auch bewusst kürzere Meetings oder kleine Lücken zwischen Terminen wirken wie eine Pause, in der Gedanken sacken dürfen.

Die Pause wirkt jedoch nicht nur individuell, sondern auch im Team. Produktarbeit lebt von Abstimmung und gemeinsamen Entscheidungen. Pausen im Team helfen dabei, Spannung abzubauen, Konflikte zu entschärfen und sich neu auszurichten. Retrospektiven, No-Meeting-Zeiten oder bewusste „Denkpausen“ sind Ausdruck davon. Sie unterbrechen das Dauerfeuer aus Meetings und To-dos und schaffen Raum für Reflexion. Gerade vor Commitments oder nach intensiven Diskussionen hilft eine kurze Pause dabei, bessere gemeinsame Entscheidungen zu treffen.

Weiterlesen nach der Anzeige

Auch das Produkt selbst profitiert von der Pause. Produktentwicklung besteht aus einem ständigen Wechsel zwischen Bauen, Lernen und Entscheiden. Lernen braucht Zeit. Feature-Pausen, bewusste Phasen ohne neue Umsetzungen oder Zeiten der Konsolidierung helfen dabei, Erkenntnisse zu verarbeiten und den nächsten Schritt klarer zu sehen. Weniger Aktivität kann hier zu mehr Wirkung führen. Auch Nutzerinnen und Nutzer profitieren davon, wenn Produkte nicht permanent verändert werden und Zeit bleibt, Neues zu verstehen und anzunehmen.

Am Ende steht die Einladung, die Pause bewusster einzusetzen. Als Entscheidungswerkzeug, als Lernfenster und als Mittel gegen Überlastung. Wo fehlt gerade die Pause im Produktteam, im Produkt oder bei einem selbst und was würde passieren, wenn man ihr mehr Raum gibt? Die Pause wirkt als Hebel gegen den Aktivitätswahn. Produktarbeit wird schnell mit Beschäftigung verwechselt. Viele Features, viele Storypoints und volle Kalender fühlen sich produktiv an, führen aber nicht automatisch zu mehr Wert. Die Pause hilft, den Fokus wieder auf Wirkung zu richten und bessere Entscheidungen zu treffen. Sie schützt langfristig den Outcome, auch wenn sie kurzfristig Output kostet.

Die aktuelle Ausgabe des Podcasts steht auch im Blog der Produktwerker bereit: „Die Macht der Pause“.


(mai)



Source link

Entwicklung & Code

Linus Torvalds schreibt Audiowerkzeug mit Vibe Coding


close notice

This article is also available in
English.

It was translated with technical assistance and editorially reviewed before publication.

Linus Torvalds, der sich bislang eher kritisch zum Einsatz von KI geäußert hat, ist selbst unter die Vibe-Coder gegangen. Er ließ die künstliche Intelligenz, in diesem Fall Googles Antigravity AI, jedoch weder auf den Linux-Kernel noch auf Git los, sondern erstellte mit ihrer Hilfe ein Hobby-Programm namens AudioNoise.

Weiterlesen nach der Anzeige

Das auf GitHub gehostete Tool simuliert Gitarrenpedal-Effekte wie Echo oder Phaser, und Torvalds hat es in erster Linie entwickelt, um selbst die Grundlagen der digitalen Signalverarbeitung besser zu verstehen. Für etwa die Hälfte des Programmcodes nutze er C, für die Python-basierte Visualisierung der Audiosamples kam dann Antigravity zum Einsatz.

„Über analoge Filter weiß ich mehr – wenn auch nicht viel mehr – als über Python“, sagt Torvalds im Readme-File zu AudioNoise. Daher habe er anfangs noch nach dem Motto „googlen und nachmachen“ programmiert, sich dann aber immer mehr aus dem Python-Coding zurückgezogen und den Audio-Sample-Visualizer schließlich komplett von der Google-KI in deren Eigenregie entwickeln lassen.

Auch das Ergebnis lässt sich in der Readme-Datei nachlesen: „Das Python-Visualizer-Tool ist im Grunde durch Vibe Coding entstanden“, erklärt Torvalds darin. Und es macht, was es machen sollte. Er hatte am KI-generierten Code so wenig auszusetzen, dass er ihn ohne Änderungen übernommen hat.

Für die Kernel-Entwicklung oder andere seriöse Projekte sei Vibe Coding jedoch ungeeignet, sagte Torvalds auf dem Open Source Summit im November 2025. Dem Linux-Kernel-Chef wird auch das Zitat zugeschrieben, „Vibe“ sei eine Abkürzung von „Very inefficient but entertaining“.

Immer wieder stellen Studien fest, dass sich die Codequalität durch den zunehmenden Einsatz von KI-Assistenten verschlechtert. Auch das Problem der KI-Halluzinationen ist weiterhin ungelöst.

Weiterlesen nach der Anzeige


(who)



Source link

Weiterlesen

Entwicklung & Code

Node.js-Updates bessern hochriskante Schwachstellen aus


close notice

This article is also available in
English.

It was translated with technical assistance and editorially reviewed before publication.

In der populären JavaScript-Laufzeitumgebung Node.js wurden mehrere Sicherheitslücken entdeckt, die teils mit hohem Risiko eingestuft werden. Jetzt sind für bereits Mitte Dezember angekündigte aktualisierte Versionen erschienen, die die Schwachstellen ausbessern. Entwickler sollten sicherstellen, dass die fehlerbereinigten Fassungen zeitnah zum Einsatz kommen.

Weiterlesen nach der Anzeige

In der Ankündigung vom Dienstag dieser Woche schreiben die Node.js-Entwickler, dass die Updates drei Sicherheitslücken mit hohem Risiko, vier mit mittlerem und ein Leck mit niedriger Risikoeinstufung schließen. Angreifer können sie missbrauchen, um etwa eingeschleusten Schadcode auszuführen, ihre Rechte auszuweiten, Sicherheitsmaßnahmen zu umgehen und Daten zu manipulieren oder vertrauliche Informationen abzugreifen, wie das CERT-Bund zusammenfasst. Außerdem enthalten die Sicherheits-Releases aktualisierte Abhängigkeiten, um öffentlich bekannte Schwachstellen anzugehen, und zwar „c-ares“ in Version 1.34.6 und „undici“ in den Fassungen 6.23.0 und 7.18.0.

In der Programmlogik zum Allokieren von Puffern kann nicht initialisierter Speicher offengelegt werden, wenn das „vm“-Modul mit einem Timeout verwendet und die Allokierung des Speichers davon unterbrochen wird (CVE-2025-55131, CVSS 8.1, Risiko „hoch“). Die Restriktionen mit den Optionen --allow-fs-read und --allow-fs-write ließen sich außerdem durch das Zusammensetzen von relativen Symlink-Pfaden umgehen (CVE-2025-55130, CVSS 7.7, Risiko „hoch“). Ein präparierter „HTTP/2 HEADERS“-Frame mit übergroßen und ungültigen „HPACK“-Daten kann Node.js zum Abstürzen bringen, was in einem Denial-of-Service mündet (CVE-2025-59465, CVSS 7.5, Risiko „hoch“).

Details zu den mittelschweren sowie den als niedriges Risiko eingestuften Schwachstellen finden Interessierte in der Ankündigung der Node.js-Entwickler. Die Schwachstellen sind in den Versionen Node.js 25.3.0, 24.13.0, 22.22.0 und 20.20.0 sowie neueren nicht mehr vorhanden. Die Aktualisierungen sollten Nutzerinnen und Nutzer zeitnah vornehmen.

Im vergangenen September konnte ein Kryptowährungsdieb mit einer Spearphishing-Attacke Zugriff auf das npm-Konto eines Entwicklers erlangen – npm ist die Paketverwaltung für Node.js-Pakete. Damit gelang dem bösartigen Akteur, Schadcode in rund 20 Pakete des Entwicklers qix, die zusammen auf mehr als zwei Milliarden wöchentliche Downloads kommen.


(dmk)



Source link

Weiterlesen

Entwicklung & Code

Events und Zeitstempel: Wann ist etwas wirklich passiert?


close notice

This article is also available in
English.

It was translated with technical assistance and editorially reviewed before publication.

Wer mit Events arbeitet, stößt früher oder später auf eine vermeintlich simple Frage: Wann ist etwas eigentlich passiert? Und die Antwort scheint naheliegend, denn jedes Event bringt schließlich einen Zeitstempel mit. Bei CloudEvents ist das etwa das time-Feld, das viele Systeme automatisch setzen, wenn ein Event gespeichert wird. Es liegt nahe, diesen Zeitstempel für Geschäftslogik zu verwenden, er ist ja schließlich da. Doch genau das führt zu subtilen Fehlern und falschen Annahmen.

Weiterlesen nach der Anzeige


the next big thing – Golo Roden

the next big thing – Golo Roden

Golo Roden ist Gründer und CTO von the native web GmbH. Er beschäftigt sich mit der Konzeption und Entwicklung von Web- und Cloud-Anwendungen sowie -APIs, mit einem Schwerpunkt auf Event-getriebenen und Service-basierten verteilten Architekturen. Sein Leitsatz lautet, dass Softwareentwicklung kein Selbstzweck ist, sondern immer einer zugrundeliegenden Fachlichkeit folgen muss.

Nehmen wir ein klassisches Bibliotheksbeispiel. Ein Leser leiht ein Buch aus, und das System erzeugt folgendes Event:


{
"source": "
"subject": "/books/42",
"type": "io.thenativeweb.library.book-borrowed",
"data": {
"borrowedBy": "/readers/23",
"borrowedUntil": "2026-02-12"
}
}


Fällt Ihnen etwas auf? Das Event enthält borrowedUntil (das Rückgabedatum), aber kein borrowedAt. Wer wissen will, wann das Buch tatsächlich ausgeliehen wurde, müsste auf den technischen Zeitstempel des Events zurückgreifen.

Aber hier liegt das Problem: Was, wenn der Leser das Buch bereits um 14:00 Uhr ausgeliehen hat, das System das Event aber erst um 14:02 Uhr geschrieben hat? Oder wenn der Bibliothekar die gestrigen Ausleihen erst heute Morgen eingetragen hat? Der technische Zeitstempel sagt uns, wann das Event gespeichert wurde, und nicht, wann die Ausleihe tatsächlich stattgefunden hat.

Weiterlesen nach der Anzeige

Es gibt mehrere Gründe, warum der technische Zeitstempel für Geschäftslogik problematisch ist. Ein technischer Zeitstempel beschreibt, wann das System etwas getan hat. Ein Geschäfts-Zeitstempel beschreibt, wann etwas in der realen Welt passiert ist. Das sind zwei grundlegend verschiedene Konzepte und sie zu vermischen, kann zu subtilen Fehlern führen.

Das time-Feld eines Events beantwortet die Frage:

„Wann wurde dieses Event aufgezeichnet?“

Die fachliche Anforderung lautet aber oft:

„Wann ist das wirklich passiert?“

Das ist nicht dieselbe Frage. Und wichtig: Es geht hier nicht um Präzision oder Latenz, es geht vielmehr um Semantik.

Hinzu kommt: Ob ein Zeitstempelfeld überhaupt existiert, hängt vom Event-Format ab. CloudEvents enthält ein time-Feld, andere Formate aber möglicherweise nicht. Wer Events jemals in ein anderes Format konvertieren muss (etwa für Archivierung, Export oder Integration in andere Systeme), riskiert, dass der technische Zeitstempel verloren geht. Wenn Geschäftslogik von einem Feld abhängt, das bei einer Migration verschwinden könnte, baut man auf instabilem Grund.

Und das vielleicht stärkste Argument: Events werden häufig erst nach dem eigentlichen Ereignis aufgezeichnet. Ein paar Beispiele:

  • Ein Bibliothekar stellt fest, dass jemand die gestrige Ausleihe mit dem falschen Datum eingetragen hat. Das Korrektur-Event schreibt er heute, obwohl es sich aber auf etwas bezieht, das gestern passiert ist.
  • Eine mobile Bibliotheks-App erfasst eine Ausleihe, während das Gerät offline ist. Wenn es sich Stunden später synchronisiert, wird das Event erst dann persistiert, aber die eigentliche Ausleihe fand viel früher statt.
  • Die Datenmigration aus einem Legacy-System importiert Jahre historischer Events. Die technischen Zeitstempel würden alle das heutige Datum zeigen und historische Analysen wertlos machen.
  • Wenn das Zielsystem vorübergehend nicht erreichbar war, werden Events möglicherweise zwischengespeichert und später geschrieben. Der technische Zeitstempel zeigt den Schreibzeitpunkt, nicht das ursprüngliche Ereignis.

In all diesen Fällen liefert der technische Zeitstempel falsche Antworten für die Geschäftslogik.

Das heißt: Wenn Zeit für das Geschäft relevant ist, gehört sie in die Event-Daten. Hier die verbesserte Version des Ausleihe-Events:


{
"source": "
"subject": "/books/42",
"type": "io.thenativeweb.library.book-borrowed",
"data": {
"borrowedBy": "/readers/23",
"borrowedAt": "2026-01-12T14:00:00.000Z",
"borrowedUntil": "2026-02-12"
}
}


Jetzt ist die Semantik klar:

  • borrowedAt: Wann das Buch tatsächlich ausgeliehen wurde (Geschäftszeit)
  • borrowedUntil: Wann das Buch zurückgegeben werden muss (Geschäftszeit (das war schon korrekt))
  • Event-Zeitstempel: Wann das System dieses Event aufgezeichnet hat (technische Zeit)

Interessant ist, dass borrowedUntil bereits ein Geschäftszeit-Feld war. Es fehlte nur das Gegenstück borrowedAt. Diese Inkonsistenz ist typisch: Entwickler denken oft daran, zukünftige Zeitpunkte aufzunehmen (Fristen, Fälligkeiten, Ablaufdaten …), vergessen aber gerne die vergangenen Zeitpunkte, also wann etwas tatsächlich geschehen ist.

Das Muster lässt sich auf andere Events übertragen:

  • book-borrowed mit borrowedAt: Wann das Buch ausgeliehen wurde
  • book-returned mit returnedAt: Wann das Buch zurückgegeben wurde
  • reader-registered mit registeredAt: Wann sich der Leser angemeldet hat
  • late-fee-charged mit chargedFor: Welchen Zeitraum die Gebühr abdeckt

Jedes dieser Felder beschreibt, wann etwas in der realen Welt passiert ist, unabhängig davon, wann das System es aufgezeichnet hat.

Heißt das, man sollte den technischen Zeitstempel komplett ignorieren? Nein. Es gibt legitime Verwendungszwecke: Debugging, um die Reihenfolge der Event-Persistierung nachzuvollziehen. Monitoring, um Systemlatenz und Durchsatz zu messen. Audit-Trails, um zu dokumentieren, wann Datensätze ins System gelangt sind.

Aber das sind alles technische Belange, keine fachlichen.

Und was ist mit dem technischen Zeitstempel als Fallback, wenn man vergessen hat, ein Geschäftszeit-Feld hinzuzufügen? Das ist ein Workaround, keine Lösung. Wer sich in dieser Situation wiederfindet, sollte erwägen, eine neue Version des Event-Typs einzuführen, die das explizite Zeitfeld enthält. Ja, dann muss man beide Versionen verarbeiten können, aber man gewinnt Klarheit und Korrektheit für die Zukunft.

Man sollte auch nicht versuchen, das Ganze mit

„die Latenz ist klein genug“

oder

„wir brauchen keine hohe Präzision“

zu beschönigen. Diese Argumente verfehlen den Punkt. Es geht nicht um Latenz oder Präzision, sondern es geht um semantische Klarheit. Ein technischer Zeitstempel und ein Geschäfts-Zeitstempel beantworten unterschiedliche Fragen, unabhängig davon, wie nah ihre Werte beieinander liegen mögen.

Zeit wirkt einfach, bis man genauer hinschaut. Bei der Arbeit mit Events ist die Unterscheidung zwischen „wann etwas passiert ist“ und „wann das System es aufgezeichnet hat“ fundamental. Wer diese Grenze verwischt, riskiert subtile Bugs, fehlerhafte Reports und Systeme, die die Realität nicht korrekt abbilden.

Die Lösung ist einfach: Wenn Zeit für das Geschäft relevant ist, gehört sie explizit in die Event-Daten. Das zukünftige Ich (und alle, die diese Events später analysieren müssen) werden es danken.


(who)



Source link

Weiterlesen

Beliebt