Design Principles

Today I was having a look at and it got me thinking about some of the design principles I personally follow when creating software.

Design for the User Experience

Ultimately your are creating something for an end user. Make their experience the key focus, don’t get bogged down with the limits of technology.

Make it Simple or Clear

Make things as simple as possible. Where complexity exists, make things as clear as possible.

Use Sensible Defaults

Users shouldn’t have to “setup” your app. They should be able to get going with having to change any settings.

De-emphasis Settings

Try and avoid having settings altogether. Giving the user choices only gives them more to think about. Only add settings where absolutely necessary.

Keep the UI Succinct and Consistent

The UI should always be simple, nice to look at and consistent across the entire app. Use well understood icons and short labels to convey meaning.

Be Modular and Flexible

When coding keep things modular and flexible. Separate different concerns into different classes/files. Build from the bottom up.