Blog

Rasieren Sie den Yak nicht!

Erik Pragt

Aktualisiert Oktober 23, 2025
4 Minuten
Laut CATB ist der Akt des Rasierens eines Yaks"jede scheinbar sinnlose Aktivität, die in Wirklichkeit notwendig ist, um ein Problem zu lösen, das ein Problem löst, das mehrere Ebenen der Rekursion später das eigentliche Problem löst, an dem Sie arbeiten." Das erste Mal habe ich von dem Begriff in diesem Blog gelesen, aber das ist schon lange her. Erst vor kurzem habe ich festgestellt, dass a) ich es wieder tue und b) einige meiner Kollegen den Begriff nicht kannten. Daher habe ich beschlossen, (auch) darüber zu bloggen. Das Beispiel im Blog von Seth Godin ist ein perfektes Beispiel dafür, was Yak Shaving ist:
Die Yak-Rasur ist der letzte Schritt einer Reihe von Schritten, die erfolgen, wenn Sie feststellen, dass Sie etwas tun müssen. "Ich möchte heute das Auto wachsen." "Ups, der Schlauch ist immer noch kaputt vom Winter. Ich muss im Baumarkt einen neuen kaufen." "Aber Home Depot liegt auf der anderen Seite der Tappan Zee Brücke und ohne meinen EZPass ist die Fahrt dorthin wegen der Maut miserabel." "Aber, warten Sie! Ich könnte mir den EZPass meines Nachbarn leihen..." "Bob leiht mir seinen EZPass aber erst, wenn ich das Mooshi-Kissen zurückbringe, das mein Sohn ausgeliehen hat." "Und wir haben es noch nicht zurückgebracht, weil etwas von der Füllung herausgefallen ist und wir ein paar Yakhaare brauchen, um es wieder aufzufüllen." Und schon sind Sie im Zoo und rasieren ein Yak, damit Sie Ihr Auto wachsen können.

Meine Erfahrung

Das ist mir letzte Woche passiert, als ich eine Grails-Präsentation erstellen wollte. Für die Präsentation wollte ich ein schönes Frontend haben, und da meine Fähigkeiten als Designer nicht so gut sind, beschloss ich, nach einer Alternative zu suchen. Ich fand mehrere, von denen mir ExtJS am besten gefiel. Um es zu verwenden, dachte ich mir jedoch, dass ich ein Ext-Gerüst bauen sollte, um meine Benutzeroberfläche einfach zu generieren. Als ich die Grails-Mailingliste durchsuchte, fand ich mehrere Leute, die daran arbeiteten (und keiner war fertig), aber ich fand auch ExtTLD, ein auf Taglib basierendes Framework zur Generierung von Ext-Benutzeroberflächen. Es basiert jedoch auf JSP-Taglibraries, die Grails noch nicht unterstützt. Um eine (einstündige) Präsentation zu erstellen, muss ich also zunächst die JSP-Unterstützung in Grails implementieren! Das ist zwar eine großartige Gelegenheit, Grails kennenzulernen und etwas dazu beizutragen, aber es liegt weitab von meinem ursprünglichen Plan. Während dieser Umweg also einige großartige Möglichkeiten zum Lernen bietet, werde ich auch viel (viel!!) länger brauchen, um mein ursprüngliches Ziel zu erreichen, mit der Gefahr, es überhaupt nicht zu erreichen!

Kommt Ihnen das bekannt vor?

Wenn Ihnen diese Situation bekannt vorkommt, sind dies die Dinge, die ich zu beachten versuche, wenn ich ein Projekt in Angriff nehme:
  1. Reflektieren Sie
  2. Diskutieren Sie
Reflektieren Reflektieren können Sie nur, wenn Sie sich etwas Zeit von dem Projekt, an dem Sie arbeiten, nehmen. Gehen Sie spazieren, setzen Sie sich in die Bibliothek, alles ist möglich, aber versuchen Sie, sich Ihrem Projekt/Ihrer Aufgabe/Ihrem Problem mit ein wenig Abstand zu nähern. Dadurch werden die Dinge viel klarer und es fällt Ihnen leichter, den richtigen Ansatz zu wählen (nach Alternativen zu suchen oder sich hineinzustürzen). Diskutieren Sie Auch Menschen, die nicht direkt in das Projekt involviert sind, können Ihnen bei der Wahl des richtigen Ansatzes helfen, indem sie Fragen stellen wie "Haben Sie daran gedacht" oder "Warum nicht diesen Ansatz? Auch wenn Sie anderen Personen die Dinge erklären, werden sie viel klarer. Bei mir jedenfalls hat das dazu geführt, dass ich über meinen Ansatz nachgedacht habe. Mein ursprünglicher Ansatz hätte wahrscheinlich zu Chaos geführt und dazu, dass ich gar nichts geschafft hätte! Deshalb habe ich beschlossen, die Dinge auf eine agilere Art und Weise anzugehen: Ich entscheide, was ich in der begrenzten Zeit, die mir zur Verfügung steht, erreichen kann, und versuche, das umzusetzen. Wenn ich später eine Möglichkeit finde, es zu verbessern, ist das großartig, aber zuerst brauche ich eine funktionierende Software, die mich "an der Nase herumführt"! Danach, und wenn nötig, bleibt noch genug Zeit für ein Refactoring.

Fazit

Wenn Sie sich also jemals dabei ertappen, wie Sie einen Yak rasieren, ist es vielleicht an der Zeit, einen Schritt zurückzutreten, frische Luft zu schnappen und darüber nachzudenken, ob der von Ihnen gewählte Ansatz wirklich der beste Weg ist. Wenn ja, dann machen Sie weiter, wenn nicht, ist es vielleicht an der Zeit, sich nach einfacheren Alternativen umzusehen!

Verfasst von

Erik Pragt

Contact

Let’s discuss how we can support your journey.