When I'm programming, I'm often making notes or scribble on paper or a whiteboard.
It helps me explore and keep track of my options.
For small or big architectural decisions (which we're making all the time), it's hard to keep all options to implement something and their pros and contras in mind.
Here are 3 effective ways you can use a whiteboard (analog or digital, or just a piece of paper) to improve your software engineering:
- A mind map of options you have to implement something. If there are multiple ways to implement a more complex part of your application, you can use a classic mind map. Write your problem in the middle. Then add your solutions around it. Then add pros and contras. Having all known options and their implications visible makes the decision and the discovery of new options much easier.
- A user journey with concrete steps. You can either write down the specific steps you want a user to take or sketch out the ui and annotate it.
- An UML diagram, e.g. to keep track of event flows. The three UML diagram types I use most often are activity diagrams (to understand what happens when, in which order, and under which conditions), sequence diagrams (to keep track of the order of events, messages, and calls), and context diagrams (to get clear on who uses some software or is affected by it, and in which ways).