Software product line engineering (PLE) empowers organizations to develop product lines in less time and at a lower cost in order to compete in today’s customer-driven market. That being said, although the benefits of PLE are clear, implementing the framework doesn’t come without its own set of challenges. Read on to learn our top tips for getting started with product line engineering.
In order to meet today’s customer-driven demand for personalization and configuration options, the majority of companies create a family of products known as a product line. In the context of software product lines, these are similar applications that vary in the features and functions they have. Sounds simple enough - but the pressure to diversify software products in the face of ever-growing software complexity actually presents a serious engineering challenge for companies.
That’s because traditional ways of developing software products usually involve creating individual products one at a time. These classic tools and techniques can’t keep up with the pace of market demands today and are pushing organizations to their limit. To give you an idea, most companies follow the Clone-and-Own (C&O) approach, in which different versions of a product are constructed from the existing one. Although this is a straightforward and intuitive practice (and has worked for many organizations for years), it inevitably hinders a company’s ability to:
- Scale their product portfolio (and therefore their business)
- Take advantage of fleeting market windows
- And provide the most competitive pricing possible
This is because the efficiency of C&O decreases directly in proportion to the growth of the product family in question. In response to the increasing complexity of software and software product lines and the inherent limitations of traditional methods, a new methodology known as product line engineering (PLE) is becoming the go-to approach for forward-thinking organizations.
What is Product Line Engineering?
Although the approach may seem fairly new, software product line engineering is based on methods borrowed from the manufacturing industry and can be traced back to the mid-1970s or even earlier. PLE refers to a collection of processes, tools, and best practices used to create a family of similar software-based systems and products from a shared set of assets and a common means of production.
By managing the product portfolio as a single entity with shared assets instead of a collection of individual products, PLE empowers organizations to significantly improve their time-to-market, product quality, development costs, and finally, to grow their product portfolio.
The way PLE goes about achieving this is by starting out with a shared base or architecture which lays out the main commonalities of the members of the product family as well as the different variations planned for the product line. This can be further broken down into a correction of shared assets and variation points. Then, using a “factory approach”, PLE enables organizations to apply sets of variations in different ways to create new product variants while optimizing reuse and minimizing rework.
The benefits of using Product Line Engineering
Product line engineering provides benefits both to the engineering process and to the business as a whole. Let’s look at how it impacts the engineering process first and examine how these advantages create competitive benefits for the overarching business strategy.
The following are some of the benefits that PLE brings to the software engineering process:
- Higher and more consistent overall product quality
- The ability to create and deploy new products faster
- Less effort and resources are needed to deploy and maintain products
- The capacity to create and manage more products at the same time
- More time to focus on high-value product innovation rather than low-value work
In essence, this is how those engineering improvements translate into impactful benefits for the overall business:
- More satisfied (and repeat) customers
- Increased speed to market and speed to revenue
- Higher profit margins
- Mass customization capacity
- Higher product quality and lower risk deployments
And overall, a more competitive and agile market presence for the organization in question is a must-have for modern businesses.
Tips for getting started with PLE
Though the benefits of a factory approach to creating product lines are clear and only grow as the size of the product family does, adopting the framework can be just as challenging as the implementation of any new methodology in large and complex businesses.
Here are our top tips for getting started with product line engineering:
Review your current maturity level
Start by assessing your organization’s current PLE maturity level, identifying and documenting your goals, and creating a list of action items that will bridge the gap between your current and future state of PLE maturity. There are different business maturity models which evaluate where your organization stands with PLE, so take the time to research the models available on the market and see which would be a good fit for your company.
Define new roles and responsibilities
When it comes to steps that organizations need to take to start their transition to PLE practices, defining new roles and responsibilities is a crucial one. Some organizations choose to establish dedicated feature and platform teams, which allows them to focus closely on their areas of expertise and react to change in a more agile way. Setting up new roles and teams also implies revising your organization’s current structure and cross-functional collaboration methods to make sure it all goes smoothly.
Adopt an integrated platform and consider MBE
PLE works through the adoption of an integrated platform or base which represents the shared assets and variation points that the products in the product line have in common. Using automation and specialized PLE tools, the PLE factory is able to apply these different subsets of variations to the individual products within the line. Since product lines can have thousands and thousands of complex and intricately connected variation points, some organizations manage the complexity by combining PLE and MBE (model-based engineering) practices.
Separate development into two large processes
PLE typically separates development into two large processes, namely domain engineering and application engineering. Domain engineering focuses on developing reusable platforms that have subprocesses that help define what is shared and what is different between products in the product line. Application engineering, on the other hand, creates concrete products from the platform while reusing assets as much as possible.
It is also worth noting that given the diverse range of PLE practices and the scale and scope of enterprise software systems, most organizations' maturity falls somewhere between traditional clone-and-own and pure PLE. Last but not least, remember that PLE does not need to be implemented in one fell swoop and lends itself very well to incremental adoption. You can start by transitioning a small subset of assets, products, subsystems, or people, whatever makes the most sense for your organization or will have the most impact on your business.
For more information on Product Line Engineering, check out our eBook here: