The Company Components

author-image
DQI Bureau
New Update

‘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

Advertisment

"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.

Advertisment

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.

Advertisment

A
financial application needs a TDS calculator module with
updated tax rules. The team leader scans the components
repository on the intranet. Not finding what he wants, his
group develops and tests the module, and then uploads it to
the repository

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.

Advertisment

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.

Advertisment

The repository stores components, modules, their description and interface specs. This is available to all development groups in that company, worldwide

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."

Advertisment

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.

Advertisment

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.

The next week, another group is working on an HR and payroll application and needs a TDS module. The project leader scans the database, finds the recently-uploaded module, downloads and plugs it in

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.

Pain or Gain?

“Company components cut down development costs—in theory. In practice, it’s rare. Too often, they can be a big pain. New developers need to spend a lot of time trying to figure out poorly-documented components and their use. Business components are complex, and based on complex hierarachies created by in-house staff who are often not the most experienced component developers. Poor implementation (of a company components process) can actually sap productivity”

–VK
Thakur
, US-based components developer

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