Living Applications: E-Business Applications That Span the Business Life Cycle
E-business is about change. Every day, we see the emergence of new business models, new competitors, new alliances and new, Web-based business applications, such as exchanges, portals, intranets and extranets. Customers grow stronger, and market conditions become more volatile. Today's global economy has greater velocity than that of traditional business, reducing reaction time and forcing more realtime decision making.
Just as the Web is a new and different conduit for conducting business, e-business applications that tap the power of the Web are different, too. E-business applications involve complex, multi-tier environments that must be integrated, not isolated. These applications face higher standards for quality, performance and availability because they are, not only being used by internal users, but, in many cases, also by a scrutinizing external world. While the pace of business and technological change quickens, the role of technology - and of the information technology (IT) department - increase.
Due to the velocity with which businesses have adopted e-business strategies, many of the supporting technologies and approaches used to build e-business applications are either immature or painfully outdated. Most are less than two years old. All are evolving quickly, and only a few will survive as viable standards. As a result, e-business has created a unique set of challenges and opportunities for business and technology decision makers.
Just as e-business is transforming the way we do business, vendors are adapting and creating technologies used to design, build and deliver e-business applications (e-applications). These new e-business technologies (e-technologies) are different from traditional technologies and are evolving at an accelerating pace. For example, until a few years ago, "application servers" were unheard of - they were known as transaction servers. Today, application servers represent one of the fastest-growing segments of e-technologies, with competing offerings from numerous vendors. But, while the market has skyrocketed, analysts predict that the application server market will be significantly reduced to five to eight players in the next few years (Giga Information Group).
As a result of these transformations, steady currents of dramatic and constant change escalate pressure on CIOs and other IT professionals. IT professionals have not shied from the challenge. But, like the proverbial general who must fight the "last war" using out-of-date weapons and tactics, IT departments and consultants have been forced to join the e-business battle using traditional approaches, such as buy vs. build evaluations, leading to the selection of proprietary, prepackaged applications or hand coding and "waterfall" development processes.
The challenge with these traditional technologies and approaches is that they are part of the problem, not part of the solution (see Table 1 on page 24). Each of these application development models imposes a new set of constraints and results in a wealth of associated challenges for businesses, such as inflexible and static systems, long development cycles, a high risk of technology obsolescence and high expenditure levels. These problems are further compounded by the lack of skilled programmers and developers.
Global organizations face mounting challenges in developing and delivering applications that will meet their present and future needs. These challenges include:
• -Improving delivery time of new applitions, as well as the ability to rapidly adapt current applications to business, market and technology changes.
• -Protecting IT investments from becoming technologically obsolete.
• -Reducing total cost of ownership, as well as improving the quality, scalability and reliability of delivered systems.
• -Creating collaboration and improving synergies between business units and IT developers.
• -Solving the shortage of skilled programmers that hampers many organizations' ability to find and retain staff.
Yet, the traditional e-application development approaches are, in many cases, exacerbating the challenges faced by these organizations.
Buy vs. Build Evaluations
This traditional evaluation pits buying (typically a packaged, third-party application) against building (typically hand-coding) with the winning path usually representing the lesser of two evils. Neither the buy nor the build response can truly meet the pressing needs of e-business environments since both of these approaches result in inflexible, static applications that can quickly become obsolete in the face of change. By utilizing either one of these approaches alone, businesses run the risk of facing significant short- and long-term challenges that are not easily overcome.
Missing the Mark
Proprietary, prepackaged technologies and integrated application suites offer businesses a core set of predetermined functionality that the vendor, not the client, has deemed as necessary elements for a respective industry or marketplace. A packaged application that delivers expert business vision, an existing data model, a process model and a graphical user interface provides an initial benefit because it can enable a company to get to market quickly. However, that benefit can be short-lived because these applications are often tied to specific or proprietary technologies, standards and a given business model. As a result, they can rapidly become obsolete because they do not deliver the flexibility to quickly and efficiently meet the barrage of changes in e-business environments. If the business model or technology never changed, the buyer is safe. However, in an e-business landscape where technology and business models continuously change, there is a high risk of technology obsolescence and significant downstream risk that business changes will outpace enhancements to the packaged application.
There are numerous software components, or limited-scope point solutions, in the marketplace for developing pieces of an end-to-end e-application. These include specialized tools for modeling, business rules, page design, messaging and code generation. While some of these tools offer good functionality, each typically addresses only one piece of the application development life cycle. Companies have attempted to integrate a number of these solutions in an effort to create a broader development platform for creating e-applications. This solution requires a major commitment to the actual integration, as well as to maintenance, since it puts tremendous reliance on the individual component vendors who offer no guarantees on the evolution of their technology and future integration with other components. Further, the integrated solution is typically tied to a particular technology platform, making it difficult and time-consuming to adapt to new business and technology requirements.
In e-business, where time-to-market, quality and flexibility are keys to sustained success, hand-coding applications can put an organization at a disadvantage. History has taught us that developing and maintaining code-based applications is not only time- and resource-intensive, but also subject to errors - errors in design interpretation, developer interpretation and programming. Using hand-coded development, applications can be slow to come to market. Once it is implemented, a hand-coded application is typically hard-wired to specific business models and technologies. The result is an inflexible system that carries a risk of becoming technologically obsolete and unaligned with changes to the business.
Further compounding the hand-coding response is the lack of skilled programmers. Few, relative to demand, are trained in the latest technologies, and fewer still also possess the business acumen needed to develop and maintain the large number of e-business initiatives under way at most Global 2000 organizations. Attracting, training and retaining a state-of-the-art technical staff is a tall challenge. In addition, most IT shops are familiar with the scenario in which programmers use individual stylistic approaches and nuances in their coding, making it extremely difficult, and, at times nearly impossible, for any other programmer to maintain their code.
Traditionally, applications have been custom-built using a waterfall-style approach to development, whereby the IT project team gathers requirements or conducts a needs analysis and then proceeds through stages of design, coding, testing, documentation, training and implementation. This approach has several, well-documented weaknesses. First, the business decision makers are often separated from the development process, so requirements are often misunderstood. Next, the waterfall approach typically delays the primary acceptance by users until the very end of the project. This results in extensive changes at the end of the project, leading to increased expenses and significant delays in time-to-market. In addition, these projects typically develop a custom end product, despite the opportunities to reuse work created for other projects.
The constraints associated with traditional e-application development approaches have created the need for a new development approach, better suited to e-business.
We are at a pivotal point in the Internet revolution - not unlike the beginning of the industrial revolution. Prior to the industrial revolution there was no management science and few repeatable processes for the mass production of manufactured goods. In order for the industrial revolution to take shape, management science had to be invented. Engineering had to be invented. It was one thing to build a single Model T, but to build thousands required the introduction of the assembly line and the science of engineering.
The same paradigm holds true for the e-applications that lie at the heart of the Internet revolution. E-businesses cannot grow and adapt using old technologies and static applications. E-businesses require, not just new applications, but an entirely new application development model that delivers speed-to-market, quality, flexibility, transparency, reusability and technology neutrality - and helps remove barriers to growth by solving shortages in technical skills.
This paradigm shift brings about significant opportunities in the development of e-applications. Most important is the opportunity to develop applications that can be deployed quickly and will be flexible enough to adapt to the changes associated with e-business environments. Rather than having to be thrown away two years, a year, or even a month after deployment, these e-applications will be able to span the entire life cycle of a business. They will be inherently flexible and adaptable to rapidly meet changing business models. They will support the leading hardware and software technologies' present and future, resulting in a significantly reduced total cost of ownership, versus static e-application approaches and traditional technologies.
A New Approach
E-applications must be built to keep pace with a dynamic business environment of transformation and change. We call these new applications, "Living Applications," because they readily adapt, grow and change with business and technology changes.
The ideal platform for the development of Living Applications combines: an Internet rapid application development (I-RAD) platform, including visual modeling and automated construction systems, technology-neutral development, technology-optimized deployment, and an advanced software engineering process that facilitates business and IT collaboration.
There are significant contrasts between static applications and Living Applications. These contrasts are a direct result of market and development transformations and represent a major shift in the way e-applications are developed (see Table 2).
There is heightened awareness of the need for flexibility with e-applications. However, the rate of improvement in these technologies and their ability to interact with one another is clearly increasing.
For example, there are notable improvements in visual modeling and automated code construction systems, though there is a limited number of solutions that meet the key requirements of these systems. For Living Applications, modeling systems must provide technology-neutral design at a high level of abstraction, allowing developers and business analysts to "architect" the application at a business model-level rather than at a programming-level. By building the value into the visual model, the application and the developers are insulated from technology changes and can rapidly redesign and redeploy, as needed.
High-level, abstract modeling systems have existed for years with good, but limited, usefulness. By capturing dramatically increased levels of detail in the model, the new systems can then automatically construct code for the majority of the application, which must be high-quality, industry-standard code, and should provide the integration glue between all of the application tiers, as well as client/browser, database/persistence schema, classes and objects, presentation logic, and more. Further, this automated code must be high-performance and scalable, and constructed to take full advantage of the native functionality offered by the technology platforms of choice. Finally, the code construction must have the ability to quickly and easily update and migrate existing applications to new deployment technologies.
The ideal development platform contains the systems necessary to deliver complete and complex Living Applications - all from a single, integrated, end-to-end development environment. The process begins with pre-built, reusable and readily customizable frameworks or software components containing certain functions. This provides a head start in application development. Since the platform features a visual architectural modeling system as well as an automated construction system, development time is reduced by virtually eliminating resource-intensive hand coding. Instead of sitting idle while programmers code from a set of prescribed requirements, business experts with domain expertise can participate and provide input on every aspect of the business application as it is being designed. This includes business objects, workflow processes, customer touch points, as well as the look and feel of the entire application. As a result, the development process becomes an iterative process in which business decision makers are intricately involved throughout the development process.
Living Applications hold signficant and ongoing benefits that enable businesses to gain and sustain their e-business edge:
• Living Applications easily adapt to business, market and technology changes, so businesses can rapidly pursue new business strategies or defend against competitive advances.
• Living Applications are built in a technology-neutral environment and can be reconstructed to take advantage of new technologies, so businesses are protected from technology obsolescence.
• Living Applications provide a needed solution to the shortage of skilled software talent, because they are created using a visual development environment and automated construction capabilities that can dramatically change the composition of application development teams and limit the need for resource-intensive hand-coding.
• Living Applications dramatically reduce the total cost of ownership because they are deployed much faster than with traditional approaches, and they span the life cycle of the business.
• Living Applications give businesses high-quality, scalable, secure and reliable applications that save time and money, while enabling sustained e-business leadership.
Arun Gupta is the Chairman of NeuVis Inc.