The fence everyone seems to be sitting on is likely to collapse from the weight! The intractable attitudes toward process improvements as held by many companies at this time cause me serious concern. Everyone seems to be taking the "wait and see" position rather than taking advantage of opportunities. People are waiting "for things to improve" before commiting to a development program which could improve the bottom line and provide returns to investors. Why is that?

The truth of the matter is that the slowdown in the information technology industry started well before September 11th. The incidents of that day merely provided a convenient excuse to trim staffing levels. Based on my personal observations, some companies cut too deeply and now run the risk of losing valued employees. The over-worked people who have escaped the axe are going to bolt as soon as they find suitable opportunities. And who can blame them? When you have one person doing the work of two or three, burn-out is a definite possibility.

The hiring landscape in the States right now is arid. In the same way that the drought in the high plains harkens back to the dust bowl of the 30's, the unemployment picture elicits memories of previous dark times (depression/recession.) Of particular concern is the number of people who have been out of work for 27 weeks or more. As you can see here, the percentage of people unemployed for half a year or more, when compared to the overall unemployment figures, has increased from 12.2 to 17.6% in one year. The absolute numbers are equally chilling. To make matters worse, a new crop of students has recently entered the job market after graduating from Universities and Colleges.

Don't mistake me for a harbinger of doom! I'm only repeating what many of you have already seen; this is not news. I believe that it's high time to get off that fence (besides which, it's uncomfortable!) and start to invest in new development. While ROI always takes some time to realize, continuing to delay will push the pay-back out even farther into the future. You also lose the financial benefits in the interim. I can't comprehend willingly sacrificing improvements in efficiency and productivity just because the DJIA hasn't demonstrated a consistent trend upwards yet.

What we're seeing in the way of new opportunities are frameworks built atop solid, portable technologies. With Java and XML as the underpinnings, we have various protocols (SOAP, UDDI, etc.) and architectures (J2EE and Web Services) which make integration of disparate data sources possible and practical. Rather than implementing a behemouth like SAP or Seybold, companies can expose their existing data sources and applications to their users, internal as well as external. The tools exist to make this a suprisingly easy transition, even for applications which were never designed for web access.

The beauty of the new frameworks is that they can be implemented in a variety of ways. While complete solutions are available from vendors such as IBM (WebSphere) and BEA (WebLogic) there is nothing which prevents a smaller company from using Apache Tomcat and not paying anything in the way of purchase or license fees. Of course it behooves one to carefully consider all the issues when making such a decision, things like availability, backups, fail-over, disaster recovery, etc. A consultant with experience and who has your best interests at heart can be a valuable ally in making these determinations.

It's also true that a complete J2EE implementation might not be the best solution for a small application. I've written previously about how I didn't see the benefit of JSPs. I had implemented equivalent solutions as servlets without difficulty. Once I learned that JSPs were compiled down to servlets anyway, it occured to me that this was just another way of arriving at the same destination. The difference is in the approach, although maintenance and overhead are also considerations. Making changes to a JSP is arguably easier than modifying the Java source for a servlet.

So servlets can be a perfectly adequate approach for certain classes of applications. You have access to most of the necessary tools like JDBC for access to your back-end database and, apart from the framework, servlets can actually look a lot like some of the stateless session beans I've developed. The hardware requirements are not onerous and the open-source software won't even dent your budget. But don't make the mistake of trying to fit a square peg in a round hole! This approach is only appropriate (in my humble opinion) for those applications which don't anticipate a great deal of traffic and don't have other overriding concerns such as availability or transactional integrity.

Once you start to deal with applications involving n-tier architectures and complex business logic, J2EE servers provide some powerful features. You'll pay for it but the cost needn't be excessive, depending on the underlying platform. Both WebLogic and WebSphere are available for Linux, for example. They also interface to a variety of back-end data sources and we're starting to see tools which can build (mostly) complete entity beans straight from the schemas. With goodies like the Java Connector Architecture you can even interface to legacy systems such as CICS. Roll it up with Web Services and you're really starting to cook!

But wait, there's more! Is this starting to sound like an infomercial or what? Companies like IBM are now making managed services available for a fixed monthly cost. You can get a WebSphere server with DB/2, running under Linux on a zSeries machine, at an affordable price and leave all the headaches behind. No more worries about UPSs, backups, redundant network connection and the like: IBM will handle all of those pesky (but vital!) details for you. If you want to "roll your own" you can still take advantage of these services: just ask for a basic Linux environment. You might be surprised at what it would cost you to be able to provide the same services in-house.

So we've got the server software (Apache Tomcat or J2EE) and the hardware issues addressed. What's left? Application software, of course. And here's where I see the opportunities for someone such as myself. I could develop applications, test and debug them locally, deploy them onto the managed server and all for a fixed price. This is where the power of Java and the frameworks really shine. Truly portable software is not longer a dream, it's a reality. With intelligent approaches, even the back-end RDBMS ceases to be a huge area of concern, especially if you're using entity EJBs.

So what are we waiting for? I've got the tools, the skills, the experience and the vision. Vendors are ready with the hardware, the software and the managed services. All we need now is for a few of those people on the fence to realize "Hey...it is a good time to start implementing some of those projects which have been sitting on the shelf!" All I can suggest is that they start to make that move fairly soon. While it's possible to find people with appropriate skills right now, it's going to be a lot tougher and more expensive just a little farther down the road.

June 20th, 2002

Copyright 2002 by Phil Selby