I’m a software engineer. I got my first computer when I was 7 and have loved programming ever since. I’ve been developing corporate web applications since 1999, mostly using Java based technologies, but I like to try and explore a little bit of everything interesting going around the web/mobile technology scene. I like hard rock, RPG video games (all flavors), science fiction and fantasy books, and almost all movies (unless they star Sandra Bullock or Hugh Grant). Ricardo is a DZone MVB and is not an employee of DZone and has posted 16 posts at DZone. You can read more from them at their website. View Full User Profile

Give Options, Not Configuration Nightmares

  • submit to reddit

You have probably heard about convention over configuration, especially if you follow Ruby on Rails, the Play Framework or similar projects.

Taken from Wikipedia:

Convention over configuration (also known as coding by convention) is a software design paradigm which seeks to decrease the number of decisions that developers need to make, gaining simplicity, but not necessarily losing flexibility.

What I propose is that you not only praise the advantages this paradigm brings to you as a developer, but that you apply the same principles to the software you create and then empower the users and support staff that will use it.

In my experience almost all software products (both standard and tailor made) require configuration. Some of this configuration is needed for the system to work, and some of it is used to customize the system’s behaviour according to the users needs and preferences.

If you force your user (be it the actual final user or the IT staff from some company) to review and complete every one of the possible configuration parameters before the software can be used for the first time you will most likely end up with a very annoyed person and a poorly configured system.

Wouldn’t it be great if all software would “just work”? And I don’t mean just your word processor or video player, I mean a highly customizable world-class ERP as well. Why can’t we provide software that requires only the bare minimum configuration questions answered to be up and running? And why can’t those questions be answered in a friendly and informative environment?

And the best part is that you don’t need to loose flexibility or depth in your software because of this, you just have to provide a working default configuration set and give the user the option to adjust it later, *after* the software is up and running and he got to see all the awesome features it has.

Published at DZone with permission of Ricardo Zuasti, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)