I started a podcast about a week ago and the first episode was an exercise that helped me overcome writer’s block. In the episode I said that I don’t get “coder’s block”.
This is more or less true, but I want to elaborate. I don’t mean that I can instantly solve any bug or program anything I want at will. I mean that I can make progress and do something.
When I have a problem I need to solve and literally have no idea what to do next, here are a few things that help.
- Write down everything you know about the problem
- Assumptions
- Goals
- Constraints
- Share this document with colleagues or talk to them about it.
- Are the assumptions and goals correct?
- Can a constraint can be loosened?
- Do experiments to learn more and update your document
- Automated tests and scripts that help reproduce the issue
- User tests or analytics
- Diagnostic logging
- Think bigger: Is there a fundamental problem that, if solved, makes this problem go away
- Think smaller: Can you solve a subset of the problem
And, sometimes it’s right to put a hard problem on the back burner and come back to it later.