Ich bin mir nicht sicher, ob es sich widerspricht, vorab über ein Problem nachzudenken oder iterativ vorzugehen. Wie bei vielen anderen Dingen denke ich, sollten Sie sich bemühen, das Gleichgewicht zwischen beiden zu erreichen. Wie findest du das Gleichgewicht? Das lernst du mit Erfahrung und oftmals am besten mit der Zeit (dh mit Dingen, die dir Erfahrung bringen), wenn du es nicht ganz richtig verstehst (oder noch besser: einfach alles falsch machen). Wie Sie bereits betont haben, gibt es das Sprichwort "Schnell loslassen, oft loslassen". Es gibt noch eine ähnliche: "Früh scheitern, schnell scheitern, oft scheitern".
Vorausdenken ist großartig und Sie sollten es unbedingt tun. Aber mit etwas Erfahrung lernen Sie, wann Sie aufhören sollten zu denken und etwas aufzubauen, auch wenn Sie nicht über alle Daten verfügen. Wenn Sie es erstellen, erhalten Sie mehr Einblick in die Problemdomäne und können möglicherweise eine viel bessere Lösung finden. Daher würde ich empfehlen, eine nicht von der anderen auszuschließen, sondern "Kopf denken" zu einem Teil Ihrer Iterationen zu machen, und ich denke, dass Sie im Laufe der Zeit selbst die richtige Antwort auf diese Frage finden werden.
Nur ein kleines Beispiel. Neulich hatte ich mit einer Entscheidung für das Software-Design zu kämpfen. Im Nachhinein war es relativ trivial, aber ich hatte zwei Alternativen und es schien, als würden beide funktionieren. Ich ging immer wieder auf die Vor- und Nachteile der einzelnen Punkte zurück und überlegte dann meine Entscheidungen. Rückblickend ist es ein bisschen peinlich, wie viel Zeit ich damit verbracht habe, nachzudenken. Dann sagte ich mir, f # @ k it! Und anstatt eines der Designs zu verwenden, habe ich einfach Code gehackt und alles Gute, was Sie über gutes Design lernen, vollständig ignoriert. Ich habe das Feature in ca. 45 Minuten zum Laufen gebracht. Dann ging ich zurück, schaute meinen Code an und überarbeitete ihn in etwas Solides und etwas, für das ich mich nicht schämen würde, in die Quellcodeverwaltung einzuchecken. Der lustige Teil ist, dass, nachdem ich den Hack zum Laufen gebracht habe, "
Eine andere Sache würde ich speziell für Probleme empfehlen, mit denen Sie jetzt konfrontiert sind (dh große, komplexe Aufgaben, die sich abzeichnen). Anstatt Dinge in Serie zu machen, mache sie parallel. Brechen Sie Ihren Tag in Stücke auf, in denen Sie recherchieren und dann anhalten, umschalten und eine Weile codieren, zumindest in Teilen des Projekts, die keine vollständigen Unbekannten sind. Auf diese Weise bleiben Sie in der Nähe des Codes und erhalten eine bessere Perspektive, und Sie werden nicht durch den Versuch ausgebrannt, zu viele Informationen zu schnell zu absorbieren. Zumindest für mich ist es nach ein paar Stunden Recherche gut, das Gehirn Dinge verdauen zu lassen, Aufgaben zu wechseln und für eine Weile etwas anderes zu tun. Dann kommen Sie zurück zu mehr Forschung.