by Leon Rosenshein

Engineering Principles

Here's a few of my favorites. BSR, CFtM, DRY, KISS, PLA, SOC, YAGNI

According to wikipedia, a principle is a proposition or value that is a guide for behavior or evaluation. Following your principles is a good thing, both at work and at outside work. They help you make decisions and figure out what to do. Good principles help you make good designs. Good designs lead to good products and good outcomes. So what principles should we be following?

You've probably heard of those acronyms, but just in case:

Boy Scout Rule - Leave things better than you found them
Code For the Maintainer - which is most likely you, so do yourself a favor
Don't Repeat Yourself - If you need to do something twice, use the same thing, don't build a new one
Keep ISimple Stupid - Make things as simple as possible, but no simpler
Principle of Least Astonishment - Don't surprise your user. Do what they expect
Separation OConcerns - The old Unix philosophy, do one thing, and do it well
You Ain't Gonna Need It - Don't create things you don't need now. Wait until you need it. You may never need it, and if you do, you'll know much more by then.

Following these principles helps at whatever scale you're working at, whether it's a function, feature, service, platform, or product. What principles speak directly to you?