It sounds silly but what I've learned over the years is that buying smaller producers and developers is absolutely fraught with danger, especially if they have debt - recent underperformers that spring to mind include CAI, G1A, KLL and the other potash developers who have been decimated, BCI, 29M, GCY (which is on the mend now but has hurt shareholders badly in the past). This is not an exhaustive list, it's just the problem stocks that spring to mind recently.
Nowdays, I mainly just invest in explorers once they show signs of finding something meaningful. I then look to exit when either (i) they hit paydirt and the price goes crazy or (ii) they are taken over by larger miners or (iii) before they develop to avoid the development risk. This has helped me avoid the capital losses that I used to incur on developers and small producers when things turned pear- shaped.
I know that this approach means that I sometimes miss out on developer/small producer winners, however overall I believe my capital preservation using this approach has far outweighed the opportunity cost of missing the winners.