I had to do some fair amount of coding recently with lots of interlinked files. With so many windows open and with my limited screen estate, I soon settled on a 3 window layout with the screen split horizontally and the top half split again into 2. This way I could read code flowing off to the right on the bottom half while referring to the called functions in the other 2 windows on top.

But I soon found myself switching to those buffers to read a bit more on the definitions and losing my window layout. A quick ask on gnu.emacs.help turned up this emacswiki page, the last elisp function that I reproduce below was perfect for my needs.