<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Software Engineering on markob.de</title><link>https://markob.de/software-engineering/</link><description>Recent content in Software Engineering on markob.de</description><generator>Hugo</generator><language>de-DE</language><lastBuildDate>Tue, 16 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://markob.de/software-engineering/index.xml" rel="self" type="application/rss+xml"/><item><title>Wann ist eine Software „stable"?</title><link>https://markob.de/software-engineering/wann-ist-eine-software-stable/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><guid>https://markob.de/software-engineering/wann-ist-eine-software-stable/</guid><description>&lt;p&gt;„Stable&amp;quot; klingt nach einer geprüften Eigenschaft. Tatsächlich ist es meist nur eine Selbstauskunft der Maintainer – keine Aussage über Qualität, sondern eine Behauptung über den eigenen Code.&lt;/p&gt;
&lt;p&gt;Das wird besonders deutlich an einer unauffälligen Composer-Einstellung, die in fast jeder &lt;code&gt;composer.json&lt;/code&gt; steht:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;minimum-stability&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;stable&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Composer unterscheidet Versionen nach einem reinen Namensschema:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;1.0.0-alpha
1.0.0-beta
1.0.0-RC1
1.0.0
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;„Stable&amp;quot; bedeutet hier: kein Alpha, kein Beta, kein Release Candidate. Jede Version ohne einen solchen Suffix gilt als stabil – &lt;code&gt;v1.0.0&lt;/code&gt;, &lt;code&gt;v1.2.3&lt;/code&gt;, &lt;code&gt;v2.0.0&lt;/code&gt;, alle gleichermaßen. Composer trifft damit keine Aussage über Qualität. Es trifft eine Aussage über eine Zeichenkette im Versionsnamen.&lt;/p&gt;</description></item><item><title>Der ehrlichste Satz in der Softwareentwicklung</title><link>https://markob.de/software-engineering/schaetzen-im-legacy-code/</link><pubDate>Fri, 05 Jun 2026 00:00:00 +0000</pubDate><guid>https://markob.de/software-engineering/schaetzen-im-legacy-code/</guid><description>&lt;p&gt;Bei Legacy-Code schätzt du nicht wie lange etwas dauert. Du schätzt, wie lange es dauert, bis du weißt, wie lange es dauert.&lt;/p&gt;
&lt;p&gt;Das klingt nach einer Ausrede. Es ist keine.&lt;/p&gt;
&lt;h2 id="warum-schätzungen-immer-falsch-sind"&gt;Warum Schätzungen immer falsch sind&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.heise.de/en/background/Won-t-fix-Part-1-Why-software-estimates-are-reliably-wrong-11304497.html"&gt;Golo Roden hat es in seiner „Won&amp;rsquo;t fix!&amp;quot;-Serie auf heise online&lt;/a&gt; gut formuliert: Softwareentwicklung ist kein Produktionsprozess. Eine Fabrik die bereits weiß wie man ein Auto baut, kann den Aufwand präzise planen. Wer Software entwickelt, erzeugt erst das Wissen das für die Lösung nötig ist. Das lässt sich nicht im Voraus messen.&lt;/p&gt;</description></item><item><title>„Mach mal schnell"</title><link>https://markob.de/software-engineering/mach-mal-schnell/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><guid>https://markob.de/software-engineering/mach-mal-schnell/</guid><description>&lt;p&gt;„Kannst du da mal schnell etwas ändern?&amp;quot; „Das ist doch nur eine Kleinigkeit.&amp;quot; „Da muss man doch nur kurz …&amp;quot;&lt;/p&gt;
&lt;p&gt;Wer länger in der Softwareentwicklung arbeitet, kennt diese Sätze. Gemeint sind sie selten böse. Trotzdem stecken darin zwei Probleme gleichzeitig: die Komplexität von Softwareänderungen wird nicht verstanden – und durch die Formulierung implizit entwertet.&lt;/p&gt;
&lt;h2 id="was-wirklich-passiert"&gt;Was wirklich passiert&lt;/h2&gt;
&lt;p&gt;Bevor eine einzige Zeile geändert wird, beginnt die eigentliche Arbeit. Frühere Entscheidungen verstehen. Abhängigkeiten erkennen. Risiken bewerten. Seiteneffekte vermeiden. Neue Entscheidungen treffen.&lt;/p&gt;</description></item><item><title>Das weiße Blatt</title><link>https://markob.de/software-engineering/das-weisse-blatt/</link><pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate><guid>https://markob.de/software-engineering/das-weisse-blatt/</guid><description>&lt;p&gt;Wer lange mit gewachsenen Systemen gearbeitet hat, entwickelt eine bestimmte Art zu denken. Man sieht nicht nur, was ein Werkzeug kann – man sieht, was es einem aufzwingt. Welche Entscheidungen es vorwegnimmt. Welche Wege es versperrt, bevor man überhaupt angefangen hat.&lt;/p&gt;
&lt;p&gt;Das weiße Blatt ist selten. In der Praxis arbeitet man fast immer im Bestand – mit Legacy-Code, mit bestehenden Abhängigkeiten, mit Entscheidungen, die jemand anderes vor Jahren getroffen hat. Das ist der Alltag, und diese Serie handelt davon.&lt;/p&gt;</description></item><item><title>Was bleibt vom Entwickler</title><link>https://markob.de/software-engineering/was-bleibt-vom-entwickler/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://markob.de/software-engineering/was-bleibt-vom-entwickler/</guid><description>&lt;h2 id="was-ich-nicht-mehr-tue"&gt;Was ich nicht mehr tue&lt;/h2&gt;
&lt;p&gt;Ich schreibe heute kaum noch Code. Nicht weil ich es nicht kann – sondern weil die KI schneller, konsistenter und ohne die kleinen Flüchtigkeitsfehler arbeitet, die sich in langen Arbeitstagen einschleichen.&lt;/p&gt;
&lt;p&gt;Ich tippe keine Boilerplate mehr, keine Konstruktoren, Getter oder wiederholenden Strukturen.&lt;/p&gt;
&lt;p&gt;Das klingt nach Verlust. Ist es aber nicht. Das Handwerk war nie der interessante Teil. Wertvoll war immer das Verstehen des Problems und das Urteil über die Lösung – alles, was der KI nicht abgenommen werden kann.&lt;/p&gt;</description></item><item><title>Die Schnecke</title><link>https://markob.de/software-engineering/die-schnecke/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><guid>https://markob.de/software-engineering/die-schnecke/</guid><description>&lt;p&gt;Ich habe heute zufällig eine Grafik gesehen, die oft gezeigt wird, wenn jemand Scrum erklärt.&lt;br&gt;
Ein großer Kreis mit einem kleineren Kreis darin, der sich hineinschraubt. Der Sprint dreht sich, der Daily Stand-Up dreht sich darin.&lt;br&gt;
Darunter ein Fließband: Backlog, Planning, Sprint-Backlog, Sprint, Finished Work. Von links nach rechts.&lt;/p&gt;
&lt;p&gt;Eine Schnecke.&lt;/p&gt;
&lt;p&gt;Die Schnecke ist kein schlechtes Tier. Sie ist beständig, anpassungsfähig, kommt ans Ziel. Aber agil?&lt;br&gt;
Nicht das erste Wort, das einem einfällt. Und doch trägt die bekannteste Visualisierung eines der einflussreichsten&lt;br&gt;
agilen Frameworks ihr Bild.&lt;/p&gt;</description></item></channel></rss>