Wir haben alle diese Erfahrung gemacht. Sie gehen zu jemandem, von dem Sie wissen, dass er die Antwort auf eine Frage hat, stellen dieser Person die Frage und sie antworten mit der typischen Antwort: "Warum?" Sie erklären, warum Sie es wissen müssen, und sie versuchen, Ihr Problem zu lösen.
Es braucht Zeit, Armdrücken und Geduld, um das Gespräch wieder auf die ursprüngliche Frage zu lenken und nur diese verdammte Antwort zu bekommen.
Warum tun Programmierer dies ständig und warum wird das Verhalten umso schlimmer, je älter der Programmierer wird?
Wie können Sie einem Programmierer eine Frage so stellen, dass die Antwort auf die ursprüngliche Frage möglichst effizient extrahiert wird?
self-improvement
Reactgular
quelle
quelle
How do I walk on water?
Why?
I want to cross the river
Build a boat.
Antworten:
Weil es mehr Wissen erfordert, um zu bewerten, ob eine Lösung geeignet ist, als um die Lösung tatsächlich zu implementieren.
Es ist sehr schwierig, jemandem zu glauben, der sagt: "Ich weiß nicht, wie ich das machen soll, aber ich weiß genau, was ich tun muss." Programmierer bestehen ständig darauf, tiefer zu gehen, weil die Leute ständig darauf bestehen, die falschen Fragen zu stellen. Ja, manchmal kehrt es irgendwann zu Ihrer ursprünglichen Frage zurück, aber nicht immer.
Stellen Sie sich als Analogie vor, jemand käme zu einem Mechaniker und fragte ihn, wie er eine Autobatterie austauschen könne. Wenn Sie für die Diagnose einer defekten Batterie qualifiziert sind, können Sie in der Regel eine austauschen, sodass der Mechaniker Sie fragt, woher Sie wissen, dass die Batterie ausgetauscht werden muss.
Er weiß, wenn er das nicht tut, und es stellt sich heraus, dass Sie keine Batterie benötigen. Dann werden Sie immer wieder Fragen stellen, bis Sie schließlich herausfinden, dass Sie das Licht ausschalten müssen, wenn der Motor läuft nicht laufen. Wenn er Sie nach vorne fragt, scheint er Ihre Zeit zu verschwenden, aber er weiß aus eigener Erfahrung, dass er Ihnen beiden möglicherweise viel mehr Zeit spart.
Wenn Sie also die Frage vermeiden möchten, müssen Sie ihn von vornherein davon überzeugen, dass Sie wissen, wovon Sie sprechen.
quelle
"Die Frage ist speziell, wie man sich mit einem anderen Programmierer in Verbindung setzt, um eine Frage zu stellen, wobei der andere die Antwort hat und die Debatte darüber, warum die Frage gestellt wird, überspringt."
Sie können nicht, zumindest nicht deterministisch. Der andere Programmierer ist eine Person, kein Computer und nicht Ihr Diener. Wenn Sie ihnen eine Frage stellen, können sie wählen, was ihrer Meinung nach die beste Antwort ist. Wenn sie denken, dass sie mehr Kontext brauchen, können sie danach fragen.
Sie können Ihrer Frage eine Aussage voranstellen, die besagt, dass Sie nur eine kurze, fundierte Antwort suchen, die Sie jedoch nach eigenem Ermessen beantworten können.
quelle
Das kannst du nicht. Programmierer, besonders gute, sind dazu verdrahtet , Probleme zu lösen und effizient zu sein . Wenn ein Kunde oder ein Programmierkollege nach einer Antwort sucht, muss er sicherstellen, dass er das zu lösende Problem kennt, bevor er eine Lösung vorlegt. Auf diese Weise sind sie effizient (sie verschwenden nicht Ihre und ihre Zeit, indem sie eine Antwort geben, die Ihr Problem nicht löst) und sie lösen echte Probleme (indem sie Ihnen Lösungen / Antworten auf Fragen geben, die Sie stellen sollten).
Beispiel - Wenn ein Kunde zu Ihnen kommt und sagt, dass er eine X-Funktion implementiert haben möchte. Manchmal braucht der Kunde wirklich eine X-Funktion, und manchmal muss man sich wirklich in den Kunden einarbeiten und ihn befragen, um herauszufinden, dass er kein X, sondern etwas völlig anderes will. Je älter und erfahrener die Programmierer sind, desto wahrscheinlicher ist es, dass sie in der Vergangenheit verbrannt wurden, indem sie das Problem nicht auf den Punkt gebracht haben, bevor sie eine Lösung vorgestellt haben.
Um es zusammenzufassen: Wenn Sie möchten, dass Ihre Fragen genau beantwortet werden, müssen Sie sicherstellen, dass Sie:
Die meisten Menschen, die ich kenne, sind nur Menschen und keine Computer. Wenn Sie nur Antworten wollen, versuchen Sie es zu googeln.
quelle
Leider ist es so weit von der allgemeinen Wahrheit entfernt, wie es nur geht.
Dieses Verhalten ist auf die Minderheit der wirklich Guten beschränkt. Und du solltest es besser auch lernen.
Nur die verdammte Frage zu beantworten, die über das Warum hüpft, ist eine gute Möglichkeit, schnell und sicher in einen Abgrund zu fahren.
Wenn Sie den gebildeten Teil wirklich überspringen möchten, können Sie Ihrer Frage ein paar Sätze zu Einschränkungen und Ihrem Wunsch, Fragen zu überspringen, voranstellen. Möglicherweise erhalten Sie eine Antwort oder werden sie einfach weitergeleitet. Es ist besser, wenn Sie Ihre eigenen Forschungsergebnisse zusammenfassen.
quelle
Jede Antwort hier ist eine gute Antwort auf die "Warum" -Frage, aber niemand hat die Frage des OPs wirklich beantwortet.
Die Antwort ist überraschend einfach: Sagen Sie ihnen, warum dies getan werden muss, bevor Sie sie fragen, wie.
Das Beste, was Sie tun können, ist, die Entwickler in einige Besprechungen auf höherer Ebene über ein Produkt einzubeziehen - geben Sie ihnen einen Teil des Gesamtüberblicks, damit sie sehen können, warum genau dies getan werden muss. Sie können Sie sogar überraschen, wenn Sie sich das Wie als Erstes einfallen lassen.
quelle
Gute Programmierer wollen nicht nur irgendeine Lösung implementieren. Sie möchten die beste Lösung für das jeweilige Problem implementieren. Dies erfordert Informationen. Fragen sind der Weg, um Informationen zu sammeln. Ohne all die Informationen weiß der Programmierer, dass er in Gefahr ist, eine Lösung zu implementieren, die nicht allen Anforderungen entspricht und die nicht mehr funktioniert. Verstecken Sie keine Informationen vor Ihren Programmierern. Das Verbergen von Informationen kostet Zeit, zerstört die Moral und führt zu minderwertigen Lösungen.
quelle
Programmierer sind "fest verdrahtet", um Probleme zu lösen.
Gute Programmierer werden versuchen, die "richtigen" Probleme zu lösen.
Nur das zu liefern, wonach jemand fragt, ist [oft] das falsche Problem.
In den Tagen, in denen die Automatisierung von MS Office noch im Trend lag, wurden in der Regel innerhalb weniger Wochen zahlreiche Fragen gestellt, wie "dies" in einem Office-Produkt und "das" in einem anderen Produkt zu tun ist , dann nochmal was anderes in einem anderen. Jedes dieser Probleme ist schnell gelöst, aber das "Problem", das noch nicht vollständig geklärt ist, ist noch nicht gelöst. Sie kommen immer wieder zurück, um das nächste "Glied" in ihrer Kette zu finden.
Wenn du sie aufhältst und fragst "Warum?" dann müssen sie wieder Spur und erklären mehr im Großen und Ganzen , was sie wollen erreichen und nicht nur beschreiben , das Problem sofort vor ihnen. (Übrigens leiden Programmierer genauso darunter wie (wenn nicht mehr als) alle anderen, für die Foren wie diese ein Zeugnis ablegen).
Die Benutzerkette "Die Daten aus der großen Datenbank in Access, dann in Excel, um sie ein wenig zu massieren, und dann in Word, damit sie die Ergebnisse per E-Mail zusammenführen und diese wöchentlich per E-Mail an andere senden können" wird schnell durch ein ersetzt Batch-Job, der all das erledigt , mit den Ergebnissen, die als Erstes an einem Montagmorgen in den Posteingängen der Benutzer gespeichert werden, ohne dass ein manueller Benutzereingriff erforderlich ist .
Benutzern gefällt das.
Wir müssen wissen, wohin Sie möchten, bevor wir Ihnen den besten Weg dorthin bieten können.
Alternativ (um Monty Python zu paraphrasieren): "Möchten Sie die 5-minütige Antwort oder die volle halbe Stunde"?
Es hat keinen Sinn, dass der Programmierer alle Details einer bestimmten Funktion abrüttelt, wenn Sie nur wissen möchten, ob sie zurechtkommt, wenn Sie eine Zahl mit drei drei Dezimalstellen eingeben.
Wenn Sie Ihre Perspektive kennen, kann dies die Antwort, die Sie erhalten, oft radikal verändern.
quelle
Ihre letzte Frage lautet: "Wie können Sie einem Programmierer eine Frage so stellen, dass die Antwort auf die ursprüngliche Frage möglichst effizient extrahiert wird?"
Sie sind zunächst verwirrend "effizient" und "effektiv". Um am effizientesten zu sein , schreiben Sie einfach "Was ist die Antwort?" auf ein Stück Papier und zeigen Sie es dem Programmierer. Das ist eine sehr effiziente Möglichkeit, eine Frage zu stellen. Es ist auch sehr unwirksam, eine Antwort zu bekommen.
Und zweitens gehen Sie davon aus, dass Softwareentwickler Fragen beantworten. Sie sind nicht. Sie sind Problemlöser. Ihre Einstellung zeigt deutlich, dass Sie das Lösen von Problemen nicht verstehen. Der effektivste Weg, ein Problem zu lösen, besteht darin, das Problem so weit zu verstehen, dass Sie es einem Problemlöser beschreiben und dann einem Problemlöser präsentieren können. Die andere Methode besteht darin, das Problem teilweise so gut wie möglich zu verstehen und dann einem Problemlöser Ihr unvollständiges Verständnis vorzulegen. Dieser wird Ihnen zuerst die Fragen stellen, die Sie fürchten, um daraus ein vollständig verstandenes Problem zu machen, und es dann zu lösen.
Ein sehr ineffizienter Weg ist die Methode, die Sie versuchen: Holen Sie sich ein unvollständiges Verständnis des Problems, raten Sie, wie dieses Problem gelöst werden könnte, und fragen Sie einen Problemlöser, wie diese Lösung erreicht werden kann. Der Problemlöser hat dieses Verhalten bereits gesehen. 10 Mal, wenn er unerfahren ist, tausend Mal, wenn er erfahren ist. Der Problemlöser weiß also , dass Sie in eine völlig falsche Richtung geleitet werden. Und der Problemlöser tut, was zu tun ist, um in die richtige Richtung zu gelangen. Er stellt Fragen, um das eigentliche Problem zu verstehen. Erste Fragen, um Ihr unvollständiges Verständnis des Problems zu verstehen, und zweite Fragen, um das eigentliche Problem zu verstehen.
quelle
Beginnen Sie die Frage, indem Sie erläutern, was Sie erreichen möchten und in welchem Kontext Sie arbeiten. Wenn Sie genügend Kontext angeben, erhalten Sie kein "Warum". Sie erhalten ein "ist das wirklich notwendig?"
Denn statistisch gesehen sind die meisten vorgeschlagenen Funktionen nicht zu gebrauchen und die Implementierung lohnt sich nicht.
quelle