It's time to finally start writing that client server system - the network is in place, the users have personal computers, printing can be done in the local area rather than in the computer room. The committee that will select the initial client-server application has convened. Will it be the payroll program? That might be good - everyone has a vested interest in making it work. A program to enter and track customer orders? A line of business system will be attractive. A system to submit travel expense reports? It impacts fewer people. Company politics will play a big role, but perhaps all the choices of integrated systems are wrong.
How about a system to identify a customer - verify the name and perhaps update the details if necessary. Sounds unexciting, but certainly simple enough to be quickly implemented, delivered on time, and perhaps even be bullet-proof - reliable and robust. How about another system to check the availability of a particular item in inventory. Perhaps quote a price, or even reserve part of the inventory for a customer. Not enough to be exciting, you say, but easily done. Maybe build a third system to accumulate the inventory that has been reserved by this customer during this call, and total the cost. And still another system to check the credit limit of the customer.
If you had these four trivial systems, could you combine them into a customer order system? No, more components are needed - compute tax, commissions, billing, shipping instructions, etc. - but you are within sight of the goal. Each of the trivial systems described is so small that it is likely written by just a person or two, in remarkably short time. The pieces described can likely be used by more than one application. A few more components, and we could assemble that system - next month, not next year.
How are the pieces glued together? One theory says to write that order entry application, assembling the components into a coherent program. Another theory uses the work manager often associated with document image systems. A complete work manager has four roles:
Some vendors have a work manager that is great at tracking work and getting it to individuals. Other vendors do a minimal job at determining who will work on a task, but do a great job managing the tasks. Unfortunately, most vendors classify their software as "we do it all" - let the buyer beware. If you choose a work management system that has a robust task manager, the work manager can invoke the individual tasks that make this order entry application.
By leaving the components separate, they can be reused in multiple applications - how many different systems start by identifying a customer? The work manager not only distributes work to people, but also allows systems to be written in small reusable components rather than in large monolithic systems.
Anyone who has been to the standard management seminar on object oriented design may see a similarity between the system components we have described, and objects. In fact, the system design is very similar, but we at this point we don't want to get involved in all the details of a new technology. By being smart, we can design reusable components, independent of the technology. We can then use either object technology, or a work management system, to link these reusable components into a line of business system. The object technology is emerging. The work management technology has been around for over ten years.
Back to the home page
Send e-mail comments to
©1995, 1996 by Charles A. Plesums, Austin, Texas USA. ALL RIGHTS RESERVED. You may license additional copies of this document through a nominal royalty payment as specified on www.plesums.com.