Blog

Metaphern in der Softwareentwicklung

Gerard van de Glind

Aktualisiert Oktober 22, 2025
6 Minuten

Menschen verwenden Metaphern, um etwas besser zu verstehen oder zu erklären. Metaphern in der Softwareentwicklung sind allgegenwärtig, wie in der Computerwelt im Allgemeinen. Vor allem Menschen, die zwar in der Softwareentwicklung tätig sind, aber keine Erfahrung mit der eigentlichen Softwareentwicklung haben, verwenden oft verschiedene Metaphern, um besser zu verstehen, was Sie sind Umgang mit. Manche Metaphern funktionieren, aber viele sind eher schädlich als hilfreich. In diesem Beitrag werde ich einige Metaphern auflisten, die ich als Softwareentwickler in den letzten Jahren gehört habe, angefangen mit eher schlecht gewählten oder verstandenen Metaphern.

  • Software-Entwicklung ist wie der Bau eines Hauses - Als Metapher ist der Bau eines Hauses so alt wie die geschriebene Geschichte, genauso wie zum Beispiel ein Schlüssel oder Wasser. Im weiteren Sinne ist ein Haus also gar keine so schlechte Metapher (' mein Haus sollte nicht auf Sand gebaut sein'). Software als etwas zu sehen, das man gebaut werdenund die Softwareentwickler als Bauherren ist jedoch eine sehr schlecht gewählte Metapher. Softwareentwicklung ist im Grunde genommen Design. Um in Metaphern zu sprechen: Software-Entwicklung ist wie der Entwurf eines Hauses. Ein Architekt entwirft zusammen mit einem Ingenieurbüro, einem technischen Zeichnungsbüro und verschiedenen anderen ein Haus. Danach kann dieser Entwurf unendlich oft gebaut werden. Etwas, das in den Niederlanden mit Vinex wijken üblich ist (Bild von Wikimedia commons). Los Angelesstraat, Den Haag. Dasselbe gilt für Software, nur dass Sie keinen Bauunternehmer brauchen, um die Häuser zu bauen: Sie müssen nur kompilieren, bauen und bereitstellen.
  • Ein Auto - keine Metapher scheint beliebter zu sein als die des Autos. Menschen vergleichen Software gerne mit einem Auto, wie in den vielen Witzen, die ein Auto mit Windows oder Apple. Der Grund, warum die Leute diese Metapher mögen, ist, dass fast jeder ein Auto hat und es sehr häufig mit wenigen Problemen benutzt. Wenn Sie ein neues Auto bestellen und angeben, dass Sie ein rotes Auto mit Benzinmotor und Chromfelgen möchten, bekommen Sie dieses Auto zu dem vereinbarten Preis. Und wenn es nicht fährt, geben Sie das Auto einfach zurück. Warum kann das bei Software nicht genauso sein: Ich gebe die Anforderungen an und bekomme das geliefert? Wenn Sie die vorangegangenen Abschnitte gelesen haben, können Sie erahnen, was an dieser Metapher falsch ist: Softwareentwicklung ist nicht wie die Bestellung eines Autos oder gar die Herstellung eines Autos. Software-Entwicklung ist wie das Entwerfen eines Autos. Ein sehr empfehlenswertes Buch von Poppendieck, Schlanke Softwareentwicklung erklärt dies im Detail. Bei Entwurfsprozessen werden Sie nie genau wissen genau was das Ergebnis sein wird. Und wenn Sie ein Kunde sind und sich tatsächlich für das Ergebnis interessieren, müssen Sie während des gesamten Prozesses an der Gestaltung beteiligt sein, entweder indem Sie selbst als Kunde anwesend sind oder indem jemand Sie vertritt. In Scrum, dem Softwareentwicklungsprozess, der hier bei Xebia verwendet wird, wird diese Rolle als Product Owner bezeichnet. Ein Industriedesigner beim Skizzieren
  • Software sollte wie Elektrizität sein - es sollte einfach funktionieren. Der Gedanke hinter dieser Metapher: Softwareentwicklungsdienste sind eine Versorgungsabteilung, genau wie die Finanzabteilung, die Reinigungsabteilung oder der Helpdesk. Irgendwo im Unternehmen gibt es eine Softwareentwicklungsabteilung, die für die Automatisierung unseres Unternehmens zuständig ist. Softwareentwicklung ist jedoch kein Dienstprogramm; Softwareentwicklung ist die Schaffung eines neuen Dienstprogramms. Allein die Einführung einer neuen Software verändert Ihr Unternehmen, die Art und Weise, wie Sie Ihre Geschäfte abwickeln. Das steht nicht im Widerspruch zu dem Spruch 'IT sollte für das Unternehmen da sein und nicht umgekehrt': Die IT verändert Ihr Unternehmen zum Nutzen des Unternehmens. Stellen Sie sich die Softwareentwicklung wie das Design eines neuen Geräts vor, sei es ein neuer Fernseher, eine Kaffeemaschine oder eine Art Segelboot. Oder stellen Sie sich vor, Sie würden eine völlig neue Art der Buchhaltung einführen. Oder wie die Einführung von elektrischem Licht, wenn Sie bisher an Gasbeleuchtung gewöhnt waren. Die Komplexität variiert von Fall zu Fall, aber in jedem Fall ist die Softwareentwicklung komplex und Sie können die Softwareentwicklung nicht wie ein Dienstprogramm mit festen Ergebnissen verwalten, indem Sie einige KPIs und ein paar Anforderungsdokumente. Ihr Unternehmen, die Art und Weise, wie Sie Geschäfte machen, wird sich ändern, wenn eine neue Software eingeführt wird, und Sie können nicht genau vorhersagen, wie.
  • Ein Anwalt - Was hat Softwareentwicklung mit Jura zu tun? Die Arbeit selbst ist nicht sehr ähnlich - die Ähnlichkeit besteht darin, wie die Menschen Fachleute im Bereich Recht sehen könnten oder sollten:
    • Viele Menschen studieren Jura (zumindest in den Niederlanden), aber nur wenige von ihnen werden tatsächlich Anwalt in einer offiziellen Anwaltskanzlei. Ähnlich viele Menschen haben irgendwie programmieren gelernt, aber nur wenige sind tatsächlich gute Software-Ingenieure.Außerdem sind viele mittelmäßige Software-Ingenieure nicht gleich ein guter Software-Ingenieur, genauso wie Sie eine viel geringere Chance haben, vor Gericht zu gewinnen, wenn Sie eine Menge mittelmäßiger Anwälte mitnehmen. Wenn Sie gute Software-Ingenieure einstellen, werden Sie letztendlich mehr Geld sparen, als wenn Sie billige Software-Ingenieure einstellen.
    • Ein guter Anwalt kombiniert zumindest analytische Fähigkeiten mit tiefgreifenden Kenntnissen der Gesetze in dem Fachgebiet, auf das er sich spezialisiert hat. Er (oder sie) liest viel über andere Fälle, juristische Zeitschriften, neu erlassene Gesetze usw. Er wird sein Bestes für den Mandanten tun, aber ein guter Anwalt wird nicht buchstäblich das tun, was der Mandant von ihm verlangt - schon gar nicht, wenn der Mandant ihn bittet, etwas Unmoralisches zu tun oder etwas, das für den Ausgang des Falles sehr schlecht sein könnte.Ähnlich sollte sich ein Softwareentwickler auf ein gutes Endergebnis konzentrieren - die Schaffung von Kundennutzen. Er sollte nichts Unmoralisches oder Unmögliches versprechen, wie z.B. das Versprechen, dass wir das Projekt "in-time, in-budget und gemäß Ihrer Spezifikation" fertigstellen (wenn die Spezifikation, wie praktisch immer, zu vage und mehrdeutig ist, um so etwas zu versprechen). Wenn der Kunde etwas verlangt, was sich letztlich negativ auf das Endergebnis auswirkt, z.B. das Testen zu überspringen oder den Integrationsserver auf einen späteren Zeitpunkt zu verschieben, sollte ein guter Softwareentwickler sich weigern, weiterzumachen.
    • Schließlich können Sie ein guter Anwalt werden, indem Sie zunächst ein Junior Associate sind und mit jemandem zusammenarbeiten, der bereits ein guter Anwalt ist. In der Software-Entwicklung könnte das heißen: Software-Ausbildung. Bis vor kurzem kannte ich kein Unternehmen, in dem man eine Ausbildung zum Softwareentwickler machen konnte. Bei vielen Softwareentwicklungsunternehmen können Sie als eine Art Trainee/Junior anfangen, aber das bedeutete in der Regel, dass Sie mit der Wartung, dem Support oder dem Testen begannen und man von Ihnen erwartete, dass Sie sich selbst Programmierkenntnisse aneignen oder Teamleiter, Analytiker oder eine andere Rolle übernehmen, in der Sie nicht mehr programmieren müssen. Seit kurzem gibt es die Möglichkeit, eine Ausbildung in der Softwareentwicklung zu absolvieren: wenn Sie gerade einen BSc oder MSc im Bereich Ingenieurwesen abgeschlossen haben, gerne programmieren und Software entwickeln: gehen Sie zu Lehrlingsausbildungsprogramm bei Xebia.

Verfasst von

Gerard van de Glind

Contact

Let’s discuss how we can support your journey.