Software Qualität beschreibt Praktiken um die Qualität von Software zu messen und sicherzustellen und Fehler zu vermeiden. In diesen Episoden erkunden wir die verschiedenen Aspekte der Software Qualität, einschließlich Tests, Code-Reviews und Qualitätssicherung. Wir besprechen auch, wie Organisationen die Qualität ihrer Software verbessern und wie sie sicherstellen können, dass ihre Software den Anforderungen und Erwartungen der Benutzer entspricht.
Design Documents und Request for Comments (RFCs): Die Engineering Art der Planungsphase Wir alle haben schon mal von einer Planungsphase gehört, um ein neues Projekt zu starten, und denken dabei an aufgeblasene Prozesse und lange Wasserfall-Diagramme. Und das Engineering-Team fragt sich oft: Wann kommen wir endlich mal zu den Details? Da kommen die Begriffe Design Documents und Request for Comments (RFCs) ins Spiel. Das doofe nur … Jemand muss diese Dokumente auch schreiben. Und da sind wir bei gleich zwei von Andy's Lieblingsthemen: Schreiben und Design Docs. Wir klären, wozu Design Documents eigentlich gut sind, worauf es ankommt, wo der Unterschied zu RFCs ist, ob das ganze nicht ein riesiger Wasserkopf ist, um einfach Dinge auf die Straße zu bringen und welche Kultur das ganze benötigt. Viel Spaß. Bonus: Wer schreibt, der bleibt. Das schnelle Feedback zur Episode: 👍 (top) 👎 (geht...
Testing ist nicht gleich Testing - Ein Deep Dive mit Sebastian Bergmann Viele Software-Entwickler⋅innen kennen Unit-Tests. Einige schreiben Unit Tests bei der Entwicklung. Wenige machen wirklich Test-Driven-Development. Doch beim Unit-Testing fängt das ganze Thema Testing doch erst an. Wie sieht es denn mit Static Testing, Non-Functional-Testing, White-Box-Testing, End-to-End-Testing, Dynamic Testing oder Integration Testing aus? Und hast du schon mal von Mutanten Testing gehört? Ganz schön viele Buzzwords. Und dabei haben wir noch gar nicht die Fragen beantwortet, was eigentlich gute Tests sind, wie viele Tests genug Tests sind, wie AI uns helfen kann bessere Tests zu schreiben oder ob Testing eigentlich moderner Kram ist oder schon seit Anbeginn des Programmier Zeitalters eine Rolle gespielt hat. In dieser Episode gibt es einen Rundumschlag zum Thema Testing mit Sebastian Bergmann....
Dokumentation: Jeder braucht sie, keiner will sie schreiben Vielen Software-Entwickler⋅innen ist eins nicht bewusst: Technisches Schreiben ist eine Profession. Ein eigener Beruf. Denn es ist eine Kunst, Dokumentation so zu schreiben, dass sie auch gelesen und genutzt wird. Die Kunst, komplexe technische Informationen schnell zugänglich zu machen. Doch wie macht man das denn nun genau? Darüber sprechen wir mit Jana Aydinbas. Jana ist von Beruf Technical Writerin. Wir klären die Unterschiede zwischen Technical Writing und normalem schreiben, geben Einblick in das Berufsfeld, widerlegen klassische Mythen die Software-Entwickler⋅innen gegenüber dem Schreiben von Dokumentation haben, und lassen uns erklären, was eigentlich eine gute und professionelle Dokumentation ausmacht und wie man selbst den eigenen Doku-Skill verbessern kann. Bonus: Jira Tickets lesen ist gleichzusetzen mit...
No-Code-Tools sind technische Schulden! Wenn es zu dem Thema No-Code kommt, gibt es oft zwei Lager: Die einen lieben es. Die anderen sagen “Das ist doch gar kein richtiges Programmieren”. Dennoch gibt es Firmen, die No-Code-Plattformen im großen Stil einsetzen. Und immer wenn damit “mal was richtiges” gebaut wird, stellen sich dieselben Fragen wie bei richtiger Software-Entwicklung: Wie sieht es mit der Security / Maintainability / Skalierung und Co aus? Und wenn wir sowas auf den Tisch bringen, dann ist das Thema Refactoring und technische Schulden nicht mehr weit. Und genau darum geht es in dieser Episode. Wolfgang ist fest überzeugt von “No-Code-Tools sind technische Schulden!”. Und Andy lässt sich das ganze mal erklären, um zu verstehen, was er eigentlich damit meint. Wir sprechen darüber, was No-Code und Low-Code eigentlich ist, was technische Schulden sind und warum dies ggf. nicht...
AI in der Software-Delivery: Unsere größte Möglichkeit oder purer Hype? - Ein Realitätscheck Generative AI ist in der Software-Entwicklung allgegenwärtig. Mit Co-Pilot stellt GitHub den Platzhirsch im Bereich Codegenerierung und bewirbt es mit einer 55% Produktivitätssteigerung. Bei solchen Effekten dreht jedes C-Level-Management am Rad. Doch was ist dran am Hype? Sollten wir wirklich alle so aufgeregt sein? Zu dieser Frage bzw. zu einem Realitätscheck sprechen wir mit Birgitta Böckeler, Global Lead for AI-assisted Software Delivery bei Thoughtworks. Sie beschäftigt sich u.a. damit, wozu Generative AI in der Softwareentwicklung genutzt werden kann, welche Einsatzbereiche neben der Codegenerierung existieren, für welche Bereiche Coding Assistenten gut und für welche nicht so gut sind funktionieren aber auch welchen Effekt die ganze AI-Bewegung auf den ganzen Softwareentwicklungsprozess...
Den Softwareentwicklungs-Prozess beschleunigen, indem mehr Arbeit auf die Entwickler abgewälzt wird? 2024 ist das Jahr der Effizienz. Überall wird nachgesehen, was noch schneller und besser laufen kann. So auch bei der Softwareentwicklung. Denn dort ist allzeit bekannt: Umso später ein Fehler aufgedeckt wird, desto teurer ist seine Behebung. Deswegen wurde früh damit angefangen, nicht nach der Softwareentwicklung das Programm zu testen, sondern schon während der Entwicklung die Tests zu schreiben. Der Test-Prozess wurde in der Zeitleiste nach Links geschoben. In der Industrie nennt man diesen Vorgang “Shift Left”. Doch bei Tests ist es nicht geblieben. DevOps verlagert die Operations nach Links. Cloud die Definition von Infrastruktur als Code (und somit in die Softwareentwicklung). Security nimmt ebenfalls einen wichtigen Standpunkt in der modernen Welt ein. Metriken, strukturierte Logs...
Deployst du auch Freitags und während Black-Frida und /Cyber Monday? Code Freezes verbieten, dass neue Änderung in den Hauptentwicklungszweig gemerged werden. Deployment Freezes verhindern das eine neue Software-Version an den Kunden ausgeliefert werden kann. Doch warum tut man dies? Denn eins steht fest: Software Engineers werden dafür bezahlt, Dinge zu ändern. Doch Code- und Deployment Freezes werden oft vom Management vorgegeben. Welche Gründe für Code- und Deployment Freezes sprechen, welche Arten von Freezes es gibt, was ein Code Slush ist, wie das ganze in verschiedenen Industrien aussieht, das klären wir in dieser Episode. Bonus: Wenn Software-Engineers durch Code-Freezes an ihrem Job gehindert werden. Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partners Das schnelle Feedback zur Episode: 👍 (top) 👎 (geht so)
Nur unsere eigene Lösung ist die beste: Das "Not invented here" Syndrome (NIH) Ihr kennt das bestimmt: Es gibt eine neue Herausforderung zu lösen. Das Team steigt sofort in die Planung ein, um die Anforderungen in Source-Code zu kippen. Ihr sitzt da und fragt euch: Das kann doch nicht sein, dass wir die einzigen sind, die dieses Problem haben. Da muss es doch schon was fertiges geben.”. Doch das Team wettert dagegen: “Unser Problem ist sehr speziell. Wir bezweifeln stark, dass es da etwas gibt, was unseren Anforderungen standhält. So oder so ähnlich spielt es sich jede Woche in etlichen Teams ab. Es wird die eigene Arbeit über externe Lösungen gestellt. Die Nachteile werden oft später sichtbar. Über dieses Thema sprechen wir in dieser Episode. Nicht nur, was die Gründe dafür sind, sondern auch, wie man dem etwas entgegensetzen kann. Bonus: Warum keiner vor dem "Not invented here"...
Liskov Substitution Principle: Das L in SOLID von Barbara Liskov Heutzutage wird die Informatik und Softwareentwicklung leider primär von Männern dominiert. Doch schaut man ein paar Jahrzehnte zurück, haben viele Frauen maßgeblich die heutige Software-Entwicklung geprägt. Eine Frau war Barbara Liskov. Liskov? Das kennt man doch irgendwoher? Genau. Sie ist unter anderem die Namensgeberin für das L in den SOLID-Prinzipien (die ersten 5 Prinzipien des objektorientierten Designs). Als zweite Frau überhaupt hat Barbara Liskov 2008 den berühmten Turing Award erhalten. In dieser Episode besprechen wir ihr Lebenswerk. Bonus: Barbara Liskov war an den Sprachkonstrukten Exceptions, yield, multiple assignments und multiple returns beteiligt. **** Diese Episode wird gesponsert von https://www.workshops.de Ob öffentliche Schulungen, die du einfach buchen kannst oder maßgeschneiderte Schulungen für...
DORA Metriken: Die Performance-Messung deines Software Development Teams bzw. die Ermittlung des Reifegrades von DevOps in deiner Organisation Softwareentwicklung ist ein kreativer Beruf. Jedes Projekt ist einzigartig und die geschriebenen Lines of Code sagen wenig über die dafür benötigte Zeit aus. Das Research-Programm DevOps Research and Assessment (DORA) versucht dennoch die Performance eines Software-Entwicklungs-Teams zu messen. Nicht via Lines of Code, sondern auf Basis von Aktivitäten, die Value liefern: Deployment Frequency, Lead Time for Changes, Mean Time to Recovery, Change Failure Rate und Reliability. Die Metriken selbst sind weit bekannt. Wie diese Metriken beeinflusst werden können, wer eigentlich dahinter steckt, und was die Organisation eigentlich für eine Kultur vorleben muss, damit es überhaupt zu einem positiven Ergebnis kommt, wissen viele nicht. Und genau darüber...
Zerstört die Anwendung von Clean Code die Performance deiner Applikation? Es war einmal Casey Muratori, ein Softwareentwickler mit Fokus auf Game-Engines, der sich ins Internet gestellt hat und sagte "Clean Code resultiert in schrecklicher Performance". Das YouTube-Video ging um die Welt, die YouTube-Kommentare wurden deaktiviert und Hackernews ging bis an die Decke. Auch der Kopf hinter "Clean Code", Uncle Bob, hat dies nicht auf sich sitzen lassen und ging in die Diskussion. Diese Episode handelt genau um das genannte Video. Wir besprechen, was die Key-Message des Videos ist, wer der Autor ist, was Clean Code ist und von wem es stammt und um was sich die Diskussion zwischen Casey Muratori und Uncle Bob dreht. Eine Art "Reaction-Podcast", sozusagen. Bonus: Was der heilige Gral der Teamentwicklung ist. Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partners ...
Alte Software akzeptieren oder lieber jedem Update hinterherjagen? Podcast als Video: https://youtu.be/94RZcJefzR8 Das ist die Balance, die jeder finden muss. Wann update ich Software? Wie lange kann ich alte Software betreiben? Ab wann ist alte Software ein wirkliches Risiko? Sollte ich bei jeder neuen Major-Version direkt updaten? Bringt es überhaupt etwas, eine alte Software auf etwas Neues zu migrieren, ohne neue Funktionalität zu bekommen? Welche Risiken verbergen sich hinter den Updates? Ist der klassische Spruch "Never touch a running system" noch aktuell oder sogar ein Fehler? All das und weitere Themenbereiche wie Long-Term-Support, End of Life-Dates, die Software-Metrik Dependency Drift, Dependabot und rostende Software besprechen wir in dieser Episode. Bonus: Warum früher alles besser war, sogar die Zukunft und warum Legacy immer das Geld verdient. Unsere aktuellen...
Schuftest du noch oder automatisierst du schon? Heute gehts um die Faulheit von Entwicklern: Wir sprechen über GitHub Actions - Was es ist, wozu man es benutzen kann, wie es das eigene Leben erleichtern kann, wo der Unterschied zu Jenkins ist, wie das Engineering Kiosk es selbst einsetzt und welche Use-Cases von der Community oft genutzt werden. Bonus: Warum LinkedIn einen HTTP Status Code 999 sendet, wann wir Programmiersprachen wie Unterhosen wechseln und was Michael "Bully" Herbig mit der ganzen Sache zu tun hat.
Code Reviews: Jeder will schnelles Feedback, doch niemand hat Zeit dafür - Eine Hassliebe. Eine Komponente im Alltag jedes Software Engineers. Egal ob Junior, Senior oder Staff-Engineer. Jeder erstellt Code Reviews und kommentiert die Arbeit von den Kollegen. Doch wie sehen gute Code Reviews aus? Was gehört hinein, was bleibt besser draußen? Wie viel Reviewer machen Sinn? Wie geht man mit Nitpicking-Kommentaren und Gatekeepern um? Und allgemein: Zieht dieser zusätzliche Schritt nicht die Performance des Teams runter und ist sowieso Overhead? All das und noch viel mehr in dieser Episode zum Thema Code Reviews. Bonus: Was Faultiere und Markus Söder mit Code Reviews zu tun haben und warum Blubberwasser den Charakter verdirbt.
Kommentare im Quellcode und Git Commit Messages - Liest die überhaupt wer? Ein Streit, der so alt ist wie die Software Entwicklung selbst: Code ist Selbsterklärend und braucht keine Kommentare. Oder doch? Und die Git Historie ist auch eigentlich sinnlos. Warum sollte da jemand zurück gehen und sich die Commit Messages durchlesen? Diese Fragen und Themen wie Semantic Versioning, Idiomatische Programmier-Patterns, Merge Commits, Story-Tellung und was Fynn Kliemanns Kunst mit der Git Branch-Visualisierung zu tun hat, klären Wolfgang und Andy in dieser Episode vom Engineering Kiosk. Bonus: Warum Andy einen neuen Podcast-Partner sucht und Wolfgang lieber seinen Code angreift, anstatt Ihn zu entwickeln.