Thursday, April 3, 2008

Generalized vs specialized software

Computers nowadays are considered an indispensable tool for getting work done, but few people think of computers as a collaborator in their job. This is largely because most software isn't designed to fill this role. Programs are written to be generic, used for any purpose which fits their form. Thus we have word processors, spreadsheets, and image editors.

The general perception is that more specialized software is too hard to write, and the market is too narrow to make it worthwhile to build specialized tools. The one area which moves contrary to this general trend is business information systems. These systems are designed to integrate the operations of large enterprises, and keep them operating efficiently. In their effort to automate, companies have had to make these systems more intelligent.

Programming intelligence in regular programming languages quickly became too complex especially when the rules of operation change quickly. Thus business rules were developed, to provide a more natural way of defining system behavior. These rules can be created quickly, and changed quickly, and with good programming skills advanced operations can be automated and linked together within the enterprise.

In the field of Computer Aided Design (CAD), knowledge-based engineering systems have been developed for 30 years now, and are hard at work in helping to design airplanes and cars every day. These complex systems integrate CAD platforms with standalone design-generation tools, and with advanced analysis tools. The engineer will use these tools to rapidly generate designs, and then use his own expertise to evaluate the results and try different options until the desired design is achieved.

The business and engineering systems are very different in many respects, but they share a common element that they allow knowledge to be entered at a high level. This knowledge enables the computer to carry out very specialized and intricate tasks quickly under the direction of the operator, or in response to their actions.

Information management and engineering automation are only a start. I believe that almost any task in any subject area can be improved by instructing computers about the task being pursued. Naturally, most tasks are beyond the ability of a computer to know everything about the job, and so only some aspects of the work will be programmed in. What is needed is that the software be well designed to work with you, helping you with what it knows, and when you move beyond what it knows it will not allow its limited knowledge to interfere in your ability to get the job done.

Labels:

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home