Java: Common-Sense Computing For Today's Networked Companies
By Mike Quigley
Program Manager, Java Industry Solutions, IBM
Abstract
The traditional Information Technology (IT) trend toward proprietary technologies
that add to the costs and the implementation headaches of IT solutions without
delivering additional value must stop. Only when we stop these practices will
customers recognize the true benefits that modern technology is capable of
delivering. Vendors should compete on their ability to apply the technology to
business problems, not on their ability to put the most proprietary hooks into their
products or "platforms." With Java, we have an opportunity to concentrate our resources
on developing the portable, reusable, and robust environment that we have sought for years.
It is time to put marketing discussions aside and let common sense reign.
Information Technology and Your Business
The continual evolution of the business environment has created the need to do far more with
much less. Success, once something that had significance over time, is now fleeting. You are
only as good as what you deliver today.
Every business is continually seeking tools that can help it meet its objectives. Over the last few
decades, computers and networking have been viewed as the quickest way to gain and maintain
an advantage. Computers are a tool to help improve business results. As long as they deliver the
functions and the return on investment that they promise, they are an asset. When they don't
deliver on these promises, they are a liability.
In the past, companies in the computer industry have focused on differentiating themselves through
the addition of proprietary technology. This approach has produced a myriad of bells and whistles
and some very "cool" functions that thrill computer whizzes; it has also created rival factions within
companies that argue over which widget is best. This has probably contributed as much as anything
to diverting our focus from how technology can help our businesses. It has added both costs and
inefficiencies to virtually every phase of solution development and deployment. What it hasn't
produced is a technology environment that enables you to receive the best return on investment in
information technology.
Billions of dollars and hours are spent every year to integrate disparate products or build solutions.
The problem is that much of this money is wasted writing customized "glue code," integrating different
vendors operating systems, or porting applications. If we are ever to realize the maximum return on our
investment, we must element the inefficiencies that the industry has created by focusing our efforts on
the development of many different proprietary "platforms." We have learned how to make our businesses
far more flexible and efficient by eliminating unnecessary costs. Now it is time to do the same to information
technology.
This paper is focused on looking at the relationship between the business and information technology and
asserts that we have a rare opportunity to make a significant leap in improving this relationship and stopping
the waste of billions of dollars and programming hours. We can eliminate many of our day-to-day problems
in this industry by joining forces and focusing on the development and maturation of Java. We must make it
the de facto standard, maintain its ubiquity, and have it become an enabler for all companies, rather than a
differentiator for one or two companies.
Business Today
Today's business model is a successful hybrid of several preceding models. It combines the focus on
integration, reliability, and availability of the traditional, centralized company with the flexibility and speed
of companies organized more along departmental lines. Most of all, it recognizes the importance of speed
to market, flexibility, cost efficiency, and focus on core competencies.
Modern products are designed, built, marketed, and sold by teams. These teams often form "virtual companies"
that span internal departments and external suppliers. Businesses recognize that these people must all work
together as a cohesive unit in order to achieve business objectives, and that accurate and timely communication
is paramount. Anything that distracts from their focus on the business task, inhibits them from reacting quickly
to changes in the market or adds unnecessary costs is avoided.
We have examples throughout our daily lives. Your home is probably unique in many ways, but, because the
raw materials that went into it were mostly built to a common set of standards, you are able to purchase it at a
value. How much would your home have cost if every lumber and accessory supplier differentiated their product
through dimension, not quality or other means? What would a lamp cost to purchase and install if every
manufacturer of electrical outlets had a unique plug configuration? Dramatically increased costs with no increase
in value: not a good equation. This isn't rocket science; it is basic business know-how and common sense. Isn't it
about time we applied that same logic to the information technology industry?
Information Technology Today
The approach that we have taken in information technology has been much different. The IT industry has focused
on differentiating our companies through the development of proprietary technologies. Companies have tended to
specialize in "marketecture" and hype. Companies espouse their superiority in the "platform" business. Stop and
think about it for a minute. The technology that enables business applications to talk to the hardware and network
is a necessity, but the more types we have the more unnecessary cost and complexity is added.
This approach has added to the costs, development cycle times, and implementation headaches of IT solutions
without delivering any additional value. Why, then, have we let ourselves get so focused on spending billions of
dollars to build so many different operating systems that we then must spend billions more so that we can use them
in our business. Does this make any sense to you?
Today's companies face many different considerations when selecting hardware and software to run their business.
They must weigh what hardware their end users have, what operating system is preferred by certain groups, what
upgrades are necessitated by their decision, how the new products will be deployed, or what the future support costs
will be. Vendors produce business cases showing how products will improve individual productivity or reduce costs.
They compete on their ability to deliver the latest and greatest technology to business problems while justifying the
right to have proprietary products.
The Common Sense Answer
The answer is simple: Stop pouring money and resources into the development of proprietary technologies
and focus them on building a common technology infrastructure that we all then leverage to build the business
applications of the 21st century. Common sense tells us that, if we take only a fraction of the resource we spend
on developing proprietary base operating systems and middle ware and worked towards building this standard,
we could easily address all of our requirements, save billions of dollars and programmer hours, and become more
competitive in the marketplace. Virtually every industry has recognized this and gone to this model. Isn't it about
time the computer industry did as well? The opportunity is at hand with Java.
We should stop trying to see who can build the most unique and proprietary features into our products and solutions. It only
costs our customers time, money, and lost productivity. We should focus our efforts on making Java successful. It might hurt
the feelings of some who thrive on controlling customers through the use of proprietary technology, but they'll just have to
get over it.
How did we get where we are today?
Information technology has come a long way in a very short period of time. In order to better understand the
premise of this paper it is important to take a brief look at the evolution of the industry. It is important that we
understand the path that we took to get to the model we are on today, so that we can learn from our past.
Let's leverage the good decisions and avoid repeating the bad ones.
The Early Days of Business Computing
Information is an important asset to any company. Often, companies succeed or fail based on how they gather, evaluate,
and apply information. With the dawn of the computer age, businesses began to look to computers to help them improve.
Early systems focused on reducing paperwork and "automating" redundant processes. Companies were vertically integrated
and wanted to own and control every phase of the development, production, and marketing of products. Since most companies
were very hierarchical and centralized, the computing model followed suit. Employees accessed data and applications on
centralized computers. As data (and the applications that gathered, stored, and manipulated the data) grew, so did the
mainframe environment that supported them
These systems evolved to be reliable, available, and dependable; however, they had their drawbacks. The technology
tended to be very inflexible and difficult to change. Two- to three-year development cycles for new applications were
the norm, with many companies having years of backlogs in application-development groups. Change processes, while
efficient, were long and arduous. At the same time the marketplace, and therefore the business model, needed to be
successful and began to change. The technology couldn't keep up with the changes in business.
New concepts included autonomous business units, leveraging business partners and suppliers, and a real focus on reduction of cycle
times. Business units within a company were often asked to compete against one another or outside firms for business that had once
been theirs by default. At the same time, innovations in IT began to occur at an increasing pace. New technologies offered more flexibility,
much shorter development times, and freedom from centralized IT. PCs and mid-range computers brought with them a tidal
wave of new personal productivity and business applications. This paradigm shift away from a centralized IT structure and
towards departmental computing often delivered function to the individual user or department but not necessarily to the
corporation as a whole.
The Decadent Desktop
The paradigm shift towards autonomy accelerated and the personal computer promised improved personal productivity and local
applications. Business unit budgets, once dedicated to supporting the centralized IT shop, were now empowered to buy new
hardware and killer departmental applications. Client-server computing became the cool alternative to those nasty old mainframes.
Development times were months, not years, and the information was on your desktop. Why pay millions for computing power
when a thousand or so would buy a workstation?
The frenzy increased as prices of these units, extra memory, larger hard drives, and other accessories began to drop dramatically.
Workstations became so popular that many businesses focused on deploying one on every desk, regardless of the usage
characteristics of the employee.
Another frustrating factor is the very short life cycle for PCs. How many of us spent a few thousand dollars to buy the latest
and greatest PC only to see a cheaper, more powerful model within a couple of months? For your personal use this is
discomforting, for a business it is disastrous, and not just from the financial aspects.
New technology often drives ideas for new applications. Applications are often selected by "power users," not the much
larger number of employees that are occasional users of the application. How many employees in your company really
leverage all of the power of applications that are available to them? Not only are we spending dollars for unused function,
this environment can create a "snowball" effect where new application function drives greater hardware requirements.
The cycle repeats itself every few months. How much time and money does your company spend distributing new
versions of PC software? How many different versions of any given product must you support at one time? Is your
company getting a good return on this investment? How can a company keep up fiscally or operationally?
Sometime in the early 90s we began to look seriously at the whole relationship between the IT and business model.
Consultants began producing volumes of reports that established the cost of maintaining a single PC at anywhere
from $8,000 to $15,000 per year. Vendors introduced PC hardware "upgrade" programs and software vendors went to
6- or even 3-month product release cycles. Nice from a product function perspective, but how fast can your company
absorb changes?
During this period we totally lost focus on why we turned to computers in the first place. Instead of focusing on how
they contributed to the business, we became enamored by the technology. Hardware and software rolled in the door in
waves. Each new wave brought with it lots of new features and functions, but were the benefits really there? How many
of us use all of the IT function that is available to us today? How much money do businesses around the world spend
buying, implementing, and supporting technology that isn't used? Is the technology really contributing the maximum
to bottom line profits?
Attempts to change
While standardization is a common sense approach, the computer industry has not been able to enjoy the potential
benefits of a standards-based approach. We have tried to standardize data models, network protocols, and operating
systems. Today, there are over 1500 "standards" bodies in the IT industry. Manufacturers, while publicly endorsing
standards, has felt the need to differentiate their implementation of the standard by delivering a deviation that included their
"added value." Instead of differentiating product lines, this "maketecture" approach has created a world of proprietary
systems that don't talk to each other, require significant investment to integrate and support, and tend to force the
customer into a path almost totally controlled by the vendor. This also forces companies to spend a lot of time and money
that provides no return on their investment.
Network computing
We are on the brink of a new era in information technology. We have talked for years about the benefits of
portable applications, code reuse, and rapid application development. Now it is time to deliver.
Delivering on the Promise of Network Computing
We have learned a great deal from these experiences. We are moving at unbelievable speed to take what we have learned
and apply it to a new "networked computing" model. Today's businesses deserve, and are demanding , a computing
environment that leverages what we have learned and delivers on these promises. The industry must eliminate these
inefficiencies and proprietary approaches and truly improve the return on their investments
The computing environment of the 21st millennium must be one where vendors and companies are not
encumbered by the worries of how to handle differences in technology. The environment must be one in which
vendors and companies differentiate themselves not by their ability to create proprietary environments and cover
them up with great marketing messages, but by their ability to apply knowledge and intellectual property to
business problems.
The Benefits of Java
Java offers us the opportunity to do just this. Java is not the answer to every problem, but it is a solution to one of our
biggest fundamental problems and can help us establish a new method of working as an industry. Today, most of the
industry is rallying behind Java. Companies are contributing millions of dollars worth of intellectual property to the
Java Developers Kit and the Java Virtual Machine-property that once would have been used to build a proprietary
competitive edge. Think of the power of this. Tens of thousands of developers that were once doing duplicate
development and figuring out proprietary ways to implement a single function, are now working on a common code base.
National Language Support, a necessary but difficult area, is now available to everyone. Small companies now are building
applications that are available to the world. This enables the technology to be made available to everyone and greatly reduces
the cost associated with developing new applications or capabilities. Development resources once dedicated to porting code
now are freed-up to build applications.
Vendor Benefits
Software development projects historically have incorporated millions of dollars and development resources dedicated not
to writing logic to improve the application, but to porting testing, and maintaining the application on multiple proprietary
platforms. These tasks are not fun for developers and often delay getting needed function to the customer. The availability
of the Java Virtual Machine on every major hardware and software platform means that we no longer have to budget dollars
for porting costs or tie up highly skilled programmers in the boring and frustrating task of porting code or supporting numerous,
operating system-specific versions of an application.
It is also important to differentiate between the traditional, proprietary
approach and the Java approach. The traditional approach requires supporting a myriad of platform specific APIs. Java and
the "write once, run anywhere" approach requires supporting a single set of APIs that run on any platform.
Vendors are now free to focus on applying these skilled resources to delivering more and better applications. The cost of
building and supporting applications go down. These are all real, tangible benefits to the vendor community.
Customer Benefits
Customers either spend a great deal of money on integration projects or have to defer implementation of business decisions
because the integration costs are prohibitive. Rollout and support of new function requires tedious planning. In-house
development also faces the same challenges as the vendor community. With Java, most of these problems go away. More
function that is easier to implement means improved return on information technology investments. A level playing field for
vendors and their reduced costs means more competitive application prices. Again, tangible benefits for the customer.
Benefit of JavaBeans
One of the promises of the past was code reusability; Java delivers with JavaBeans. Need a function to track name and address?
Build it as a JavaBean. After it's built, it can be shared, sold, or reused. The whole idea of JavaBeans promises to deliver vast
reusable libraries of functions that can quickly be easily assembled into new applications to meet urgent business requirements.
The JavaBeans specification means that now AD tools, by adapting to the specification, can freely interchange beans, thereby
greatly increasing your flexibility to choose the AD tool that best suits your needs. And you won't have to modify the code to
run on the 27 different hardware platforms our company has installed. Talk about flexibility.
The JavaBean specification is also an excellent example of what we can achieve if we quit fighting over technology and cooperate.
The specification was developed by 14 companies in less than 60 days. See what the industry can deliver when it wants to!!
Write Once, Run Anywhere
Portability and flexibility, both information technology promises of the past, are a reality with Java. In the past, we have had
languages that espoused portability, but none delivered anything remotely resembling portability. Developed from the ground up as
object oriented and portable, it has already addressed the biggest challenge. Companies now are free to let departments select the
hardware platform of their choice without worrying or having to budget for integration and porting costs.
Java applications are implementation-neutral. We often get caught up in the fat client, thin client rhetoric. Because Java is truly
object-oriented, you are free to distribute the application business logic in the manner that best fits your needs. Modifications
are made easily and transparently as business needs change.
Rapid Application Development
JavaBeans, true object-orientation, and the ability of AD tools to easily inter-operate deliver
on the value and promise of rapid application development. Java projects at companies
throughout the world are delivering real business value in weeks and months, not years.
Companies are able to leverage existing systems and data, enter new markets, and even develop
new businesses in record times.
Speeding Ahead
Let's put all of the marketing hype and focused messages aside. Let's take this opportunity
to really exploit the potential offered by information technology. Some are threatened by this
potential and are quick to point out the shortcomings of Java today. Is it perfect? No, but
then the nay-sayers probably have a few holes, security problems, or glitches in their systems, too.
What Java is doing is maturing at a rate that is unprecedented in the industry. Just as businesses
have made dramatic reduction in cycle times though cooperation and standardization, the information
technology industry is changing the way we do business by cooperation on the development of Java.
We can accelerate this pace even more we stop spending time and money on promoting what it won't
do and focus those resources on improving it. A small book of excerpts from John M. Capozzi's book
If You Want the Rainbow You Gotta Put Up With the Rain contains the following quote: "
Nothing is more rewarding than to watch someone who says it can't be done get interrupted by someone
actually doing it." It is time that we as an industry stop talking about why it can't be done and set about the
task of doing it.
Act now
Companies throughout the world are beginning to implement Java solutions, but it isn't enough. We need to push it,
stretch it, and even break it. If we don't, it won't change fast enough. We need to support vendors and customers that
add to the technology and adhere to the requirements in order to keep Java truly open, ubiquitous, and portable. 100%
Pure Java shouldn't be viewed as a marketing campaign; it should be viewed as the logical, common-sense approach,
the only approach that will truly move the industry forward and unleash the full potential that has been held
back for so long.
Some in the industry have criticized this initiative but, again, this is just the ancient "marketecture" approach designed to
protect the proprietary environments and eliminate a customer's freedom. The goal of the campaign, and the benefit, is to
make sure that applications are truly "Write once, run anywhere." We have to stop getting distracted by individuals and
companies that continually tell us that we shouldn't listen to common sense.
This is not the time to sit on the sidelines and wait to see if Java is going to succeed or not. We have an
unprecedented chance to take a shot at revolutionizing the industry. The only way that we will reduce costs,
improve our return on investment, and truly exploit the potential of information technology is to get involved.
Contribute, develop, or evaluate, but above all do not accept anything that furthers the proprietary and wasteful
ways of the past. Hockey legend Wayne Gretzky once said, "You miss 100% of the shots you don't take."
Take the shot; it can't miss.
|