There are days when my brain is literally over-flowing with things I have to do, and around every corner lies something new.
For example, in any given hour, I could easily receive one more email from project manager, phone call from business owner, chat request from developer, one-on-one drop-in from architect, build failure notification, and bug submission. And every single one of these would result in the same thing: more work on my to do list. Now add these to my existing tasks for this sprint, and all I can say is "holy crap".
I'm sure it's no different for anyone else doing the enterprise development thing, so my question then is this: how the heck do you manage this all? Or more specifically, how do you remember all that you need to do? And at any given point in time, how do you know you're doing the highest priority thing?

Thinking on this a bit, I know there's probably not much I can do about the quantity or frequency of incoming to-dos - working in a team environment is just inherently chaotic and complex.
My main frustration then is really just that there are so many lists of to-dos for developers: bug tracking systems, project management tools, IDEs (e.g. TODO), post-it notes, etc. When I want to know what I have to do, I either have to consult each these multiple to-do "bins" or just try to keep it all in my brain (which just means I'm thrashing all day ).
Basically, what I really need is a single place to track all my development related to-dos (ala GTD).
For a long time, I tried to do this old-school: with a simple, paper notebook. Every time I identified something new to do, I'd write it down. And while this is great for visualizing the entire list...and there's nothing better than physically crossing something off...there were obvious short-comings: I didn't always have my notebook on me, I was constantly writing and re-copying lists, there was no way to search or prioritize items, and there was no notification feature (that I was aware of ;).
More recently, I moved everything to my smart phone into a program called ToDo Matrix (good, but kind of over- priced). This works better than paper (more structure, searchable, etc.), and I've been able to consolidate most of my to-dos into one master list, but I still have a problem with redundancy (i.e. some to-dos are in the Bug Tracker, some in Rally, etc....and I either have to make a duplicate to-do on my phone, or keep them where they are and just consult multiple lists).
So does anyone out there have a good strategy for ordering the chaos of a mere mortal enterprise software developer? How do you manage your to-dos?