Not a software tool, but a notebook. Writing what you are going to code/design has saved me countless times. Some "easy" problems turned out to have a lot of edge cases, some hard problems became much easier to approach when I wrote down what made them hard.
Diagrams are far easier to draw on paper. Drawing data structures and flows makes it easier to debug edge cases. Drawing system diagrams helps to identify possible bottlenecks while scaling or possible points of failure.
Also, the notebook doubles down as a To-do list. It is a lot more satisfying to cross-out a task physically than in any app. And it always stays on my desk so there is no question of closing the tab / forgetting to update it.
Most importantly, you can flip through it and have a look at why you made some decision while coding or designing. Also, you can draw doodles when bored :)
Yes! Paper forever!
I kinda agree with this, but I think paper is good mostly for drafts because it can quickly become a huge mess when you have a lot of changes to make, especially on diagrams. Plus it's hard to backup and share paper.
And that's not environment friendly ;)
And about To-dos, at least where I work, it was possible to repeat a to-do multiple times in the same notebook and lose others if tasks got interrupted by other tasks (which used to happen much more frequently than it does currently).
I came here to say this. Paper is the best. It helps you see the forest for the trees, and get unstuck.
And it never crashes unless you get it too hot.
Bullet journalling is also a great way to get your thoughts out.
It tends to char a little when you get it too hot though. ;)
Even better, IMHO, is a whiteboard. It's so easy to throw ideas on a whiteboard, and then erase/rewrite over several iterations. When you're done, just snap a pic to archive it.
I like paper beacause I can carry it arround and keep working on it but when I can I use a whiteboard. What I like about the whiteboard is that you can literally step back and have an overview which can help when you're stuck.
I use both paper and whiteboards, for those separate purposes as well.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.