Topics: programming, software design
Write shy code - modules that don't reveal anything unnecessary to other modules and that don't rely on other modules' implementations