Last month we looked at some of the issues and benefits of Client Server technology and how it might fit into your data processing picture. This month let's delve into a little more of the possible pitfalls and practical details so you will be more capable of exploring these for yourself. Let me first caution you that there is explicit pain and graphic technical gore contained in this article. It is 'R' rated and not recommended for the faint of heart.
First, there are the obvious hardware, software and people complexities. On the hardware side, the PC's are often from several different manufactures and seeing that they are configured properly, with enough memory, and have the correct interrupt addresses and DMA channels for all the add-in cards is usually a project no sane person volunteers for. The initial configuration is certainly hard enough, but there are plenty of ongoing headaches with machines that fail (often mysteriously and intermittently), controlling, licensing and upgrading PC software, regular backups and updates, etc. These tasks are bequeathed to you and your DP staff, and regardless of how qualified you feel you were before, they eat up ten times as much energy as you expect.
Some of the risks are substantial. The proliferation of unlicensed software has caused numerous manufacturers to become quite aggressive in auditing sites for licenses. A consortium of vendors have banded together to request search warrants and conduct surprise audits. The fines and the negative publicity should be more than enough to cause you to do it right the first time. Next, its unusual to have an external service organization to deal with hardware problems in the traditional way. You will undoubtedly need a person dedicated to resolving PC hardware problems on staff. If any critical data is located on the PC's, it will need to be backed up to the file server and then to tape or floppies – someone from your staff will have to ensure it's done on a regular basis or do it themselves. More importantly, security for data accessible on the PC (not just the data located on the PC!) becomes a major concern. Anyone with access to a PC may now be able to walk out of your company with your entire customer list, build costs, development plans, or financial data, etc. on a tape or floppy. This should definitely concern you.
Then there are the support issues. There are usually (but not always) several operating systems and several data bases involved with client server solutions. Even with some of the newer tools, this adds to the design complexities and support issues. If your users are using Windows applications and software, be ready to have experts on all the various legitimate programs and dozens of boot-leg applications. Studies have repetitively shown that typical office workers lose from ten to twenty percent of their day simply futzing around with the desktop and with PC games. If your PCs run only controlled software you may be able to restrict support to your application code, but don't bet on it. Some support staffs become the "PC Police" to enforce an "our applications only" policy. And then there is network administration – suffice it to say there are lots and lots of reasons they offer classes leading to the title "Certified Network Administrator"!
As you can see, there is a lot more hardware and software involved in this scenario than you might first think. Don't be confused by the apparently low entry costs – they are elusive to say the least. When you begin to add up the total "per workstation" cost including software and multiply that by the number of stations, you can quickly approach your old central computer solution costs. Additionally, as I have tried to outline above, the support costs are likely to be several times the old costs.
And then there are the failure issues. With many times the hardware involved in the system, you WILL experience many times the failure rate. This is simple mathematics and is unassailable. The impact of these failures will depend on where they are AND the design of your application. Failures of single user PC's have minimal impact – similar to a single terminal failure. Failure of a server that hosts a database or of a critical network segment can be every bit as catastrophic as a mainframe failure. Your business could be down for an extended period of time. It may be cheaper to maintain local spares for some of the critical parts than with larger machines, but you have to have the expertise to diagnose the issues and swap the parts including any data recovery and restart issues that might exist. Many companies find themselves in a constant low level recovery mode they failed to predict and budget for.
Lest you think I'm totally negative on client server technology (I'm simply very cautious, not negative), lets talk a little about how to carefully go about it and some possible benefits. Excellent application design may help in this area. If the users' PCs have enough local files to validate the data, and if the software is really written as a transaction based application, you may be able to continue to capture data and perform a substantial percentage of your data processing while only partially up. Notice that I suggest EXCELLENT design rather than merely good design? Very few people in our community are familiar with transaction based applications, and of these, fewer still understand fault tolerant application design issues.
As I said last month, the first step in considering whether your business could benefit from client server technology is to look at your possible application partitioning options. You can derive benefits from client server by embracing transaction based processing and by partitioning your applications so that substantial work occurs on a PC terminal. The second step is to be careful. Enter this new arena gradually – the rules are substantially different than the game you are used to playing, and you should allow yourself time to adapt before tackling any corporate sink or swim projects. In most situations this will take some re-education on your part as well as considerable energy, some new programming tools and techniques, and perhaps outside consulting help.
I firmly believe in every company there are tremendous opportunities to better serve your current customers as well as flush out new profits, new services and new markets. The best of the best consciously choose to pursue these opportunities though a process of business re-engineering. If you work for one of these companies, congratulations! If you work for one of the rest, don't despair. Use any opportunity for change as an opening to rethink a piece of the business and make it more relevant to the times and the market. For example, many applications actually do work better when ported to a new hardware platform. While hardware vendors think this is totally to their credit, most of us in DP know another reason. During this conversion period, while our company is open to risk and to change, we take the opportunity to make positive changes in application systems.
Client server technology presents a great opportunity to get new insights and new data to the front line of the organization. If this is controlled and used to empower the people entering the data to make better decisions and open new avenues of commerce with your customers, your company will come out a winner. If its done without thought, because the press say its the rage, don't expect it to work miracles or even to succeed. Technology can sometimes enable people to work miracles, but it never does it on its own.