I am part of SoftwareDev Tools, a relatively small team responsible for making software products for software developers. We all work on several products and we have to switch hats constantly.
Here is what I have learned to be more productive and have less friction when switching from one app to another.
Pomodoro Technique
The Pomodoro technique considers rest time as important as working time.
The stereotype of "high productivity" is to work yourself to exhaustion. Just thinking about it can be overwhelming.
The Pomodoro consists of choosing a task to do and working it for 25 minutes without distractions. I use a Tomatoro to time each Pomodoro.
When a Pomodoro is completed, I take 5 minutes of rest. Every four Pomodoros I take 20-30 minute break. You should consider doing something unrelated to work, such as walking or going for coffee.
Ultimately during these breaks you'll come up with new ways to attack a problem. If nothing else, it will keep you with a positive attitude and a calm mind.
I've noticed an interesting side-effect. this has made me better at estimating how long it takes me to complete a task.
Checklists
As you practice it, you may start to divide tasks into smaller tasks that naturally fit in 25-minute slots.
Keep these tasks in a list that you will use during your work day. If you are working on several projects, classify them and prioritize them. As you finish each, making them "done" will make you feel good.
You'll be more productive and remain positive.
Build Solutions for Your Future Self
Easy solutions are not always the best.
Don't fall into the trap of creating code that will later bite you.
Build solutions that are versatile and easy to use across your projects. This will not only save you time, but it will also improve the overall quality of your work.
Know Your Limits
When you are working on several projects at once, it is very, very important to prioritize.
It is natural to feel pressure to say yes to everything. I always want to make my team happy. Yes, yes, yes. But I've learned to put my ego aside.
It is necessary to know your own limits. Taking on too much of load will make you unproductive. And there is nothing less productive than a unfinished urgent task.
Honesty is very important. If you know that you can't finish a task on time, tell your team and let them help you with it, or break it down, or whatever. But don't kill yourself in silence trying to be hero. Doing that will ruin your work on every one of the projects you are responsible for.
Meet Your Team
Figure out who can best help you with each of your projects.
Leverage your team. Get to know them. That will make it more fun, and it will make you more productive.
We all have different abilities. Each one of us is passionate about different things. Some have more experience than others.
Learn to identify each of your teammate's strengths. Know who you can go to when you need help to solve a problem, and who you can learn from.
Even less experienced people in your team can help you. Without the baggage of "experience," they may be more up to date on newer technology and techniques.