This is true.
I must admit that my more recent, positive experiences are only possible due to my accumulated understanding of my dependency chain and toolkit. I work on multiple things, but my largest, indefinitely-running one has only a single dependency...but it's a truly beastly, poorly documented enterprise system. It took me almost 2 years before I properly understood the system's intended usage, interfaces, intents, bugs, and pitfalls.
The JavaDocs are awesome in their uselessness:
/**
* Sets the Wimbulator.
*
* @param wimbulator
* the Wimbulator to set
* @param identifier
* the identifier to use
* @param flags
* flags
* @param legacy
* used to apply legacy
*/
public void setWimbulator(Wimbulator wimbulator, String identifier, long flags, boolean legacy);