Ever since entering the world of programming, I've been bombed with tips like "file should be only x lines", which is fair since new programmers tend to stuff everything into one file. But, having done programming professionally for more than a year now, I've mostly found myself getting hindered by the small size of the files, rather than than the large size of them. One of the biggest hindrances I have, is having to shuffle between 10-20 different files when investigating how something works, when some of those files contain only a couple of lines.
So I guess my question is: how do I know I've split my program into too small pieces?

Figure 3. Median and average size of implementation files ("*.c")in st.cs.uni-saarland.de/edu/empirical-se/2006/PDFs/godfrey00.pdf for the Linux kernel. – hlovdal Aug 12 '12 at 13:24