One of the most valuable lessons I learned when working in IT was the idea of task flow. It's what you do to manage long lists of unrelated tasks, while not losing track of where you are. At ProNet we called it "managing your queue," and it's a skill I've taken with me to all assignments ever since.
It doesn't matter what form the list is in - even paper will technically work - but you need a list ot keep track of what's on your plate. Once you've got the list, you need to make it habit to add things to the list that are important. I tend to have a relatively low threshold for the meaning of "important." I just put everything on the list that I need to remember, and if later it turns out not to be important, I just cross it off and move along.
Estimating, scheduling, and prioritizing
Do you have a list of 30+ items, each of which is for a different client, and you're not sure which should be done first? Been there. If you don't schedule and prioritize these things, the inevitable outcome is that you'll have conflicts, and things start to fall through the cracks. Sometimes you'd have nothing pressing to do for the next hour, but after that you had seven things to do all at once. Scheduling and prioritizing will help even out the waves of work into something closer to a steady flow.
So how do I schedule and prioritize? There's more about this below, but with a task list, I keep it simple. I take all the things that need to be done today (which may include prep for something tomorrow, or next week - but perhaps the prep needs to be done today), along with everything I need to get done "now", and I just choose the most important thing and get to work. I don't create a complicated calendar of events, I don't scheduled everything two weeks out - I just work on the most important/valuable thing in front of me and get going. When you work with a constantly shifting list of tasks, and especially if your delivery dates are short (an hour, a day), complex scheduling just doesn't make sense and results in unnecessary overhead.
Save the complex scheduling for "big" things, like multi-week projects with milestones.
Estimating is a matter of experience
What you want is basically this: after you've been in a job for six months or so, the ability to pretty accurately estimate how long something is going to take to accomplish. When you know that, you can put it on your calendar, set a reminder, and get back to crossing things off the list. Depending on how fragmented your typical day is (some people can schedule entire half days toward something, while others can barely schedule 15 minutes reliaby), you need to scope your items to match your level of fragmentation. If the thing you're trying to schedule is more than 2x the amount of time you can reliably schedule, then you should try to break it into sub-tasks that do fit on your schedule. When you can get items on the list pared down to easily digestable chunks, conflicts in scheduling become much less of a problem.
If your main issue is that your day is highly fragmented, and it's very difficult to schedule anything (many people in a customer service role feel this way), then much of this will still help you. This process is about taking control of the amount of crazy in your work, making it easier to manage and plan, and getting more things done.
Scheduling is a matter of habit
So, when you're adding something new to your list, whenever possible, you should schedule it right then and there. When I worked in IT and managed a service ticket queue, my habit was to create a new ticket for incoming requests immediately. Not writing it down inevitably leads to forgetting things.
In addition to always making the note, the ideal scheduling scheme is portable. If you go to a meeting, it would be preferable that you bring your calendar with you, so when you're asked to take on that new volunteer project, and you estimate it will take two weeks, you have some idea when you can start, how it will fit in with everything else, and most importantly, when it will be finished. If it's not possible to have your schedule with you at all times, say in a meeting, then make 15 minutes immediately after the meeting to figure where new items fit in, follow up on pending commitments you put off for the meeting, and then get back to working on the list.
The world is a place constantly asking for your attention. If you say yes to everything, you're going to over commit yourself. If you think volunteering for every project under the sun will make you look like a go-getter, you're not thinking about what happens when you have more to do than you can possibly manage, you start failing, and then everything in the schedule starts to slip by hours, days, or weeks. At that point your willingness to jump in winds up looking like naivety, and the result is people won't trust that you can get something done when you say you will. Being able to make a commitment, and sticking to it >95% of the time, will earn you boat loads of trust in any role, regardless of whether or not you're slower than the next person. In the 5% of cases where something might slip, immediately letting the client know that there's been an issue, and given them an updated timeline, helps you maintain that trust.
Crossing things off the list
I've mentioned it a couple of times already, but this is about getting into a flow, and knocking things off the list. If you spend too much time simply managing the list (and not getting things off the list) it will simply get longer. You should absolutely be spending the majority of your time getting things done. Many people are willing to jump head-long into something and work hard, but if there's one thing I see the holds people back over and over, it is this:
Don't wait on other people - always being thinking about what's next, and what you can do to get something closer to finished
One of the most important things that people don't realize about lists, especially if it's a list of things you're doing for a client, is that you're putting it on your list so it doesn't have to be on their list - your taking ownership over getting that thing done.
Take charge, and set the pace.
Every day, when I look at my list of things to do, I think, "Which of these can I work on or follow up on right now in order to push it closer to being done?" Tasks often spend a lot of time sitting around waiting for something to be done. Second only to getting things done, your job should be to minimize the time that things spend waiting for action.
For example (I see this all the time), let's say you're waiting on a client to make a decision on something before you can proceed. You absolutely need to make sure you know what the next step is, when it's supposed to happen, and what to do if it doesn't happen when you expect it to. If you leave a client meeting, and the client says, "I'll let you know when we decide what to do, and get back to you," but they don't say when they will get back to you, then suggest a time. What time you should suggest really depends on what the task at hand is, but if you say something as simple as, "Sounds good. Should I check in with you next week just to see how things are going?" you'll often find that they will say that you should, and having a definite date/time to follow up is how you keep things from sitting around. If, no matter how many ways you suggest a follow up, the client doesn't say when you should check in, then you're just going to have to pick a time and do it anyway. Trust me on this - it's critical.
Clients pretty much never feel bothered by you checking in. If they don't have a schedule in mind, suggest one, and make sure you follow up when you say you will. Just keep pushing forward, and don't ever leave a task sitting out there with no action plan. Tasks that fall into this category will never get done, and at some point the client will follow up with you. If it's been months since you've done anything on that task you will inevitably convey the message that you don't care, regardless of the circumstances. Even if it's 100% the client's doing, you're going to be the one looking like you didn't take appropriate steps.
As my last point on the "don't wait on other people" topic, sometimes you work with a client that is just indecisive. Be brave, and suggest solutions to questions and problems. Don't wait on the client to make all the decisions; help them make those decisions. They've hired you because you're an expert in your field, and they are looking to you not just to provide a service, but to be a leader and keep the project or task moving. The fewer things the client needs to balance, and the fewer decisions they have to make, the more quickly work will proceed.
Sometimes things don't always go as planned. Here are a few ways to avoid some of the most common issues that come along with these techniques:
Dealing with commitment conflicts
Often you won't have a choice what to commit to, and conflicts in your schedule will inevtiably arise. You need a simple way to decide, among the various things you have on your plate, which ones should take priority. Stephen Covey's Four Quandrants is one of the simplest, and most effective ways to do it. It basically comes down to giving everything a "priority" so that when scheduling conflicts occur, it's clear (and already decided) which task "wins" the conflict. You shouldn't have to spend a lot of time thinking about what to do next. Your schedule, and the priorities assigned to the items, should make it clear at a glance what to do.
When estimation goes wrong
The vast majority of people don't estimate tasks 100% accurately - well really no one does. Most of use are either overly pessimistic, or overly optimistic. I tend to be on the optimistic side, always thinking something will take less time than it actually will. As part of your estimating practice what you'll need to do is track not only how long your original estimate was, but an approximation of how long it took you in reality. What you'll usually find is that you're off by roughly the same amount every time (you might always underestimate by about one-third, for example). Knowing this about yourself can help you take your gut feeling on how long something will take, and then add or remove a certain amount of buffer time depending on past experience.
What you wind up with after you make this estimate is a time frame you give others that is pretty reliable, which builds trust.
When you've mastered this, you've got task flow. You know what you're doing, when it's happening, and you're always pushing tasks forward toward completion without waiting on other people to move things forward.