David Wheeler once said:
All problems in computer science can be solved by another level of indirection 1
And Kevlin Henney answered:
...except for the problem of too many layers of indirection. 2

1 Diomidis Spinellis. Another level of indirection. In Andy Oram and Greg Wilson, editors, Beautiful Code: Leading Programmers Explain How They Think, chapter 17, pages 279–291. O’Reilly and Associates, Sebastopol, CA, 2007.
2 http://en.wikipedia.org/wiki/Indirection_(programming)

Taken from http://www.omninerd.com/articles/Coding_Practices