<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dieter Goetz</title>
    <description>The latest articles on DEV Community by Dieter Goetz (@requiscribe).</description>
    <link>https://dev.to/requiscribe</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4141059%2F7d52d33d-ae76-4e7c-b999-a31b2359c88c.webp</url>
      <title>DEV Community: Dieter Goetz</title>
      <link>https://dev.to/requiscribe</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/requiscribe"/>
    <language>en</language>
    <item>
      <title>„Das haben wir schon immer so gemacht“ ist keine Anforderung</title>
      <dc:creator>Dieter Goetz</dc:creator>
      <pubDate>Fri, 25 Sep 2026 14:56:17 +0000</pubDate>
      <link>https://dev.to/requiscribe/das-haben-wir-schon-immer-so-gemacht-ist-keine-anforderung-4i50</link>
      <guid>https://dev.to/requiscribe/das-haben-wir-schon-immer-so-gemacht-ist-keine-anforderung-4i50</guid>
      <description>&lt;p&gt;In fast jedem länger bestehenden System gibt es Dinge, die niemand mehr hinterfragt.&lt;/p&gt;

&lt;p&gt;Ein Feld ist Pflichtfeld.&lt;br&gt;
Eine Freigabe braucht drei Unterschriften.&lt;br&gt;
Eine Maschine wartet auf ein bestimmtes Signal.&lt;br&gt;
Ein Datensatz enthält einen Wert, den niemand zu verwenden scheint.&lt;br&gt;
Ein Prozess hat sieben Schritte, obwohl fünf offensichtlich genügen würden.&lt;/p&gt;

&lt;p&gt;Fragt man nach dem Grund, kommt irgendwann eine bemerkenswert ehrliche Antwort:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;„Das haben wir schon immer so gemacht.“&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Das klingt harmlos.&lt;/p&gt;

&lt;p&gt;Für Requirements Engineering ist es ein Warnsignal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Eine vernünftige Entscheidung kann ihre Begründung überleben
&lt;/h2&gt;

&lt;p&gt;Viele solcher Regeln waren ursprünglich keineswegs unsinnig.&lt;/p&gt;

&lt;p&gt;Vielleicht gab es eine technische Einschränkung. Vielleicht verlangte ein früherer Kunde diesen Ablauf. Vielleicht musste eine alte Schnittstelle unterstützt werden. Vielleicht löste der zusätzliche Prozessschritt einmal ein echtes Problem.&lt;/p&gt;

&lt;p&gt;Die Organisation passte sich an.&lt;/p&gt;

&lt;p&gt;Der Ablauf funktionierte.&lt;/p&gt;

&lt;p&gt;Er wurde wiederholt.&lt;/p&gt;

&lt;p&gt;Und irgendwann verschwand der ursprüngliche Grund.&lt;/p&gt;

&lt;p&gt;Was blieb, war das Verhalten.&lt;/p&gt;

&lt;p&gt;Mit genügend Zeit verändert sich dann auch die Sprache:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;„Das System muss …“&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aus einer früheren Entscheidung ist scheinbar eine Anforderung geworden.&lt;/p&gt;

&lt;p&gt;Das ist der interessante Punkt.&lt;/p&gt;

&lt;p&gt;Nicht weil die alte Entscheidung notwendigerweise falsch ist.&lt;/p&gt;

&lt;p&gt;Sondern weil niemand mehr weiß, ob sie noch notwendig ist.&lt;/p&gt;

&lt;h2&gt;
  
  
  Verhalten ist kein Beweis für eine Anforderung
&lt;/h2&gt;

&lt;p&gt;In bestehenden Organisationen beobachten wir ständig Verhalten.&lt;/p&gt;

&lt;p&gt;Menschen benutzen bestimmte Arbeitsabläufe. Teams pflegen bestimmte Daten. Bediener führen bestimmte Schritte aus. Software enthält bestimmte Regeln.&lt;/p&gt;

&lt;p&gt;Bei der Ermittlung von Anforderungen ist es verlockend, dieses beobachtete Verhalten direkt zu übernehmen:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So wird es gemacht → also muss es so gemacht werden.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Doch dieser Schluss ist nicht zulässig.&lt;/p&gt;

&lt;p&gt;Das beobachtete Verhalten kann eine echte Anforderung widerspiegeln.&lt;/p&gt;

&lt;p&gt;Es kann aber genauso gut das Ergebnis sein von:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;einer alten technischen Einschränkung&lt;/li&gt;
&lt;li&gt;einem früheren Workaround&lt;/li&gt;
&lt;li&gt;einer inzwischen verschwundenen Schnittstelle&lt;/li&gt;
&lt;li&gt;einer organisatorischen Gewohnheit&lt;/li&gt;
&lt;li&gt;einer historischen Kundenanforderung&lt;/li&gt;
&lt;li&gt;einer Entscheidung, deren Begründung verloren gegangen ist&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Das Verhalten allein sagt uns nicht, welcher Fall vorliegt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Die gefährliche Frage
&lt;/h2&gt;

&lt;p&gt;Eine klassische Requirements-Frage lautet:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;„Was muss das System tun?“&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bei einem bestehenden System reicht sie oft nicht.&lt;/p&gt;

&lt;p&gt;Eine mindestens ebenso wichtige Frage ist:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;„Warum muss es das tun?“&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Und danach:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;„Gilt dieser Grund noch?“&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Das kleine Wort &lt;strong&gt;warum&lt;/strong&gt; kann einen erheblichen Unterschied machen.&lt;/p&gt;

&lt;p&gt;Denn wenn die Antwort lautet:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;„Das war wegen System X.“&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;und System X seit acht Jahren nicht mehr existiert, haben wir möglicherweise keine Anforderung gefunden.&lt;/p&gt;

&lt;p&gt;Wir haben ein Fossil gefunden.&lt;/p&gt;

&lt;h2&gt;
  
  
  Aber alte Regeln nicht einfach löschen
&lt;/h2&gt;

&lt;p&gt;Auch die gegenteilige Reaktion wäre ein Fehler.&lt;/p&gt;

&lt;p&gt;„Niemand kennt den Grund“ bedeutet nicht automatisch „wir brauchen es nicht“.&lt;/p&gt;

&lt;p&gt;Organisationen besitzen viel implizites Wissen. Eine scheinbar überflüssige Regel kann eine wichtige Sicherheits-, Betriebs- oder Geschäftsbedingung schützen, deren Zusammenhang nur nicht mehr offensichtlich ist.&lt;/p&gt;

&lt;p&gt;Die Aufgabe besteht deshalb nicht darin, alte Regeln aggressiv zu entfernen.&lt;/p&gt;

&lt;p&gt;Die Aufgabe besteht darin, ihren Status wieder sichtbar zu machen.&lt;/p&gt;

&lt;p&gt;Ist es eine aktuelle Anforderung?&lt;/p&gt;

&lt;p&gt;Eine technische Einschränkung?&lt;/p&gt;

&lt;p&gt;Eine Designentscheidung?&lt;/p&gt;

&lt;p&gt;Eine Gewohnheit?&lt;/p&gt;

&lt;p&gt;Ein Workaround?&lt;/p&gt;

&lt;p&gt;Oder lediglich etwas, das überlebt hat?&lt;/p&gt;

&lt;p&gt;Diese Unterscheidung ist wichtiger als sie klingt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Anforderungen brauchen Herkunft
&lt;/h2&gt;

&lt;p&gt;Eine Anforderung ohne nachvollziehbare Herkunft ist schwer zu beurteilen.&lt;/p&gt;

&lt;p&gt;Wenn wir wissen, &lt;strong&gt;warum&lt;/strong&gt; sie existiert, können wir sie diskutieren.&lt;/p&gt;

&lt;p&gt;Wenn wir wissen, &lt;strong&gt;wer oder was&lt;/strong&gt; sie benötigt, können wir ihre Gültigkeit überprüfen.&lt;/p&gt;

&lt;p&gt;Wenn wir ihre Abhängigkeiten kennen, können wir beurteilen, was passiert, wenn sich die Umgebung verändert.&lt;/p&gt;

&lt;p&gt;Fehlt all das, bleibt nur der Satz:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;„Das System muss das können.“&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Und nach einigen Jahren:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;„Das haben wir schon immer so gemacht.“&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Genau dort beginnt ein Teil der Requirements-Schulden, die sich in langlebigen Systemen ansammeln.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ein kleiner Test für bestehende Anforderungen
&lt;/h2&gt;

&lt;p&gt;Wenn du das nächste Mal auf eine alte, scheinbar selbstverständliche Anforderung stößt, versuche nicht zuerst, sie neu zu formulieren.&lt;/p&gt;

&lt;p&gt;Frage stattdessen:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Welches Problem würde entstehen, wenn wir diese Anforderung heute nicht hätten?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eine konkrete Antwort ist wertvoll.&lt;/p&gt;

&lt;p&gt;Schweigen ist ebenfalls wertvoll.&lt;/p&gt;

&lt;p&gt;Denn dann weißt du, dass hier noch etwas untersucht werden muss.&lt;/p&gt;




&lt;p&gt;Dieser Fall ist Teil des RequiScribe Requirements Failure Field Guide – einer Sammlung kleiner, wiederkehrender Muster, durch die Anforderungen falsch verstanden, übernommen oder formalisiert werden.&lt;/p&gt;

&lt;p&gt;Die deutsche Ausgabe des Field Guide:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://requiscribe.es/de/publications/requirements-failure-field-guide/" rel="noopener noreferrer"&gt;https://requiscribe.es/de/publications/requirements-failure-field-guide/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;RequiScribe untersucht Requirements Engineering aus einer einfachen Perspektive: Nicht nur was als Anforderung geschrieben wurde, sondern woher es kam, warum es existiert und was wir tatsächlich darüber wissen.&lt;/p&gt;

</description>
      <category>requirements</category>
      <category>softwareengineering</category>
      <category>architecture</category>
      <category>programming</category>
    </item>
    <item>
      <title>The solution arrived before the problem</title>
      <dc:creator>Dieter Goetz</dc:creator>
      <pubDate>Thu, 24 Sep 2026 11:09:08 +0000</pubDate>
      <link>https://dev.to/requiscribe/the-solution-arrived-before-the-problem-4g2</link>
      <guid>https://dev.to/requiscribe/the-solution-arrived-before-the-problem-4g2</guid>
      <description>&lt;p&gt;&lt;strong&gt;THE CASE&lt;/strong&gt;&lt;br&gt;
We need a faster coconut-cracking machine&lt;/p&gt;

&lt;p&gt;Upper management decrees: "We want to sell more coconuts." Some other manager proposes: "Then we will definitely need a faster coconut-cracking machine !"&lt;/p&gt;

&lt;p&gt;The proposal is concrete, costable and engineerable. What has not been established is whether cracking capacity is what prevents increased sales.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THE TRAP&lt;/strong&gt;&lt;br&gt;
Solutions make uncertainty disappear&lt;/p&gt;

&lt;p&gt;A specific proposal feels like progress. Specificity, plausibility and authority can create the impression that Requirements Engineering has already been done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THE FAILURE&lt;/strong&gt;&lt;br&gt;
The answer has occupied the place of the question&lt;/p&gt;

&lt;p&gt;A proposed solution has been allowed to take the place of the problem and need it is supposed to address.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FOLLOW THE REASONING&lt;/strong&gt;&lt;br&gt;
Objective&lt;br&gt;
→&lt;br&gt;
Problem / Need&lt;br&gt;
→&lt;br&gt;
Requirement&lt;br&gt;
→&lt;br&gt;
Solution&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THE DIAGNOSTIC&lt;/strong&gt;&lt;br&gt;
Take the machine away&lt;/p&gt;

&lt;p&gt;Remove the proposed solution.&lt;/p&gt;

&lt;p&gt;And then ask yourself: "Can the team still explain the desired outcome, the obstacle that currently prevents it and what actually needs to change?"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THE CONSEQUENCE&lt;/strong&gt;&lt;br&gt;
Doing the wrong thing very well&lt;/p&gt;

&lt;p&gt;The solution can be specified, designed, verified and commissioned correctly while the original objective remains unmet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THE RESPONSE&lt;/strong&gt;&lt;br&gt;
Keep the solution --- change its status&lt;/p&gt;

&lt;p&gt;Does that mean all the work which has been done is in vain ? Not at all:&lt;/p&gt;

&lt;p&gt;Keep it as a candidate. Reconstruct&lt;/p&gt;

&lt;p&gt;objective → problem → need → requirements → candidate solution,&lt;/p&gt;

&lt;p&gt;then assess the candidate against the established need.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;QUICK TEST&lt;/strong&gt;&lt;br&gt;
Remove the proposed solution&lt;/p&gt;

&lt;p&gt;Can the team still explain the problem and the need it is intended to satisfy?&lt;/p&gt;




&lt;p&gt;Originally published as part of the &lt;a href="https://requiscribe.es/en/publications/requirements-failure-field-guide/requiscribe-field-guide-01-human-gate-jf-spacing-v03.html" rel="noopener noreferrer"&gt;RequiScribe Requirements Failure Field Guide, Season 01&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>testing</category>
      <category>ux</category>
      <category>product</category>
    </item>
  </channel>
</rss>
