Restrictions Matter

I came across a case where a programmer, to design the epitome of flexibility and user control, gave an interface to the user who could change the information schema on the fly. This automatically made corresponding changes to the backend storage and the system model, and the application just worked. However, it failed to remain usable, as the ease of modifying the information schema only helped the user in creating a lot of cruft and in the end corrupting the data. We should always design technology to give room to the user, however, with restrictions.

Software is never just a piece of code, it embodies a domain when it gets used. And restrictions are important to perform the domain validations and maintain the data integrity. We often talk about the features that makes a piece of software flexible and gives power to the users. However, features that adds restrictions are equally important to keep the software working efficiently.

Discussion [Participate or Link]

  1. waqas said:

    I think it depends on your target audience. Some classes of users want ultimate control, while some want just the basics they need for the moment. The perfect solution would cater to both.

    A good mix is something in which it’s trivially easy to do simple things, and progressively added complexity for complex things. Something with a philosophy like Ruby on Rails.

    A bad example is Asterisk. They started with a simple configuration format, but what they have now is effectively a (really badly designed) scripting language.

Say your thought!

If you want to use HTML you can use these tags: <a>, <em>, <strong>, <abbr>, <code>, <blockquote>. Closing the tags will be appreciated as this site uses valid XHTML.



Abhijit Nadgouda
iface Consulting
+91 9819820312
My bookmarks


This is the weblog of Abhijit Nadgouda where he writes down his thoughts on software development and related topics. You are invited to subscribe to the feed to stay updated or check out more subscription options. Or you can choose to browse by one of the topics.