A Framework for Software Product Line Practice, Version 5.0
Ironically, one of the most insidious dangers facing an organization is long-term success, for success breeds complacency. While routinely cranking out products and congratulating itself on its stellar productivity figures, an organization is vulnerable to being blindsided by a competitor who is sporting new features, new ideas, and new technologies. To head off such calamities, an organization must institutionalize vigilance, and one way to do that is by practicing technology forecasting. Technology forecasting helps provide strategic market planningthat is, identifying trends and predicting what the relevant markets will bear [Ryans 2000a]. It spots emerging standards, allowing an organization to position itself early to lead, or at least react, with agility. It reduces risk with respect to innovations, provides the basis for planning and directing investments in research and development areas, and helps set the direction of product migration.
Technology forecasting helps take the pulse of the core technologies on which the products rely, as well as the tools, techniques, methods, and processes used to develop the products and bring them to market. Development techniques and tools are particularly important when time to market matters.
Technology is forecast in two areas:
- technologies that support internal software development, which
includes tools, processes, and methods for producing the software that will end
up in products. These technologies may include
- development paradigms and notations, such as the Unified Modeling Language (UML)
- Web-based and wireless capabilities and languages such as the Extensible Markup Language (XML)
- code development suites and environments
- analysis tools
- planning, configuration management, and requirements management techniques and tools
- process improvement and process management approaches
- customer solutions, meaning technologies that will affect (or end up
as) features or capabilities embedded in products. These technologies may
- more efficient hardware platforms
- better software platforms (such as databases or network and communications middleware)
- improved user interfaces
- faster database-searching strategies
- new user-oriented paradigms (such as visual environments and Web-based interfaces)
- improved architectural solutions
- better problem-reporting systems
- emerging standards
- new features that enhance the capabilities of users
The rapid pace of technology change makes assessing new technology very challenging [Brown 1996a] and limits the technology time horizon to no more than three to five years. Consequently, plan to update your technology forecasts periodically. Christensen describes disruptive innovationstechnologies that are not anticipated and have pervasive impact on entire markets [Christensen 1997a]. While disruptive innovations will likely elude technology-forecasting activities, most other technology changes can be anticipated by proactive looks across the domain and the software technology horizon.
Aspects Peculiar to Product Lines
For non-product-line development, technology forecasting may be performed infrequently. More typically, technology "now-casting" is done, meaning that the best currently available technologies are identified and assessed for their immediate applicability to the situation at hand and likely near-term changes. In product lines, however, technologies are identified and assessed continuously. They are assessed both for their immediate benefit and their potential future applicability. A technology that shows promise today may find its way into the product line in three years, or it may flicker out before then. On the other hand, a technology deemed much too risky and on the edge today might be the foundation for the next revolution. In product line technology forecasting, time is an ally, and we can afford to be more patient than we could be in single-system development. And since we can amortize the cost over more products, we should also be able to be more thorough.
Technology forecasting for product lines covers both technologies that enable specific product features and technologies that support the engineering tasks in the development of those features. The former category will depend on the application domain and is too general for specific advice. The latter category includes
- software technology that supports variation modeling, automation, or producability
- process innovations that make the management, production, and deployment of new products or product releases more efficient and predictable
- configuration management strategies and techniques that help the product line organization provide better customer services through the ability to recreate and service the "instance" of the product installed and the upgrades that are appropriate for that installation
- trends within the relevant standards bodies and the migration of the technical basis of the standards that apply to the product line. Ideally, the product line organization exploits the technology forecast to achieve a technology leadership position.
The product line's technology forecasts are an important input into the development of the production strategy and the production method. These forecasts guide the development of forward looking strategies that define a migration path for integrating emerging new product construction technologies into the production method of the product line. The production strategy should be continually updated as technologies mature or fade and the long-term approaches to core asset and product development change. Revisions of the technology forecasts should signal the need to revisit the production strategy.
Application to Core Asset Development
Earlier in this practice area, we distinguished between technologies that benefit internal development and those that are customer focused. While both are relevant for core assets, the technologies that impact development require special emphasis as core assets. Tools and techniques, such as more efficient configuration management or improved tool integration, can be leveraged over a variety of products to improve efficiency and quality; these tools and techniques offer a strong strategic advantage. The architect and developers are primary stakeholders for these types of innovations.
Technology forecasts also directly aid the core asset designer in selecting variation points and variability mechanisms. The forecasts describe how radically technology is likely to change as well as which technologies will be most subject to change. The designer can determine how much flexibility is required at each variation point and select the variability mechanism accordingly. For example, minor changes that occur infrequently can be handled by a static mechanism such as class inheritance. Changes that occur more frequently may require a dynamic mechanism that can be automated or applied by the product user.
Application to Product Development
Technology forecasting increases the likelihood that products will be useful to customers by predicting those features that will become more (or less) desirable. The forecasts also help identify those features most likely to be affected by changes to their underlying implementation technologies. Both types of forecasts help identify variants that can be anticipated at variation points and ultimately when adjusting the product line scope.
Technology forecasting as continuous improvement: A continuous process improvement paradigm underlies many of the practices of technology forecasting. This paradigm suggests the need to constantly monitor the current technologies, tools, and processes that make up business practices in order to uncover opportunities for improved practices. The challenge is to focus the technology forecast on the areas offering the highest potential return to both the product line organization and the customer. Opportunities for improvement may result from the continuous analysis of defects and trouble reports yielding insights into the areas where the product line could leverage technology improvements. Additional opportunities for improvement may surface as a result of an analysis of changes in the marketplace that have implications on new technology.
Technical steering group: A technical steering group is a proven mechanism for keeping current with technology trends. This type of group comprises senior technical managers who analyze new trends, customer needs, and technologies. One organization we know also appointed a group of senior engineers as "technology stewards" and tasked them with accumulating and maintaining sufficient expertise in various technical areas so that they could become reliable forecasters.
Technology sources: Once the product line organization has a rationale and focus for conducting the technology forecast, the next task is to identify the sources of technology that are relevant to their needs. Sources include
- centers of technology investigation, such as the Software Engineering Institute (SEI), university laboratories, and corporate research and development establishments that publish their results
- research and development conferences, such as the Software Product Line Conference (SPLC), the International Conference on Software Engineering (ICSE), the conference on Object-Oriented Systems, Programming Languages, and Applications (OOSPLA), and others
- networks of professional associations and associates
- journals and periodicals
Validating the forecast: Once focused on the forecast objectives, specific steps include the following:
- Perform sufficient research to isolate the subset of promising technologies.
- Validate the technologies through simulations or models to focus on the most promising technology.
- Analyze and quantify the benefits for both developers and customers. Determine any adverse impacts.
- Conduct pilot tests as a proof of concept.
- Integrate the technology with other assets and then conduct testing.
- Provide adoption training and rollout.
Inadequately forecasting technology results, predictably, in new and promising technologies passing you by. That, in turn, results in a product line that is obsolete before its time and opens the door for a more attentive competitor to steal your market. An inadequate technology forecast can result from
- forecasting that is driven by technology rather than by business needs: Analysts may become enamored by the technology and the search for it and lose sight of the corresponding business requirements.
- ivory-tower forecasting: Technology forecasting can become a "sandbox" or an "ivory tower" that is so removed from the day-to-day operations that crucial issues, objectives, and priorities get lost.
- a lack of purpose: If the problem that the product line organization is trying to solve is unknown, the search for new or emerging technology to maintain product line leadership has the potential to be limitless.
An inadequate forecast can result in
- the wrong technology choice: The wrong product gets built, and the market turns elsewhere for solutions. That can be caused by making investments in the wrong technology or an obsolete one or by simply choosing "what's good" over "what's popular."
- an architecture that can't support new technology: Radical changes in technology that the architecture can't accommodate will result in the obsolescence of the product line. The product line organization has a lot riding on its architectural decisions and needs as much advance warning as possible about any radical technological changes that could undermine them.
Brown and Wallnau describe how to position candidate technology in the context of your organization's needs and capabilities.
Christensen examines changes wrought by new technologies, most specifically those that are disruptive innovations, which dramatically change entire markets.
Ryans and colleagues describe a strategic marketing planning approach for technology organizations. The emphasis on adapting to new market conditions and changes in the competitive climate are relevant to this practice area. Examples from Intel, Compaq, Hewlett-Packard, Glaxo-Welcome, and General Electric provide insights from industry leaders.