Radical software customization. The always-interesting Sean McGrath has a great column this week about software customization. He says, in part:
In order to stay sane, most programmers concentrate on the part of the problem they are working on today. As a consequence, their view of what pieces of the functions under development need to be parameterized and which do not, tends to be a quite low level. Indeed, most of the items programmers will chose to parameterize will amount to double dutch to the business analysts. [Sean Mcgrath: The mysteries of flexible software]
In the companion blog entry Sean gives the example of a Jython script that he used, instead of an XML configuration file, to parameterize a piece of software. It illustrates, by example, one of the points I tried to make in my recent IT Conversations interview with Doug Kaye. Dynamic languages are a great way to record data when a solution is fluid and requirements are evolving. And, come to think of it, when aren't those things true?
Closely related to this theme are the tools and frameworks for capturing and manipulating business rules. A while back I wrote a column on the subject, and James Owen — a seasoned user of the various rules engines — wrote to me about it. After a bit of back and forth I recruited him to review this class of product for InfoWorld, and he's produced a series of articles: JRules, Blaze Advisor, Jess and OPSJ.
I'm also quite curious to see what Microsoft will make of Ward Cunningham's ideas and techniques. I interviewed Ward in Refactoring the business and, in my blog companion to our feature on test-driven development, he talks about the FIT framework that he's used to push testable business logic into spreadsheets that business analysts can make and use.
We can all agree that software must be customizable. But when programmers alone decide how users can do things, you often end up with a scenario like Aunt Tillie's OS X adventure: a dashboard packed with incomprehensible dials and knobs. If the dashboard was built with a dynamic language, the programmer can at least rearrange the controls more quickly and more easily. But the rules engines that James Owen has been writing about, and the FIT framework that Ward Cunningham has created, point toward a radically altered relationship between software makers and software users. It can't happen too soon. [Jon's Radio]