Praktizierst Du als Entwickler Rubber Ducking / Debugging?

Das Ergebnis basiert auf 14 Abstimmungen

Ja 71%
Nein 29%

10 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
Ja

Ich betrachte das mehr als ein Witz für ein reales Phänomen, das jeder von uns kennt.
Jeder betreibt Rubber duck debugging, unabhängig davon, ob absichtlich oder in Wort oder Schrift oder nicht.

Es geht viel mehr darum, dass in deinem Kopf andere Regionen aktiv werden, wenn Du jemanden das Problem schilders, bzw. korrekter gesagt: Wenn Du darüber nachdenkst, wie Du jemanden das Problem schildern kannst.

Wenn Du jemanden dein Problem erklären willst, denkst Du erst darüber nach, bevor Du es aussprichst und dabei verrichtet dein Hirn seine Arbeit und Du hast dein Problem im besten Fall selber lösen können, weil Du beim "Erdenken" der Erklärung das Problem neu und von anderen Richtungen betrachtet hast.

Das ist Rubber duck debugging. Das Quitscheentchen ist nur ein populär gewordener Witz, der das Phänomen lustig beschreiben soll.

Und ja, ich denke, das macht jeder von uns.
Es kommt z.B. immer wieder vor, dass ich einen Kollegen um eine Meinung frage und dabei selber eine Lösung finde. Oder ich frage in einem Forum und finde beim Schreiben die Lösung. Oder ich überlege, wie ich dem Kollegen das Problem schildern kann, bevor ich ihn frage, und finde dabei die Lösung. Oder - vielleicht machen das wirklich mache - ich habe ein Quitscheentschen vor mir stehen und schildere ihr mein Problem.

Bei mir läuft es normalerweise so ab, dass ich ganz intuitiv in Gedanken anfange, das Problem neu und von hinten aufzuzäumen und erkläre es in Gedanken und auf abstrakte Weise sozusagen mir selber und finde dabei die Lösung.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler
Nein

Für mich wäre es schon ziemlich suspekt, wenn ein erfahrener Entwickler mit einem imaginären Freund (oder einem Quietschentchen) seinen Code "ausdiskutiert".

In einem solchen Fall wäre ich geneigt im helfen zu lassen:

Bild zum Beitrag

Natürlich visualisiere ich Abläufe sprachunabhängig im Kopf. Dies läuft bei mir jedoch auf einer abstrakten Ebene jenseits von gesprochenen oder geschriebenen Worten. Ich setzte das jeweilige erdachte Konzept erst in die jeweilige verwendete Programmiersprache um, wenn die "Simulation im Kopf" funktioniert.

Keine Ahnung, ob das bei mir jemals anders war. Nach Jahrzehnten der Praxis haben sich Gewohnheiten und Strategien herausgebildet, welche keiner bewussten Verwendung von Sprache bedürfen.

Ich weiß nicht wie andere Menschen gesehenes verarbeiten?🤔 egal ob ich mir einen Quelltext anschaue oder einen Roman lese, ich befasse mich nur selten bewusst mit Worten. Bei mir wird Text unbewusst und simultan in "Kopfkino" umgewandelt. ...und wenn ein Text logisch oder syntaktisch nicht nicht den erwarten Mustern entspricht, ergibt der "Film" keinen Sinn.🤯

Jeder Mensch hat sein eigenes Gehirn und seine eigenen Denkweisen. Mir käme die von Dir geschilderte Methode gelesenes zu Schritt für Schritt zu verifizieren extrem ineffizient vor. und als Hindernis für innovative Änderungen am Code.

Nehmen wir mal ein ganz banale Aufgabe . Du hast Zahlen 1,4,9,13,15,20,22 und sollst zu allen Ungeraden 1 addieren und die Geraden lassen wie sie sind.

standardvorgehen: Mit prüfen ob das Ergebnis von x mod 2 = 0 oder 1 ist und entsprechend handeln....

Powershell

1,4,9,13,15,20,22|%{
    if (($_% 2) -eq 0){
        $_
    }
    else {
        $_ +1
    }
}

...da kannst Du der Ente jede Zeile vorbeten, es ist Logisch und Syntaktisch richtig. ...und trotzdem Kacke. Ich sehe ziemlich oft derartige "Konstrukte" , und jeder arbeiten brav Zeile für Zeile ab, was 1000 andere schon ihrer Quietscheente erzählt haben... und nur selten wird das Vorgehen als Ganzes hinterfragt.

Betrachtet man die Sache als abstraktes Gesamtbild (Kopfkino) liefert das modulo 2 bereits einen Lösung ohne überflüssige Vergleiche:

1,4,9,13,15,20,22|%{
    $_ + $_% 2
}

...wir addieren einfach 0 oder 1 (von der Laufzeit her ist das wesentlich effizienter)

Das ist natürlich nur ein ganz banales Beispiel. (bei mir funktioniert das "Imaginieren" auch mit komplexen Strukturen und Abläufen)

Zeilenweise (oder gar in gesprochenen Worten) denken, fokussiert lediglich auf den aktuellen Punkt und lässt oft die Randbedingungen des Ganzen außer Acht.

 - (Computer, PC, programmieren)
Nein

Nie gehört - nie gemacht.

Woher ich das weiß:Studium / Ausbildung – Masterstudium Elektrotechnik - Schwerpunkt Embedded Systems
Ja

Bringt tatsächlich was. Es ist was anderes, wenn man es nur denkt oder es tatsächlich ausspricht.


Erzesel  31.10.2023, 13:56

Hoffentlich macht das bei euch im Büro nicht jeder... 😮 das würde ein ziemlich störendes Gemurmel und Gemumbel geben.

0
Noeru  31.10.2023, 14:00
@Erzesel

Man zieht sich dafür üblicherweise in Besprechungsräume oder kleine "Denker"zellen zurück ;)

0
Erzesel  31.10.2023, 14:02
@Noeru

In der katholischen Kirche nennt man die Sache Beichtstuhl.

0
Noeru  31.10.2023, 14:14
@Erzesel

So schlimm ist es dann doch noch nicht.

1
Ja

Ich machs zwar ohne Ente allerdings ist der Denkprozess in etwa der Selbe.