Determining where strong dependencies are necessary, and how to weaken dependencies whenver possible.