Making Software More Reliable by Uncovering Hidden Dependencies