Es gibt keine Box!
Es gibt ein bestimmtes Problem zu lösen und eine Reihe von Einschränkungen, die möglicherweise zutreffen. Ermitteln Sie das Problem (denken Sie abstrakt und real), indem Sie es sowohl themenspezifisch als auch allgemeiner definieren.
Untersuchen Sie jede der Einschränkungen (machen Sie keine Annahmen), um festzustellen, ob, wann und in welchem Umfang sie möglicherweise zutreffen. Betrachten Sie das Problem aus der Perspektive der Betroffenen (Ziel nicht vergessen) sowie von hinten.
Machen Sie keine Annahmen.
Wenn Sie davon ausgehen, dass bestimmte Dinge zutreffen, ohne dass dies der Fall ist, hindern Sie sich daran, verschiedene Perspektiven zu untersuchen. Stellen Sie auch bestehende Entscheidungen / Annahmen in Frage, die andere getroffen haben - es könnte einen guten Grund dafür geben oder es könnte keinen geben oder es gab einen Grund, der nicht mehr zutrifft.
Abstrakt denken
Lernen Sie, Dinge als Muster und in abstrakten Begriffen zu sehen. Überlegen Sie sich beim Erkennen eines Musters ähnliche Dinge und prüfen Sie, ob Sie Aktionen daraus auf das aktuelle Objekt anwenden können. Wenn Ihr Fachgebiet Muster benannt hat, erfahren sie - aber nicht behandeln sie als Ausstecher Lösungen.
Denk nicht abstrakt.
Versuchen Sie immer, die Dinge so zu sehen, wie sie sind - denken Sie daran, dass "Benutzer" Menschen sind und nicht immer logisch oder rational. Üben Sie das Einfühlen in die Menschen, indem Sie das verwenden, was Sie erschaffen.
Vergiss das Ziel nicht.
Manchmal ist es einfach, sich mit einem bestimmten Ziel oder einer bestimmten Implementierung zu beschäftigen (z. B. "Wie passen wir diese X-Steuerelemente in die Benutzeroberfläche ein?"), Anstatt sich an das eigentliche Ziel zu erinnern (z. B. "Wie kann der Benutzer Y ausführen?"). )
Höre nie auf zu lernen.
Allgemeinwissen kann eine großartige Inspirationsquelle sein - viele Probleme wurden bereits von jemandem gelöst - je mehr Sie wissen, desto besser können Sie sich an etwas erinnern, das für die aktuelle Situation relevant ist.
Seien Sie ein guter Programmierer, nicht nur ein guter Programmierer.
Scheuen Sie sich nicht, mehrere Technologien und Techniken zu erlernen - sogar mehrere "überlappende" Sprachen können Ihnen helfen, die Dinge in unterschiedlichen Begriffen zu sehen, aber eine gute Auswahl an verschiedenen kann mehr helfen. Wählen Sie natürlich einige Bereiche aus, die Sie spezialisieren / beherrschen möchten, aber stellen Sie auch sicher, dass Sie eine gute Grundlage für allgemeine Konzepte haben, die Sie durch das Erlernen mehrerer verschiedener Sprachen erlangen können.
Gehen Sie nicht davon aus, dass jemand zu unerfahren ist, um zu helfen.
Manchmal scheinen Leute, die nicht sehr gut informiert sind oder die noch nie programmiert haben, für ein Programmierproblem unbrauchbar zu sein - aber das heißt nicht, dass Sie sie ignorieren sollten. Jeder hat unterschiedliche Perspektiven und Fähigkeiten und bietet möglicherweise einen einzigartigen Einblick, der Sie zu einer Lösung bringt.
Junge Kinder können besonders eine gute Quelle für eine "unbefleckte" Perspektive sein, die inspirierend sein kann.