There is a lesson I learned in Sunday school that has stuck with me to this day. I recently became aware of the fact that I idly, almost subconsciously think about this lesson on a regular basis; and I've even started referencing it in conversations with colleagues. The basic idea is very simple, but it provides a useful metaphor that can help frame conversations around project management and prioritization.
My teacher brought a big canister into the classroom along with two boxes of rocks. One of the boxes was full of large rocks, about the size of a fist. The other was filled with small pebbles.
"I want to fit all of these rocks into the jar," he said. "Let's see what happens if I put the small rocks in first." The teacher poured the pebbles into the canister, filling it about halfway. He then started placing the larger rocks into the canister, but only a few of them fit before there was no more room.
"Hmm, that didn't work," he observed. "Maybe if we put the big rocks in first?" He emptied the rocks from the canister back into their respective boxes. Then he put all of the larger rocks into the canister. This time they all fit. Next when the teacher poured the pebbles in, they filled all the gaps between the bigger rocks, and the canister was full.
Our teacher explained that the rocks represented how we spent our time and attention. If you choose to spend your time and attention on little things first, you won't have enough left for the big rocks--the more important things in life.
This applies to professional life as well. I often find that my day is eaten up by lots of little things--meetings, ad hoc conversations, reviewing code, helping out with customer support cases--leaving very little time to make progress on larger goals I have for myself. The canister is full of small rocks; the big ones don't fit. The devs on my team experience this as well.
A habit that I am slowly working towards developing (at present I am doing this only sporadically, when I remember to), and which I recommend to anyone who can relate to this, is to start explicitly carving out my time at the start of each week. On Monday morning, I take a look at my schedule for the week to see where I might have stretches of 2 or more hours of uninterrupted time. I then book myself, on my own calendar.
It may seem silly (and maybe it is), but this is my way of making sure I put the big rocks in the canister first. It's the best tool I've found for making sure they actually get done. The small things can fill the gaps between them.