Second,
do customers need this solution and what problem space
does it address?
Software
delivery is beyond the software development function, similarly
services oriented architecture is more than just web-services.
It is more about the various artifacts and assets that are
interrelated to make an application or a service work in
accordance to the business and architectural needs. Each
of these artifacts and assets are articulated progressively
in various stages of their life cycles, including development,
deployment, usage, and governance. It is important that
they all must be equally governed to maintain integrity
of the asset and its alignment to the business.
Software organizations are now seeking solutions that would
help augment the current SDLC practice with a software asset
creation and management solution, which allows assets to
be consumed directly or by implementing the assets as variants
in a unified and governed environment.
As we all are aware, there are many SDLC tools available
to help reduce time and improve the software quality. But,
each of these tools operates in the specific stage of the
SDLC and does not provide a unified and governed environment
to manage a software asset’s birth-to-death lifecycle.
In every stage of the asset lifecycle there is a software
engineering tool that plays a role in helping the asset
reach the required granularity and form, but again, each
of these tools have a built-in repository that creates and
holds the data about the asset in proprietary form.
Multiplicity
of Data
Heterogeneous
systems employed to help tackle engineering challenges, lead to
multiplicity of Data
Loss
of Conceptual Integrity
Details
like the context, interrelations and variability details are in
the minds of knowledge workers.
Lack
of Unified standards
Difficult
to institutionalize and govern the assets for reuse in its entirety.
Information Asymmetry regarding quality of assets
A
software asset in the current environment goes through various
stages its lifecycle and at each stage there is data generated,
which gets articulated as a snapshot artifact/document (which
is relevant to that stage). The need of the hour as put
forth by software organizations is, for every asset created,
there may be many documents or artifacts associated as the
asset goes through the various stages of articulation in
conformance to the architectural requirement. Each of these
artifacts/documents will provide details about the asset
in its lifecycle stages depicting its completeness in providing
the solution for the defined problem. Very often, these
artifacts are not coherently associated with the asset to
be a completely articulated asset of defined
granularity
as per the architecture. The current practice along with the current
tools do not extend support to provide a unified and governed
environment to create and consume software assets in its entirety
complete with, the asset description, artifacts, inter-asset relationship,
business context, variation and the usability details of the asset.
There are efforts made by the software organizations to capture
the data in a central place, but with the snapshot artifact/document
generated in human-intensive automated environment organizations
will not get a coherent view of the asset and its data. An artifact
or documentation that provides the information about the asset
today vary from author to author and there is no standard way
to represent assets created across the enterprise on various technologies.
This implies that the organization does not have assets in complete
form for it to be consumed or extended to fit into the changing
needs of the business. It definitely will cost the organization
in terms of working from scratch every time and also maintaining
redundant system capability. If the existences of such assets
are not visible, enterprise wide, it would again cost the organization
in terms of maintaining redundant capacity, time, and efforts.
We can see now that there is enough scope to reduce the cycle
time, by cutting the ‘redo from scratch’, redundancy
and rework with qualified assets that conform to the required
architectural needs. We can also see that an organized way of
creating and managing assets will help the software organizations
to look at creating variants of the systems quickly helping reduce
time-to-market.
Taking
a look at the current trends and the initiatives within
the target market, we see the engineering and delivery activities
are focusing on non-linear growth rather than the human-intensive
growth. Case in point is that the companies are building
architectural framework or solution framework to cater to
the needs of information consolidation like SOA, System
integration work, package implementation and extensions,
common product line architecture, asset based development
and delivery, solution framework based variants, etc.
These initiatives, in turn are taken up to cater to the
demands made by IT consumers who are increasingly looking
at systems that can help them to be agile and also reduce
the maintenance cost of brittle systems.