While we're in the midst of a crunch insofar as qualified personnel in the IT field, I'm starting to see some scary situations. Many companies have been trying to create products which don't require detailed knowledge of underlying systems. Unfortunately, I see these tools being used sometimes without the necessary knowledge of the underlying architecture, products and protocols. I provide some examples later, but for now let's take a look at what's happening in the office of today.

Many companies have been lulled into a false sense of security by Microsoft and their own network and system stability. They start to reconsider the cost of retaining network specialists and system administrators. The thinking goes along the lines of "Jones in accounting says he knows Windows NT, besides it can't be that difficult! Our admin assistant could just as easily swap the backup tapes. I could significantly cut costs by getting rid of the specialists." Of course, an increase in his/her annual bonus might also be a contributing factor!

Now, we all know how things are going in this scenario. The server crashes, badly, and with his limited knowledge, Jones has a great deal of trouble diagnosing the hardware problems and completely rebuilding the server. Then there are all the applications and user data to restore. It then turns out that nobody added the backup tape chore to the admin assistant's job description. She was dilligent about it at first, but there are so many other things to do during the day that things started to slip.

What management didn't consider in this scenario is that the computer system has become mission-critical. Work is grinding to a halt since the users don't have access to their files and applications. A disruption in work can mean the difference between success and failure for a small company. Perhaps they'll get things back up and running in time, perhaps they won't. I can guarantee you that they're going to be facing some pretty angry employees if the system was used for payroll!

What I'm trying to say is that there are some very skilled, and very valuable, people in this field. Their knowledge tends to be specialized and yet very often essential to the operations of an enterprise. While seemingly attractive from a fiscal point of view, proper cost/benefit analyses were obviously not conducted in my hypothetical example. Most small companies remain blissfully unaware of the impact of their computer systems on their core business. While computers have become ubiquitous, the design and implemention of systems requires special skills.

As most of you in this field already know, the single-server configuration discussed previously would not be appropriate for professional installations. The guiding principle should be redundancy, resulting in no single source of failure. The level of sophistication is dependent on the applications and the enterprise. Web serving companies, for example, have to carefully design their architecture to ensure continued operation even after catastrophes such as fire, flood, etc.

Claiming to know NT does not make one a system administrator any more than knowing FrontPage makes one a web content designer. Putting up five web pages is not nearly the same as creating a deep company site with a consistent look and feel. There are sophisticated (and expensive) tools available for content creation. The person best able to make use of these tools is a professional graphic artist. There's also JavaScript and Java applets which require programmers familiar with these languages and the ability to work with the graphic artist.

Similarly, knowing how to program in ColdFusion makes you neither a database analyst nor a web server designer. In fact, ColdFusion insulates the programmer from the details of the database. This could result in very inefficient database queries which could tax the database servers as well as make the application seem slow. A ColdFusion programmer will not be familiar with nor should be responsible for deploying web-based applications. That is a separate skill with special requirements, as mentioned previously.

I'm a big advocate of using the right tool for the job. I earlier mentioned using FrontPage for creating a web site consisting of a few web pages of static content. In that case, you could probably host the site on an internal server. Larger sites require different tools and might even be hosted by specialty companies serving that niche. Finally, graphics intensive content requires even more tools and careful consideration of hosting and serving issues.

In other words, I'd no sooner use a light-weight tool like FrontPage to create a sophisticated web site than I would use Word to create a manuscript. I know that there are people who do, but in my experience there are much more appropriate tools. This comes back to my basic premise, which is that these tools hide complexity and give false confidence to some of the people who use them. Someone who's had success with trivial solutions might suggest a completely inappropriate tool for enterprise deployments.

Finally, I have to admit to my own development methodologoy. I'll use Canvas 7 or Paint Shop Pro 5 to create my graphic elements, roll-over images, etc, but I use a simple text editor to create the HTML. I use a lot of JavaScript for things like form validation, managing the switching of images (roll-overs) and the like, but I also appreciate the low-level control which straight HTML provides me. While graphical layout tools have the benefit of WYSIWYG, they also tend to create a lot of excessive HTML code, in my opinion.

It's the same thing with writing Java code. There are all kinds of tools like JBuilder, Visual Cafe, VisualAge for Java, etc., but I found myself spending more time wrestling with the tool than it would have taken me to write the code from scratch. I find that I can create Java code more rapidly using the text-editor approach than others can using more sophisticated tools. I know that I can debug code I've written myself much faster than those using the graphical tools.

I taught myself HTML and Java at a time when tools weren't available. Now that tools are available, it can actually take people longer to develop code than if they were familiar with the underlying languages. Interestingly enough, some vendors claim that they are providing personal productivity tools when what I see is a way to make content creation or application development more accessible to people with lesser computer skills. While this might assist in alleviating the current skills shortage, we should be mindful that these people are merely propogating the Visual Basic approach. It's not an intelligent way to deal with a serious problem.

Copyright (c) 2001 by Phil Selby