Some Principles of Design

I'm trying to document some basic, yet ever-important software design principles into a list that I can reference and expand on in the future. You often see these principles discussed individually, but I believe that they need to be considered collectively.

So, this is what I have so far:

  • The KISS principle – Keep It Simple Stupid
  • Iterate early, often
  • Create Functions that fit on one screen (20-25 lines max)
  • Create Classes with one role and purpose
  • Usefulness first, usability later
  • Plugins for extensibility when possible

It's nothing groundbreaking, but it's a start of basic principles software developers should consider. Any others?

Leave a Reply