‘Off-the-shelf components’ has been a slow market, but reusable code is a
big deal for software companies under pressure to develop reliable code quicker.
Here’s how they’re building up and leveraging their own component libraries
"Resolving the software crisis requires fundamental changes in systems
thinking, software processes, and technology use. The component revolution
contains key elements of the solution."
Thomas Mowbray
chairman, iCM
The software industry is in a mid-life crisis. Its traditional development
practices are out of step with the demands of new-economy business. The good old
structured and object oriented programming techniques remain the two dominant
approaches to development.
That domination has been challenged by a third significant paradigm:
components.
xComponent programming emphasizes the re-use of previously built software ‘parts’.
A component is a piece of reusable software that describes and delivers a set of
services. This model extends and fine-tunes object-oriented techniques, plugging
the gaps of a language-based approach.
Gartner has predicted the market for component-based development at $ 7
billion this year, and says that 60% of new applications developed will be
component based.
|
So what took so long for component development to make its mark?
One factor was the lack of consensus between component developers and vendors
in evolving common standards. Another was the big, global-scale ‘unorganized-sector’
approach to the third-party components industry.
Thus, companies ask their developers to build components to spec, rather than
developing software from off-the-shelf components.
The concept took roots in the early 1990s, but remained a dream for the
majority. Yet, conventional software development was flawed. It suffered from
failure rates of over 50% over the 1980s, with programmers spending more time
rewriting the code and fixing bugs than on primary development. But the industry
got a boost in 1998, when Thomas J Mowbray, developer of the Common Object
Request Broker Architecture (CORBA), founded the Internet Component Management
Group (ICMG) to act as a nodal body for component-based development. This and
other vendor initiatives have led to some degree of standardization, with
frameworks and methods such as J2EE, Windows DNA, COM+, Borland J Builder, CORBA,
MasterCraft, Component Warehouse, etc. Says Vinay Kulkarni, chief architect,
MasterCraft-TCS, "There’s a global standardization drive in the business
community as IT systems reach maturity. The older manual processes are no longer
acceptable."
Handicraft to assembly line
With the components market about to take off, software companies are getting
ready to deliver component-based services. Internal ‘component centers’ are
coming up in companies, for instance. Says Dilip Ittyera, CTO of Zensar Tech,
"Today, the time available for re-engineering or building new business apps
is shrinking rapidly…companies need to focus on a strongly component-oriented
development approach." Zensar uses components actively. It uses
"solution blue prints"–platform-independent reusable solutions that
can almost automatically build applications. Thus, complex business apps
specific to a customer are generated quickly.
|
Today, interest in component development has been rekindled, thanks largely
to competitive pressures in the IT market. Component development is part of the
CMM Level 5 process methodology of Chennai-based Cognizant Technology Solutions.
It has established a components center, Cognizant Compass, to facilitate
adoption of component-based architectures for quicker apps development. The
company has also created a component repository on its intranet, where all
project teams can upload and download components. CTS also works with the
Internet Component Management Group (ICMG) for training employees on component
technologies.
Says N S Swaminathan, director of projects at CTS, "The software
industry has traditionally been a craft industry, with apps built from scratch
using the skills of software developers. Thus projects were delayed, costs
escalated, quality dropped. Today’s economic realities have changed, for both
enterprises and software companies. Companies have to adopt a component-based
approach."
The early adopters
Yet, the going has been slow. Companies want to get there, but their
processes aren’t geared up, aligned as they are for conventional software
development. Hence, to put in place a project team for component development
involves a considerable degree of realignment in terms of knowledge and process
orientation.
Components and the Software Company |
TCS, Infosys, CTS, Polaris, Zensar and others are building up repositories of re-usable components
Large software companies are able to cut down development time by building up libraries of tested modules, especially for vertical applications. The key is not in uploading the component, but in standardizing and documenting it, and publishing its interface specs. This means additional work for the authoring team… but across the organization, this is well worth it if it’s re-used even once. And the more the re-use, the more the benefits of the components approach. The repository of components is thus shared across different projects. TCS has developed a component framework called MasterCraft, that helps generate business components from client specs, using it to develop mission-critical apps. Here’s how it works: |
Companies that did invest in components early enough are in a strong position
today. Borland realised this many years ago and introduced Delphi. Subsequently,
using this experience in component architectures, it wrote specs for Java Beans
for distributed computing. Borland C++ is now the de facto standard in C++. The
company also brought Kylix, a toolkit to let developers build components for
Linux systems.
Borland’s country head in India, Ajay Mohan, says that its comprehensive
component architectures for Windows, Linux and Solaris platforms, and toolsets
like Bizsnap, Websnap, and Datasnap, change manual-intensive development and
give a new dimension to enterprise computing. "e also help component
developers promote their components online, at community.borland.com,"
Mohan says. This community website has references to over 600 components across
diverse environments.
South-based developer Polaris Software Lab uses a ‘component warehouse’ (CWH).
This component framework allows quick deployment of custom products and
projects. Polaris’ senior VP Nat Narayanasamy explains that the CWH is an
online store for prefab, multi-platform application services.
|
Infosys has also been into component development for years now, having
successfully implemented many projects using component services. Says Pradeep
Sanyal, technical architect at Infosys, "We like to incorporate the best
practices across the industry, and component programming is one among
them."
Wipro has also incorporated reusable frameworks in its software services
portfolio, aimed at easing time-to-market pressures. It has a slew of
component-based solutions such as its WAP Gateway, Websecure, TransIT and
Analytical CRM.
The main agenda for all these companies is to create a component repository
form where developers and programmers can source components, rather that writing
code from scratch. The higher the re-use rate, the more successful the component
initiative.
Quickapps for the verticals
With components, software reuse is a reality. But success and effective reuse
depend on design and management processes behind the components. The benefits
are immense. But many Indian companies aren’t there yet. Says Dilip Ittyera of
Zensar, "Many companies focus more on executing projects through
brute-force methods using cheap manpower, rather than investing in long-term and
cutting edge development approaches like component programming."
Zensar has been actively working on code reuse, particularly for
industry-specific vertical solutions. As a result, it has achieved shorter
development periods and lower maintenance cost. CTS, too, has achieved 30%
percent reusability with pre-built components, and about 20% improvement in time
to market cycles.
Looking at the reuse patterns in the Indian context, the major driver has
been the vertical segments where there’s a high chance of success of getting
meaningful services from a pre-built component. Often, compliances and
regulations characterize the vertical segments like finance or healthcare.
Needed: Interface standards
It’s not all smooth sailing with components. Probably the
biggest hurdle is the interface–and the lack of standardization there. Thus,
components often can’t plug into different systems. Developers need to choose
the right tools that enable dynamic and flexible component development.
|
There are very capable tools and technologies available,
including CORBA, Borland J Builder, Kylix, BEA Weblogic, COM, J2ME and J2EE. The
component has exposed the benefits of a tool-based approach to computing by
pushing programming further toward an engineering domain. Despite the e-boom and
emergence of new technologies, many enterprises in India are still stuck with
legacy systems. Analysts believe that the legacy intensive geographies will be
the major target for component developers and vendors in the coming years.
For a shrink-wrapped and off-the-shelf product, the market
figure is estimated at $1 billion this year. If we include the emerging area of
Web services, then the figure could easily add up to $33 billion this year. The
progressive roadmap for component services and the demand drivers’ from
various enterprise segments clearly indicate that this technology will soon
become the most sought after software development paradigm.
G Shrikanth in Chennai