Không có hộp!
Có một vấn đề cụ thể cần giải quyết và một loạt các ràng buộc có thể áp dụng. Tìm ra vấn đề là gì (suy nghĩ trừu tượng và thực tế), xác định vấn đề theo cả hai thuật ngữ dựa trên chủ đề cụ thể và theo các thuật ngữ chung hơn.
Kiểm tra từng ràng buộc (không đưa ra các giả định) để xem liệu chúng có thể áp dụng ở mức độ nào, khi nào và ở mức độ nào. Nhìn vào vấn đề từ góc độ của người mà nó ảnh hưởng (đừng quên mục tiêu) cũng như từ phía sau hậu trường.
Đừng đưa ra giả định.
Nếu bạn cho rằng một số điều là đúng khi chúng không phải, bạn sẽ ngăn mình kiểm tra các quan điểm khác nhau. Cũng thách thức các quyết định / giả định hiện có mà những người khác đã đưa ra - có thể có một lý do chính đáng cho nó, hoặc có thể không, hoặc có một lý do không còn áp dụng.
Suy nghĩ trừu tượng.
Tìm hiểu để xem mọi thứ như mô hình và trong điều khoản trừu tượng. Khi bạn phát hiện ra một mô hình, hãy xem xét những điều tương tự và xem liệu bạn có thể áp dụng các hành động từ nó cho điều hiện tại không. Nếu khu vực chủ đề của bạn có các mẫu được đặt tên, hãy tìm hiểu chúng - nhưng không coi chúng là giải pháp cắt cookie.
Đừng suy nghĩ trừu tượng.
Luôn cố gắng nhìn mọi thứ như chúng cũng vậy - hãy nhớ rằng "người dùng" là con người và chúng không phải lúc nào cũng hợp lý hoặc hợp lý. Thực hành đồng cảm với mọi người bằng cách sử dụng những gì bạn tạo ra.
Đừng quên mục tiêu.
Đôi khi thật dễ dàng bị sa lầy với một mục tiêu / triển khai cụ thể (ví dụ: "làm thế nào để chúng tôi điều chỉnh các điều khiển X này vào UI?") Thay vì ghi nhớ mục tiêu thực sự (chẳng hạn như "làm thế nào để chúng tôi cho phép người dùng làm Y?" )
Không ngừng học hỏi.
Kiến thức chung có thể là nguồn cảm hứng tuyệt vời - rất nhiều vấn đề đã được giải quyết bởi ai đó - bạn càng biết nhiều bạn càng có thể nhớ một cái gì đó áp dụng cho tình huống hiện tại.
Hãy là một lập trình viên giỏi, không chỉ giỏi [ngôn ngữ lập trình].
Đừng sợ học nhiều công nghệ và kỹ thuật - thậm chí nhiều ngôn ngữ "chồng chéo" có thể giúp bạn nhìn mọi thứ theo các thuật ngữ khác nhau, nhưng một loạt các ngôn ngữ khác nhau có thể giúp nhiều hơn. Tất nhiên chọn một vài lĩnh vực để chuyên môn / thành thạo, nhưng cũng đảm bảo rằng bạn có một nền tảng tốt trong các khái niệm chung, mà bạn có thể đạt được bằng cách học nhiều ngôn ngữ khác nhau,
Đừng cho rằng ai đó quá thiếu kinh nghiệm để giúp đỡ.
Đôi khi những người có vẻ không am hiểu lắm hoặc chưa bao giờ lập trình có thể tỏ ra vô dụng đối với một vấn đề lập trình - nhưng điều đó không có nghĩa là bạn nên bỏ qua họ. Mọi người đều có những quan điểm và bộ kỹ năng khác nhau, và có thể cung cấp một cái nhìn sâu sắc độc đáo giúp bạn giải quyết vấn đề.
Trẻ nhỏ đặc biệt có thể là một nguồn tốt của một quan điểm "chưa được biết" có thể truyền cảm hứng.