1. Stop using IM. Period. Not just when you're working. All the time. You don't need it. There's email, SMS, phone calls, Twitter, and other social messaging services. IM is the most brutally distracting and easiest way to waste time when trying to work.<p>2. Stop using Growl or equivalent. You're training yourself to constantly be looking for distractions in the periphery. You don't need that information, I promise - even for your fancy CI system that tells you when tests fail. Knock it off.<p>3. Quit anything remotely interruptive for the duration of your work session: IRC, Campfire, Twitter client, email client. This can be tough if you're working remotely, so let clients and coworkers know when you'll be available online and when you're focusing. As long as you communicate your goals and intentions clearly, they'll understand.<p>4. Get yourself some noise-cancelling headphones. I like the Bose QC 3. Added bonus: take 'em on plane trips and they help to dull the engine noise.<p>5. Listen to something engaging but not totally engrossing. Ambient music and noise generators were mentioned in this thread, and I like them, but sometimes you need something with more "oomph" to get you through a dull task. Minimal techno is my staple, as it rarely has distracting vocals and typically maintains a steady, not-too-fast, not-too-slow beat. There are tons of sites out there with free DJ mixes, just search around.<p>6. A personal preference: work standing. I find that standing helps keep me focused and helps to distinguish work from relaxation.<p>7. Get a really big monitor and cover it in your code, terminals, documentation, etc. The only thing that should be in view is the material you need to get your task done.<p>8. Make a list of stuff to do, and do that stuff. Doesn't matter whether that list is in some fancy GTD app, a bug tracker, or on a piece of paper. It's helpful to see the list and know that you get to cross off an item or close a ticket when it's done.<p>9. Block work time out on your calendar. I refuse meetings after lunch (from 1PM to 6:30PM), and I'll only make exceptions for truly exceptional circumstances (candidate flew across the country to interview, has one day, there's no other time to meet with him/her). This is essentially pg's idea of the "Maker's Schedule", although I'd been doing it for several months before he wrote about it.<p>10. Meditate. This sort of speaks to the comment in this thread about practice. Meditation is conditioning for your brain. It's really, really hard to do well, and even harder to find the time to do it. I don't do it as often as I should, but when I do, I find it much easier to concentrate on hard problems.<p>Hope some of the above helps.