Abstract-While there are many success stories of adoption of software product line (SPL) practices in large companies, there is a need to investigate how well the product line strategy works for small organizations and what issues and challenges they could possibly face. This case study provides a comprehensive detailed analysis of a small company's tendency of adopting Software product line. It also reveals how new trends in software engineering, for example, agile methods interact with product line strategy. We used an ethnographic approach of collecting data by spending some time at a company in China and gathering information through interviews, documents, and studying organizational processes. The collected data was analysed using grounded theory. The findings were evaluated with regard to business, architecture, process and organizational concerns of a company, generally known as BAPO model. In the end, the challenges faced by the company were addressed and potential improvements were suggested to reap the benefits of software product line. The results show that the company is unknowingly using some SPL practices and has a potential to adopt SPL practices fully.Index Terms-Agile development processes, BAPO model, empirical study, grounded theory, software product lines.
I. INTRODUCTIONSoftware Product Line Engineering (SPLE) is an idea of building and managing a family of products with shared commonalities, targeting a certain market area and is developed from a common set of core resources. SPLE is therefore beneficial for a company developing a software suite with common or somewhat similar features between the products. To manage this product line, the commonalities are first identified and modularized. This commonality has certain variational points separating different products. There exist possibilities to derive new products from the platform by creating new variabilities. Thus, decreasing production cost, time to market, increased product quality, and exploring new market ventures could be achieved by reusing such variations and commonalities in a proper manner [1]. Usually, managing commonality and variability between different products are conducted using systematic variability management techniques [2]. Such techniques help achieve a number of benefits including defining the sources of variability and the different variants, tracing variability from the model to the code and vice versa, and communicating variability to the different stakeholders [3]. Manuscript received October 14, 2014; revised May 12, 2015. N. Nazar is with School of Software, Dalian University of Technology, China (e-mail: najamnazar@126.com).T. M. J. Rakotomahefa is with the School of Civil Engineering, Dalian University of Technology, China (e-mail: ymamesoj@outlook.com).The SPLE is proactive in nature and often structured to facilitate two separate roles: domain engineering and application engineering [4]. Domain engineering concerns the commonalities in order to build and manage reusable or core assets such as requirement...