In-Depth
Emerging Tools Fueling Escalation of Component Development
- By John D. Williams
- January 1, 2001
Component development model requires separate tools for phases of development
life cycle; IT developers say holes filling quickly, but a comprehensive suite
remains elusive.
There are few topics in IT organizations today that are likely to spark debate
more quickly than the standing of software development tools. Many, if not most,
developers are convinced that their favorite tools are the best, and rebuke
colleagues who favor another toolset. Such debates are sure to continue as the
tool business begins an apparent renaissance with the advance of IT development
techniques to finally support the long-hyped component development model.
The effective development and deployment of component-based systems requires
a broad range of tools. Because no single tool can cross all phases of component
development, developers need to discover which tool is best for each function
in a specific project. And beyond developers, whole firms must examine their
need for tools and the ability of their people to use them effectively. Favoritism,
experts say, can kill these projects.
An organization's tool needs are shaped by its business requirements, corporate
application architecture, enterprise infrastructure and developer skill sets.
With all of these factors, is it any wonder that no one tool can meet all needs?
Fortunately, the marketplace today can provide developers with an environment
rich in tools for all aspects of the development life cycle.
Challenges and trends
Without a doubt, developers are strong proponents of their favorite tools.
They have invested much time and effort in building skills that make them productive
using the single tool. Pressure to deliver software solutions rapidly drives
developers to specialize in particular toolsets in order to gain the productivity
demanded by their managers. One challenge of specialization is making both developers
and the organization productive throughout the life cycle.
As developers narrow their tool focus, they are demanding broader functionality
from tools so they can do more work in their preferred environment. While developers
do not find it productive to become expert in the use of many different tools,
they still have a wide variety of tasks they must accomplish.
New technologies and architectures are causing developers to create ever more
complex systems. To meet this demand, developers want tools that can cover the
gamut of development and deployment activities.
While tools are a significant factor in developer productivity, they cannot
guarantee a successful component development project. A software engineering
development process must first be im- plemented to provide a framework for component
development success. Unfortunately, tool support for development processes is
minimal to date. Experts note that the availability of tools that can au-tomate
the development process would speed process adoption, and thus improve timeliness
and software quality.
Tool suppliers are taking heed of the demand for such products, observers note.
For example, several tool vendors have started building interactive development
environments (IDEs) that are designed to handle complex, n-tiered architectures.
One example of progress in this area is the growing use of wizards that automate
some complex and tedious tasks. Some tool-makers are also promising to provide
more integration with the various third-party technologies needed by n-tiered
applications. These are all good steps toward providing a single platform for
software development, though more is still required for most corporate component
application development projects.
IT developers have for years discussed the tool requirements for component
development, and for much of that time have said they are looking for a tool
that is the equivalent of a Swiss Army knife. Such tools, these developers say,
must have the flexibility to adapt to new — and rapidly changing —
technologies and architectures. Many developers have started championing an
emerging group of simple tool suites that are tightly integrated within a development
and process framework. This type of framework is starting to emerge for component-based
development.
Despite a lack of tools for some phases of the process, some companies are
already having success with the new component architectures. For many, this
means using Web and component-based architectures. Glenn Palmiere, CIO at G.
Pierce Wood Memorial Hospital in Florida, noted that his company has been able
to cut development time by 50% since it moved to a Web and component-based architecture.
Palmiere also said the new efforts have greatly helped the hospital reduce its
backlog of applications from 270 to 14. These are the kinds of results businesses
demand from component development efforts.
While developers are focusing their efforts on finding tools for specific parts
of the process, organizations are looking for a much broader product set. As
the process of developing and delivering applications grows more complex, companies
are looking to automate as much of the process as possible to improve productivity.
Accordingly, they look for tools that will help them be effective in all phases
of development. This means organi- zations have to manage more tools and develop
more specialized skill sets. Companies can mitigate tool proliferation by restricting
the number of tools they support for any given development phase. Communication
and the integration of tools across the life cycle therefore become critical
issues in helping organizations to deal with this complexity.
Rapid changes in technology can complicate matters for developers and vendors
alike. Many of today's tools were born to support the creation of monolithic
systems and, at times, these roots still show. Many of the tools were adapted
for the client/server revolution, and then for distributed systems, by adding
layers of complexity. Today, the need to extend support to the World Wide Web
has created an environment in which tools cannot keep up with developers' needs.
Technically incomplete tools, and tools that do not integrate well with others,
tend to slow component technology adoption and deployment. Suppliers of these
tools are scrambling to address the problems created by adding on to older technologies.
At the same time, the development skills of engineers charged with building
these architectures often lag behind an organization's desired — and required
— rate of change. To compensate for their lack of expertise in emerging
technologies, developers need tools that can minimize some of the immediate
requirements of new skill sets. Some operations have turned to wizards to immediately
address the issue. Common Object Request Broker (CORBA) wizards, for example,
can simplify the process of creating distributed applications, though developers
are still forced to spend significant time filling in the gaps.
Tool considerations
Developing component-based systems calls for more from development tools than
just writing lines of code. The entire life cycle, from system conception to
deployment and maintenance, needs to be considered when selecting a toolset.
This article has so far looked at component development trends from both a developer
and an organizational perspective; now we will examine what these trends mean
to each stage of the development life cycle.
Component development projects need to start with the selection of a software
engineering process. Many users browse through a few books to help them define
how the process will work. Others create and document their own processes. Organizations
can get a running start by turning to process development tools. The available
lineup includes the Rational Unified Process (RUP) from Rational Software Corp.,
Cupertino, Calif., and the Platinum Process Continuum Process Engineer from
Computer Associates (CA) International Inc., Islandia, N.Y. Both tools are said
to offer a compendium of best practices for component development processes.
The Rational Unified Process focuses on best practices for the developer.
According to Per Kroll, Rational's group marketing manager for process and product
management, RUP can provide developers with guidance in their day-to-day work.
In addition to process guidance, RUP includes tool masters that help developers
accomplish their tasks with Rational's suite of products. The best practices
in this tool are not focused on project or process management.
CA's Platinum Process Continuum Process Engineer is a broader compendium of
best practices. Its best practices address the process engineer and project
manager, as well as the developer. Process Engineer is one tool in a suite of
process and management tools.
Both of these tools face a challenge in integrating existing corporate development
processes. For comprehensive tools such as Process Engineer, the integration
requirements can be sizeable depending on the complexity of the process in place.
IT development managers face similar issues with less-complex tools like RUP,
but the scope of impact is narrower. While Rational does provide RUP with some
integration with the firm's variety of tools, tight integration with a complete
set of development tools does not yet exist for either product, observers say.
Development managers say there are no tools available yet that can automate
development processes or provide them with workflow. Such tools could provide
the framework required for component development, experts say.
In the area of analysis and design, today's tools tend to come in two flavors:
requirements management and system modeling. While developers are generally
more familiar with system modeling tools, requirements management tools can
be a great help in both building and managing the building of systems. Several
development industry insiders continue to express amazement at the number of
developers who use neither requirements management nor system modeling tools.
Requirements issues are the leading cause of design flaws, as well as projects
being late or over budget. Additionally, clear documentation and communication
of a system design can speed software development. Such tools can help users
manage project scope and facilitate communication, and should be playing a key
role in the rapid development of high-quality systems.
Rational's RequisitePro and Technology Builders' Caliber-RM are two tools for
managing requirements. Requirements management tools are basically organized
repositories for the requirements with links to relevant design artifacts. There
are several advantages to using this type of tool. You can keep track of the
scope of a system and manage "creep." You can also trace requirements to the
design of the system to ensure that the required functionality has been implemented.
Requirements tools can also work with testing systems to validate appropriate
testing. These tools can help users understand the impact of requirements changes
or sharing requirements across systems.
Like process tools, requirements tools often need to be configured to match
an organization's processes. Each of these products can provide ties to modeling
and testing systems. RequisitePro's Net Market edition is interesting because
it comes with predefined requirements and analysis artifacts for e-commerce
systems — a trend IT development managers say they hope will continue.
Rational has found significant success with its Rose modeling toolset. Together/J,
from Raleigh, N.C.-based TogetherSoft Corp., is a similar tool that observers
say has become somewhat successful among the ranks of Java developers. Select
Enterprise from Princeton Softech, Princeton, N.J., is another modeling tool
that supports a variety of development environments. The emergence of a de facto
standard methodology has significantly boosted corporate interest in modeling,
analysts say. In 1990, there were 50 different meth- odologies for modeling
object-oriented systems. Today's tools show that most users have standardized
on the Unified Modeling Language (UML), which was championed by Rational and
is now controlled by the Object Management Group (OMG), Framingham, Mass., for
component-based systems. The standard makes it easier for developers to communicate
with one another, say managers. Tool selection now becomes a matter of how well
a tool integrates with a corporate IDE and how easy it is to produce the type
of artifacts the process requires. While all tools claim some level of round-trip
engineering, not all tools are equal. Experts warn IT development managers to
evaluate tools against the organization's particular requirements.
Development issues
No subject is likely to generate more heat than the selection of a corporate
coding tool. There are so many on the market, it is impossible discuss each
one here. Instead, this section will focus on the three main camps of component
developers and their tools. The largest camp consists of developers who use
the Microsoft development environments. Developers in the second camp use standalone
IDEs, while the final camp contains developers who use integrated development
and deployment environments. Each camp has its proponents and detractors.
Without a doubt, Visual Basic is the most popular IDE for building component-based
systems in the world today. Among developers I polled, the consensus is that
Microsoft makes easy things easy and intermediate projects not so hard. The
VB object class browser, command completion and remote debugging are favorite
features. While Visual Basic is much loved for its ease of use, experts say
it does have its weaknesses, especially in enterprise development projects.
Developers who use standalone IDEs have the widest range of tools to choose
from. Among the developers polled for this story, the more popular tools are
IBM's VisualAge for Java, Inprise/Borland's Jbuilder and C++ Builder, and Visual
Café (formerly owned by Symantec) from Cupertino, Calif.-based WebGain.
One interesting move in this area is the porting of these tools to Linux. The
Inprise/Borland Kylix project, which will port Delphi and C++ Builder to Linux,
will help make RAD tools available to Linux aficionados. IBM's strong support
for Java and other tools on Linux also bodes well for developers who want to
use this platform. This developer camp also makes strong use of tools related
to their IDEs. For example, many C++ developers consider Rational's Purify essential
for high-quality development.
The third developer group uses toolsets that combine development and deployment
environments. Popular toolsets include eBusiness Platform from SilverStream
Software Inc., Burlington, Mass.; the eWave component-based e-commerce suite
from Unify Corp., San Jose, Calif.; and the Forté line of tools from
Sun Microsystems Inc. If the application under development fits within a tool's
range of capability, developers will often find such tools very productive.
Observers note that the capabilities of the tools are improving steadily and,
at the same time, tools suppliers are adopting more industry and de facto standards.
The latter trend should boost the use of such tools in the coming months, observers
say.
While the focus of these tools is component technology, they must also support
another major driver in development today — the World Wide Web. Almost
every organization is moving to Web-based application architectures to shorten
development time and reduce development costs. The trend is clearly having a
major impact on what developers need to accomplish to develop capable applications.
It is in this area that developers noticed the most gaps in component development
tool capabilities and the needs of corporate developers. The most common complaint
is the lack of tool integration between front-end Web development and other
tiers of a system. For example, Dan Johnson, a developer with Raleigh, N.C.-based
Carolina Power & Light, said he would like to see end-to-end debugging from
either source or the execution en- vironment. Other developers said they would
like to see tools with more built-in Internet support.
Another area where developers are finding gaps is in middle-tier development.
Many server-side pieces of systems do not co-exist well with other server-side
pieces. This can be true even with products from the same vendor. This can be
caused by version compatibility issues or by overlapping functionality. With
many tool vendors providing their own middleware pieces, compatibility has become
critical to many organizations.
Many IT developers have identified additional gaps. Deployment and release
engineering remains a mostly manual process for most organizations. The complexity
of distributed Web architectures has only made the problem worse, as most tools
handle only a portion of what is needed. The most commonly mentioned tools in
this area are PVCS from Merant, Mountain View, Calif., Visual SourceSafe from
Microsoft, and ClearCase from Rational. Roundtable, from Santa Ana, Calif.-based
StarBase, is also worth a look.
Testing remains development's step-child in many organizations, even in complex
component development projects. Several developers recounted the challenges
they faced trying to get their organization to purchase testing tools. Those
that bought testing tools purchased products such as Compuware's NuMega DevPartner
Studio for unit testing, and Mercury Interactive's LoadRunner and WinRunner
for application and load testing. Both companies provide test management capabilities.
Other tools, such as Technology Builder's Caliber-RBT, can help tie requirements
to testing.
Clearly, component development tools are growing in power, but advances in
technology and architecture can be expected to continue to outstrip tool capabilities.
For developers, tool integration remains a major, though mostly unsolved, issue.
Lack of tool integration creates extra work and opportunities for mistakes.
At the same time, many developers said they are quite happy with the tools they
have and look at the gaps as opportunities to utilize new tools and technologies
that can help them become even more productive.