Interruptions and context switching are the two most costly factors that directly impact a programmer's daily productivity. Although there is no permanent way to avoid them, there are some interesting strategies to minimize their impact. The Cost of an Interruption Based on various scientific studies, it takes at least 10-15
2 things that help me very much: perject for GNU Emacs, and Contexts + usual workspaces for Xmonad.