I'm currently moving a bit slower than other engineers on my team. Here are some of the problems I'm facing:
One thing I wanted to add is that sometimes the act of formulating the question is very helpful in getting unblocked. So one mind trick I play is to tell myself: "I just want to work until I get stuck, and then I'll write down my question."
You'll be surprised how much more progress you make this way.
What makes a question high quality?
How to make sure that the initial planning phase is done right before commencing any development? Does anyone have a checklist they tick off that helps them with this and makes sure they cover edge cases?
The key to making the initial planning high quality is to establish the "exit criteria" before you even start. Before you get mired in the details and complexity of the task, try to document edge cases and the happy path (write this down). Your future self will thank you!
Another tactic is to get feedback from others about what cases to test. Make this lightweight, just a quick conversation or ping to an engineer, tech lead, or product manager.
What makes a question high quality:
Does anyone have a checklist they tick off that helps them with this and makes sure they cover edge cases?
I do actually!
For large projects (>1 month), I always create a system design doc. I made a masterclass series walking through that process (which contains an example doc you can use as a checklist) here: System Design Masterclass: Taro Playlists