Programming is full of acronyms: KISS. TDD. OOP. YAGNI.

In other cases there are short idioms for common concepts: Premature optimization is the Root of All Evil and GOTO considered harmful.

Well, here’s one little programming principle for which I have not found a popular acronym or short idiom:

Make the common use case simple, and the others possible.

a.k.a. MCUSAOP

It’s a programming principle I keep coming back every time I’m developing a library. I like it is very adequate for that task; the steps to follow are clear: first, find the most common case, or estimate which one is it. Then, design an interface for doing it in the simplest possible way. Then, think about the next most common case, and add an interface for it, trying to minimize its impact on the first case’s design. Keep doing that until all cases are covered.