Modern Realities – Options, Variations, and Choices (Part 3 of 3)
You may have seen the terms flitting around the internet: variants, variant management, product line engineering (PLE). You may have read that they represent an onrushing trend in product development. You may be wondering “just what is all this and how is it going to affect our business”. In this series based on a new whitepaper from Polarion Software, we’re going to try to answer these questions and others.
In Part 1 “Variety is the Spice of Life” we talked about some of the drivers behind the trend of demand for variation and customization. Part 2 “Tactical Approaches” discussed ways to approach handling of variation. In this third and final part we’ll have a look into the concepts of Application Lifecycle Management (ALM) and Product Line Engineering (PLE), and show you some solutions that are available right now, today, to help you meet the rising demand for variation and customization of your company’s products.
ALM – Lifecycle Management
Software development has significantly evolved over a relatively short time period, enabled in large measure by an acceptance of lifecycle management approaches, using standardized artifacts, infrastructures, and workflows. Polarion customers experience profound benefits to development productivity, efficiency, and quality in deploying Polarion’s unifying suite of application lifecycle management (ALM) capabilities, spanning all phases – from elicitation, through requirements, through testing/validation, and ultimate release, all the while preserving comprehensive traceability, enabling collaborative agility, and effectively managing change.
In using this standardized ALM infrastructure, development strategies for reuse can be evolved to more holistic platform-oriented visions upon which applications are developed. Such a platform viewpoint contains the development infrastructure as well as the functionality that is common to all applications. This brings commonalities into focus, enabling a minimalistic accommodation of variability, since core functionality can now be shared across several projects/products. Those projects/products sharing such core functionality are usually of a similar type or intended for a similar problem domain. Cloning (branching and modifying) remains a necessary tactic to introduce new variation.
Product Line Engineering – Foundational Concepts
Moving beyond minimalistic accommodations for variation, to richer development environment capabilities to support growing mass customization expectations, compels new innovation to augment existing ALM domains.
Developers have long studied and debated, on a largely academic basis, the relative merits of adopting many of the proven concepts used in manufacturing for the purposes of software development. One such borrowed idea is the concept of product lines, in which a portfolio of related products are engineered to take advantage of similarities while still respecting differences. These fundamental concepts are the foundation which make it possible for manufacturing processes to effectively support widespread variations. For example the foundational engineering practices employed by vehicle manufacturers that make it possible for them to offer the vast array of options and choices prevalent in the automotive marketplace.
However, product line concepts are disruptive to entrenched software development practices, and they touch all aspects of software development, so their adoption for software engineering purposes is resisted, typically driven only out of absolute necessity, and implementation of the practices often progress at a glacial pace.
Polarion VARIANTS is firmly rooted in these concepts, distilling the benefits of product line engineering approaches into tangible capabilities that are readily exploitable to augment and accelerate ALM capacity in order to successfully manage software variation. Polarion has made it possible for ALM practitioners to immediately realize the associated benefits, in logically incremental ways, in order to embrace growing levels of variation, and to avoid or mitigate many of the impediments associated with the introduction of a seemingly disruptive new paradigm. For organizations already steeped in product line engineering principles and practices, they will immediately have a familiar and instinctive toolset at their disposal.
A New Era of Capabilities
With Polarion VARIANTS paired to ALM, greater levels of variation can be accommodated, and greater reusability can be attained by using platform approaches in a more balanced way to identify and manage both common and shared elements as a core asset. The amount of functionality in the resulting platform is increased to the point where functionality shared by several projects, the common core plus the overlapping shared elements, are made precisely visible and establish a baseline of management to control which shared assets should be applied to which selected variants.
Balanced Reuse – 90% Approach to Variant Management
Polarion’s utilization of a repository to facilitate a versioning history, and thus to provide an audit trail for all development artifacts, is further expanded by Polarion VARIANTS to effectively provide an asset base of the sharable and reusable building blocks that are used to establish variation diversity. ALM’s collaborative facilities and powerful workflow management capabilities are leveraged by Polarion VARIANTS for the systematic scoping, requirements prioritization, and approval processes needed for the lifecycle management of the common core and shared elements. Development efficiency is increased not only with regard to differing variants, but maintained across multiple teams working on multiple projects, thus minimizing duplicative efforts and revealing opportunities where previously implemented variation can be integrated into the common platform(s).
The 150% Solution to Variant Management
Polarion VARIANTS can further implement a truly maximalist approach to variant management, allowing for the management of both common, shared, and varying elements, as well as managing their interdependencies, all within the context of a software lifecycle. Reusability is maximized to encompass all development artifacts, from requirements to testing, for all common core, shared segment, and unique elements. Functionality can be expressed in terms of features, while remaining within the familiar framework of requirements.
The real magic is that requirements driven software development (i.e., release deliverables, artifacts, workflows, test cases, etc.) can be shaped according to feature mapping, the combination of a specific mix of features in any variant. In doing so variability becomes a characteristic that is empowered to differ, no matter if referring to variations in functionality, supported environments, quality attributes, business constraints, etc. The set of requirements for each variant are dynamically shaped according to the specified feature map. As features are added to, and/or subtracted from the feature map, the requirements for the variant, including any/all related components and/or artifacts, are automatically adjusted accordingly. The resulting development activities associated with introducing a new variant are radically streamlined. Specification of mutually exclusive variations and/or options, features which must not or cannot be combined, are automatically curtailed early in the development lifecycle. The complexities associated with making changes to variants are effectively bridged such that impact of change is fully exposed and understood, and the outcomes of change become more successful.
Traceability Preserved Across All Variations
With Polarion VARIANTS the comprehensive bi-directional traceability inherent in Polarion products, available at a granular work-item level, is expanded to include all elements and artifacts pertaining to the introduction of substantial levels of variation, making it possible to assess the impact of change across a spectrum of variants, including the impacts to all development artifacts, workflows, and process attributes. Such robust traceability across all variants renders risk assessment an efficient and optimized activity. Backwards traceability across variants minimizes risk exposure. Historical forensic-level traceability provides accountability and defensibility, making it possible to trace the genesis of any/all variants, and introduces the notion of a ‘pedigree’ which makes clear the precise lineage of each variant. Verification for compliance purposes can be organized across the totality of common elements, shared elements, and resulting variants. Verification and validation (V&V) processes can be synchronized and automated within the lifecycle of development. Exploitation of previous and/or concurrent verification workflows and outcomes provides labor saving and cost-effective benefit to difficult compliance regimens necessitated by product/process variation.
QA for Variants
Feature-shaped requirements development, along with the comprehensive traceability enabled by Polarion VARIANTS, greatly optimize the complex quality assurance processes needed for testing widespread variation. Testing variants becomes a composite of reusable artifacts, combined and automated by testing workflows, according to the relevant feature mapping. Quality can be managed and maintained across all variants emanating from different teams spread across widespread locations. Combinatorial testing can be articulated in a context of feature combinations, traced to the feature-shaped requirements, and thus defect identification in variants is pushed to occur earlier in the development lifecycle. Integration with 3rd party testing tools, through Polarion’s Open API, remains fully exploitable and amplified when combined with Polarion VARIANTS. The outcomes of testing processes are accumulated and aggregated across all variants, providing an organization’s managers with complete and comprehensive views into the state of quality amongst all software and/or system variants.
Putting It All Together
The desires for variety and choice arise from basic human emotions. Once experienced in a particular domain, the expectations of variety, options, and customization are intensified. An ability to deliver variation is both a differentiator as well as a market imperative for success and survival. Increasing variation will be progressively made possible by software, and this will in turn have profound impact on all aspects of software development lifecycles. Already an imperative in many industries, software product variation is escalating both in terms of volume and criticality.
The range of variation implemented by software, even in safety critical applications, continues to become more expansive, but still must be implemented without sacrificing quality or safety integrity levels.
Reusability must move beyond tactical settings to more strategic reuse scenarios involving all development assets, in order for software to contribute more in providing mass variation as a key differentiator driving competitive advantage. Managing change, the most labor intensive aspect in a development lifecycle, becomes a particularly challenging and problematic dilemma when software variants enter the equation.
Additionally, time-to-market expectations are continuing to be shortened in order to better respond to the challenges of dynamic problem domains, and/or for purposes of competitive advantage.
Different approaches in managing software development are needed. By borrowing from lessons learned in manufacturing, software developers can do more than just cope. They can embrace and exploit software variation in the development lifecycle.
- Polarion VARIANTS makes incremental exploitation of product line concepts possible, and/or can significantly strengthen existing implementations of product line engineering practices.
- Polarion VARIANTS supplements application lifecycle management (ALM) to usher in new modes of achieving requirements-driven development processes which can encompass and deliver mass customization.
- Polarion VARIANTS broadens ALM capabilities in vital and essential ways to make the effective management of software variants a reality.
Get the full content of this series as a single, free (and free to share) PDF!
Polarion VARIANTS is a trademark of Polarion Software