How much has the Web changed the face of enterprise application development? Let us count the ways. Start with HTML, pervasive clients, fat servers, distributed architectures, and application servers.
Move to object messaging, server-side components, decoupled frameworks, and enterprise information portals. And let's not forget the year's big buzzes: eXtensible Markup Language (XML), enterprise application integration (EAI), electronic data interchange (EDI), and global supply chain optimization.
And that's just scratching the surface. Call it what you will: e-business, e-commerce, e-service, e-tailing, e-tc.--from IT's perspective, it's all e-ssential. Indeed, to say the Web has redefined IT, and done so overnight, would not be an understatement.
Yet for all its impact, the Web's most fundamental change to the fabric and essence of enterprise development remains largely unnoticed. That change is the transformation of IT from a plodding corporate function to a fast-running independent software vendor--an ISV.
"The moment you put a dynamic application on the Net, you've shifted from an IT organization that builds solutions for internal consumption, to a company that develops software for external consumers," says Larry Freed, director of the e-commerce practice at Compuware Corp., in Farmington Hills, Mich.
This shift also requires adjusting application development priorities. Technologies many IT organizations have long ignored, such as automated graphical user interface along with function and load-testing tools, suddenly acquire strategic importance.
The reason: When an application system is pointed at the Web, the world is your enterprise stage. Bugs, slow performance, or collapsing under heavy Web loads can mean the difference between brilliant success and bankrupt e-business efforts, Freed says.
Walk like an ISV
Growing numbers of IT leaders, consultants, and vendors agree with Freed's assessment: IT is taking on the attributes of ISVs. To succeed today takes more than migrating sales, marketing, purchasing, and customer services to the Net; and more is needed than adopting new architectures and platforms to keep pace technologically.
According to experts, success requires thinking and acting like an ISV, and adopting proven practices and development methodologies that have long separated successful vendors of shrink-wrapped apps from abject market failures.
In fact, IT organizations that ignore the best practices employed by leading ISVs do so at their own peril. Consider this stunning prediction issued in September 1999 by analysts from the Gartner Group Inc. of Stamford, Conn.: 75% of e-business efforts will fail. This is due in large part to lack of adherence to best development practices and methodologies.
"You need to look at some of the best development practices that [ISVs] have used for years to be sure their products make the grade," says Mickey Lutz, VP of IT at PHH Vehicle Management Services, in Hunt Valley, Md. "For most IT [shops], that usually means one thing: They have to get serious about software testing for the first time."
Lutz should know. As head of the information technology arm of Avis Rent-A-Car Systems Inc., his PHH group was charged with rapidly evolving Avis' UNIX-based client/server environment to the latest bleeding-edge distributed architecture.
|Web terminology glossary|
Application servers: The software that serves up an application in a three-tier distributed system. Essentially the runtime platform for distributed apps, the app server lives on the "application tier" (the other two tiers being the database and the client-side presentation). First and foremost, the app server executes source code and provides traditional middleware services such as transaction processing (TP) monitoring, pooling of connections, objects, and data. They may also provide or otherwise support fault tolerance through clustering, failover, etc. Decoupled frameworks: An application architecture built with reusable, fully encapsulated components. These components can be snapped in or out at will. This makes upgrades and maintenance far easier compared to traditional monolithic applications, where much of the code is tightly integrated and interdependent. Distributed architectures: Application systems that run across multiple computers, also known as "tiers." Tier 1 is the presentation tier, most often a Web browser or a desktop PC. Tier 2 is the application tier, sometimes referred to as the middle, business logic, business rules, or business components tier. Tier 3 is the database. While the architecture consists of three virtual tiers, in reality, the actual implementation of a distributed "three-tier" architecture might comprise hundreds of application servers, dozens of database servers, and millions of clients. Electronic data interchange (EDI): An industry-standard means of formatting a data file so that it can be shared among multiple computer systems. Enterprise application integration: The process of tying multiple enterprise software programs, systems, or databases together, so they can seamlessly share data or objects. Enterprise information portals: A Web site that provides enterprise knowledge workers with an information "dashboard" as a home page. For example, the page might include the company's latest stock price, human resources links, and a menu of the company's master applications for sales, accounting, customer service, etc. The site could also provide a company address and telephone book, a company directory, maps to various office locations, the latest company news, and so on. The enterprise information portal is an employee's one-stop-shop for company news, information, communication, and software applications. eXtensible Markup Language (XML): A "markup" language that allows programmers to define ways to share information between applications. XML is to data what HTML (HyperText Markup Language) is to documents. Just as HTML defined a standard way for documents to be exchanged through Web browsers, XML allows IT shops to define how enterprise data is shared among applications and across platforms. Fat servers: Servers that house all or most of the database and app logic, leaving only or mostly the user interface logic on the thin client. Global supply chain optimization: Improving the efficiency of an organization's end-to-end supply chain through application of software algorithms. HyperText Markup Language (HTML): The tag-based programming language of the World Wide Web. HTML defines how documents are formatted and displayed. It is interpreted by a Web browser at runtime, which converts the text-based HTML document into the lovely display you're looking at now. Independent software vendor (ISV): A company that designs, develops, markets, and supports software products. Microsoft is an ISV. Integration tester: A member of an application development team who validates that two or more software components are communicating properly and without error. Object messaging: Using software objects or components to communicate inside of or among programs, systems, or processes. Pervasive clients: What some believe is the next great era of computing, where computer clients will be everywhere, in many shapes, sizes, colors, and form factors. This includes wearable computers (such as Star Trek style communicators), Internet appliances, palm-sized devices, smart cellular telephones, and interactive TVs, in addition to traditional desktop, laptop, and server PCs. Server-side components: Software objects that reside exclusively on a server. Software algorithms: It's a series of software commands that, when executed in sequence, solve a problem and produce a result. Algorithms may contain other algorithms. In fact, a complete program is a collection of algorithms, and itself can be considered a large algorithm. Unit tester: A member of an application development team who validates that software components are performing according to spec, behaving properly, and executing without error.