The other day, I was assigned the task of making a Rails application in which the user could add a set of “Terms and Conditions" in the Offer screen. These documents are typically standard, but the business guys wanted the user to be able to customize the individual clauses. It sounded oxymoronic at first, but, after remembering Scott Meyers’ words, "pretty this ain’t, but sometimes a programmer’s just gotta do what a programmer’s gotta do," I set out in earnest to figure out what could be done.
From our business analyst, I got the typical standard clauses for these types of documents. To illustrate, here is an example — "Offer shall be valid for 45 days." My first thought was that I should identify the parts that vary and take them as input data from the user.