I end each day by writing everything on my mind in a journal. Todos, ideas to explore, details about work in progress, people to talk to, etc. Very stream-of-consciousness, no filter, no organization. Just get it all on the page.
Every time I find myself thinking about work in the evening, I walk back over to my desk and add to the journal entry.
I find the biggest cause (for me) is having ideas bouncing around in my head that don't exist elsewhere. Maybe it's an idea that's not concrete enough to become a Jira ticket yet, or a vague sense that "we should do thing X". Once it's written I can forget about it, and pick it up the next morning.
The biggest advantage I've found is being able to change library code AND all usages of the library in the same commit. Say you've got three projects:
- library
- app-a
- app-b
and you need to make a change to `library` to support some new thing in `app-a`. If you can publish a new version of `library` and update `app-a` to use it, it's really easy to make a change that's incompatible with `app-b`. Even with a comprehensive `library` test suite, it's easy for Hyrum's law to make an appearance and now you've got some unexpected corner case that's depended on.
With a monorepo, you can immediately see `app-b`'s tests failing and either fix the usage, or re-think your `library` changes.