During the last two decades, enterprises have observed significant changes in
the software development landscape. The industry has grown from legacy-based
systems to Web-based systems that connect multiple applications spread across
geographies. Demand for accountability, new regulations for compliances, global
competition, and increasing customer expectations for consistency, and
seamlessly integrated products have raised the overall bar on efficiency.
The organizations IT teams and vendors are constantly challenged to develop
products and solutions that help businesses in better product development
planning, improving key product performance parameters, designing
differentiators, reducing failure rates, and increasing efficiencies.
Traditional solutions advocate reuse of organizational assets to improve
productivity. However, this approach suffers from limitations, and over a period
of time fails to meet stakeholder expectations.
Fortunately, our traditional manufacturing industries provide us with a
solution to overcome this problem. They implement what is called platforming
to achieve reduced time to market (TTM), reduced field defect rates, and
increased efficiencies. Of late, IT organizations and vendors have realized the
benefit and applicability of platforming and are attempting to implement this
in software development.
Software testing is a relatively unexploited area of IT for productivity
improvement. A software platforming approach is an ideal way of addressing the
need to create solutions that are agile, help reduce redundancy, are scalable,
and can maximize return on investment (RoI).
This article defines platforming as applicable to software testing,
elaborates on the need, defines a conceptual framework for platform
implementation, and identifies test processes where platforming makes sense. It
also elaborates on challenges faced during platform implementation from a
software testing perspective.
The Need for Platforming
In his book, Product Strategy for High-Technology Companies, Michael McGrath
states: A product platform is not a product. It is a collection of the common
elements, especially the underlying core technology implemented across a range
of products. In their book, Product Design and Development, Ulrich and Eppinger
define platform as The collection of assets, including component designs,
shared by these products is called a product platform. Planning the product
platform involves managing a basic trade-off between distinctiveness and
commonality.
While platforming as a concept has been well defined, implemented and proved
beneficial in the manufacturing sector, organizations in the software industry
are yet to derive similar benefits. Compared to other mature industries, the
software industry has historically suffered from and continues to suffer from
egregious inefficiencies, cost overruns, and late product releases.
Common objectives between the manufacturing and software industries (for
example, the need for reducing total cost of ownership (TCO), time to market (TTM),
and increasing ROI) create the need to understand and implement platforming in
the software industry. While software development has set precedence in
designing and creating platforming-based solutions, software testing as a
discipline is yet to embrace this approach. Software testing organizations that
consider platforming as an integral part of their overall strategy derive
benefits that outweigh the costs.
Since test organizations design and create test assets one at a time (also
called a development in the silos), the focus on individual customers and
products often results in a failure to embrace commonality, compatibility,
standardization, or modularization among different test assets. In effect,
rarely does the full spectrum of test assets get reviewed at one time to ensure
it is optimal for the business. The end result is mushrooming or diversification
of test assets with proliferating variety and effectiveness.
Platforming for software testing is based on a simple mantra: Create
organizational test assets once, and utilize them multiple times. This
methodology enables organizations to create custom-built core platform on top of
existing infrastructure. Such organization-specific platforms (OSPs) encapsulate
the software test assets that can be leveraged across business initiatives and
product lines. Evolution of test organizations toward OSPs results in a decrease
in planning, designing, execution, and reporting time of the test. This leads to
increase in business benefits such as agility, flexibility, rationalization, and
economies of scale.
Concerns
While the need for and benefits of platforming in software development are
well known and implemented as part of the OSPs, software testing in general has
not been receptive to this concept. Some common concerns expressed against
adopting platforming in software testing are listed below:
- Platforming is related to technology, testing teams in general dont need
to worry about technology (they need to worry about domain) - Platforming is the responsibility of enterprise architecture groups (EAG)
- More than 80% of testing is manual in nature, and hence platforming is not
applicable - Nature of deliverables (test plans, test cases, and defect reports) are
application specific, hence cannot be reused across platforms of applications
A cursory look at the arguments makes one feel that platforming is not
applicable to software testing. However, further probing makes it evident that
the need for platforming of software testing is hidden in the argument against
platforming. One way to make a case for platforming software testing is by
looking at a software product line that is platformed and compare it with a
testing solution built on the platforming concept.
Adopting a similar approach, test organizations can create structured layers
that will enable testing teams to achieve consistency, better test coverage and
shorten time to test. If we consider these capabilities, a software-testing
platform would typically consist of decomposed layers of test assets. It would
include a clear segregation between organizational test assets that can be
reused across domains and applications, domain specific assets that can be used
across applications in the domain and assets that are specific to the
application under test.
When planning to test an application, availability of reusable test assets
results in significant reduction of test time. Further availability of such an
organized test platform removes the need to staff projects with experts, thus,
resulting in a low cost testing team with expert capabilities.
With this capability in place, testing organizations can further develop
their effectiveness by creating frameworks for achieving further efficiencies.
Such frameworks are built on top of existing software testing platforms.
Organizational Challenges
As with any initiative, organizations considering platforming can face
challenges. Even when an appropriate methodology is used and the platform focus
is used, implementation is generally met with resistance. This could be due to
inherent fear of failure or due to the need to work outside the comfort zone.
Lack of strategic importance, political environment in the organization, and
senior management support can also contribute to this resistance.
From a strategic perspective, platforming is sometimes not valued as much as
it should. Alternatively, platforming could mean different things to different
teams, resulting in each team implementing its own version of platforming. Only
when a broad and consistent definition of platforming is established, and all
aspects of platforming are taken into consideration, can the full benefit of
such strategy be recouped. From a political perspective, balancing interests of
different stakeholders (project/product managers, customers, marketing,
development and testing teams) can become a Herculean task that hinders
implementation of platforming. To align the interests of different stakeholders,
senior management needs to create metrics that properly measure each groups
contribution to the success of platforming initiative. Also, decision-making
processes need to be established and rolled out so that departmental differences
can be resolved in a manner that maximizes the companys bottom-line.
Risks Involved
While the benefits of effectively implementing platforming are evident
(reduced cost, greater productivity, better test coverage and reduction in time
to time), it has its own drawbacks. Test organizations implementing platforming
should be aware of the risks of over platforming and devise effective means to
overcome the culture of over platforming.
There are tangible benefits of platforming software testing (reduction in
time to test, reduced defect rates, greater test capability, increased test
coverage, etc). These benefits are real and can equip testing organizations the
strategic capabilities to meet the needs of multiple stakeholders. However,
aggressive platforming tends to remove the flexibility of the test organization
and can convert it into a rigid organization. This will result in poor quality
of testing solutions and finally lead to losing customers. Test organizations
implementing platforming should monitor the level of platforming and pay
attention to development capabilities in key areas. Keeping a watch on the
market trend and enabling the test organization to identify and adopt changes
will make platforming more successful.
If required, organizations should be ready to discard outdated platforming
and come up with new platforms that are more relevant to the changing
situations. Finally, platforming software testing needs commitment and support
from senior management.
Paresh Shrivastava,
LRV Ramana, Gerold Rajesh Srivastava is director, QA, while LRV Ramana and
Gerold Rajesh are senior managers, QA at Virtusa
maildqindia@cybermedia.co.in