Free-form text input may be preferred by users, but possibly a nightmare for the developer.  As an example, I&#x27;ve been assisting a small non-profit arts organization, constructing a database system to keep track of artists&#x27; work, etc.<p>In the past there was essentially no ordered data-keeping. For several years certain bits of info had been entered into a spreadsheet, like name, title of art work, date created, medium, email addresses and so on.<p>Data in that spreadsheet was a total mess.  Most fields were &quot;free-form&quot; text, with no consistency at all in format of dates, email, URLs, crucial fields left empty, data put in wrong fields, etc.  It was a lot of work to clean it up and quite clearly showed what motivates programmers to be &quot;controlling&quot;.<p>To be sure, excessive rigidity can be problematic, but it&#x27;s hard to make clear to users the importance of maintaining data integrity.  Frequently enough, users complain about constraints despite effort to demonstrate their necessity and benefits.<p>Of course constraints evolve, which is often the challenging component of creating and growing a system.  If there&#x27;s good reason to modify things, because what we conceived of as a number turns out otherwise, then we must indeed find a way to accommodate that reality.  OTOH if it really is a number and the user wants it different, we leave it as is and once again patiently try to show the user our reasons.<p>Finding the right balance between user &quot;freedom&quot; and necessary limitations on data input is hard to achieve.  I suppose the right approach has something to do with avoiding the illusion that data system development is actually ever done.