reverse flow is also managed, with components
being factored out of the platform and back into
products as the reuse decreases over time. This
allows for the complexity and overhead of the
platforms to remain optimal over time.
2.2 Balancing Commonality
and Distinctiveness
At a fundamental level, product variety and fit is
valuable in the marketplace. The need for superior
performance of the products and the desire to
preserve distinctiveness (e.g. custom features,
control etc.) promotes product organizations to own
certain key components. On the other hand, it is
costly to deliver, as cost benefits are driven through
commonality. The balanced sharing of assets across
products allows companies to manage this trade-off.
This balance has however, temporarily resulted
in an unwanted side effect in SAP: total cost of
ownership (TCO) increases due to the complex
configuration that we provide customers to tailor our
software products to their needs. As mentioned
above, parameterization is a valuable tool in
leveraging shared assets to fit different solutions.
However, the current architecture leverages the same
parameterization for both SAP engineering product
fit and on-premise customer fit (customization). The
effect is to trade off customer complexity for the
power of reusing, and therefore only having to
support, a single mechanism.
Changing the product architecture can influence
the nature of the trade-off. For example by the use of
pre-configured and interchangeable software
component for a particular industry vertical or
customer group which hide the complexity of
configuration will lower costs of customization.
Another technology solution is the use of model-
based methodologies that lower the fixed cost of
developing software, and/or delivering the software
as a service. The hypothesis is that this type of reuse
promotes mass-customization, shortens the time to
market and promotes consistency in products.
2.3 Common Architecture Strategy
The sharing or owning of software components is
dependent on the architectural strategy. The
architecture relates software components to a
physical problem space (hardware, operating system,
and application packages such as database or user
interface). A common architecture lessens the need
to make reusable software components highly
generic because the environment in which they will
be used is well defined. The architecture defines the
rules for developing software components and
provides standard interfaces and data formats. This
aids in the inter-changeability of reusable software
components across the product-line.
SAP had elements of a common architectural
strategy from its inception. SAP uses this approach
for the lower level technological platform and to
support the user interface. However, there is
considerable difference in higher layers of the
architecture between our Business Suite and
Business by Design (BYD) products, which leverage
the same technology platform but are targeted at
different markets. It should be reiterated that the
platforms should be different if they are
fundamentally different and that the determination
of that “fundamental difference” is at the heart of
SAP’s challenges.
2.4 Product Platform Strategy
Product platform strategy is the foundation of the
existing SAP product strategy, which has multiple
products related by common technology platform. It
defines the cost structure, capabilities, and
differentiation of the resulting products. When the
market and products were less diverse, and the
technology considerations more unified, separating
product platform strategy from product line and
individual product strategy allowed SAP to
concentrate on its most important strategic issues of
reliability and scale. As the diversity and rate of
change has increased, the question as to which
components products share and which are dedicated
has ultimately tied to the product platform strategy
more closely to the product line.
2.5 What is a Software Product Line?
A software product line is a set of software-intensive
systems, satisfying the specific needs of a particular
market segment, that share a common, managed set
of capabilities and that are developed using a
common methodology and leveraging common
skills sets.
This definition is consistent with the traditional
product line definition. But it adds more: it puts
constraints on the way in which the systems in a
software product line are developed. Substantial
production economies are achieved when the
systems in a software product line are consistently
developed from a common set of assets in contrast to
being developed separately, from scratch, or in an
arbitrary fashion. It is exactly these production
SHARE VS. OWN - Software Reuse using Product Platforms
247