I find it interesting how a lot of this advice overlaps with the same tricks we use in software engineering to tackle big problems. Breaking things into smaller chunks or even gamifying with streaks is basically the human version of agile sprints.
Sleep, diet, and stress are like "system dependencies".