Here is a funny lesson about modularity adapted from Victor Nicollet:
People often say that one’s design should be modular. Sadly, many people take this as meaning “use modules.” Having modules in a program does not mean that the program is modular. This is generally the point where I whip out the strong coupling and zero-dependency diagrams and beat your brain into submission, but my law school exams have been going pretty well, so I’ll try a nicer approach today.
You know what’s modular in the real world? Condoms. They can be used as a contraceptive, to prevent STDs, as a barrel plug on paintball guns, to protect a live gun barrel from moisture when wading through rivers, to smuggle liquids or powders in the human body, and so on. But what makes condoms so modular in the first place?