Software Product Line (SPL) is not a new concept and has existed for the past several years. It has been used across many industries varying from avionics to medical, automotive to consumer electronics and telecom to storage. Industry big names like Boeing, Philips, Toshiba, Nokia, Ericson AXE, and GM etc. have applied this concept successfully. However, it has still not become The Thing in the industry. Some of the challenges that inhibit this are:
- Managing variability across products
- Investment required in building the SPL based infrastructure
- People resistance and the skills required
The variation across the product is easier to manage if enough time is invested in identifying the products under the product line and core asset features are defined from the domain prospective. The process should be driven from the level of domain, product and system but not from the software level. From a broader perspective, the SPL could be approached as Platform Product Line where each components of the system that includes hardware are covered.
The fundamental cost line items are to a large extent the same as that of standard software development. However, the economics of SPL suggests that as the number of products increases the SPL based product development becomes more cost effective than the standard development approach. The initial investment is large in SPL but over the time it will have more benefits and the initial investment could be managed by using the Hybrid approach of SPL. The hybrid approach is to develop a product and SPL core assets in parallel where upper life cycle efforts are spent more to manage the SPL expectations.
Resistance to a change is a human tendency and in case of SPL although basic activities are the same as a standard software development process, a different mindset and thought process is required. The sponsorship from senior leadership might be helpful in managing the resistance to change but small steps towards the bigger objective for SPL would be more helpful. The small steps could be to start following the SDLC activities (in spirit) or if they are already followed then move toward Model Driven Development. In cases where the whole process is designed to be a skill enhancement for the individual, the change process is smoother.
In summary, there are advantages of the SPL approach like reduced time to market, long term cost, consistent better quality, and market adaptability. However, successful SPL requires time to deploy, a flexible process framework which evolves with experience and a thoughtful approach, which varies from industries, products, domains and organizations.