The Android Operating System is rapidly gaining market share for applications on a variety of devices such as smartphones, tablets and TVs. The diversity of market segments, an explosion in the number of new devices, and demands of mixed demographics of users is forcing device manufacturers and application providers to introduce high quality, innovative products on short time scales. For developers working with Android, they need to reconcile the programming paradigms from a data- driven IT world with the resource constraints arising from the embedded and real-time computing domains. Security is another large concern that many mobile development teams are just starting to grapple with. At the same time, shrinking development budgets and a tough economic environment make an efficient use of development resources a critical necessity.
One path to success in this environment is an efficient management of customer requirements and project priorities arising from many different perspectives. The need to support multiple platforms, different customer segments, concurrent development of new capabilities while enhancing existing applications, make tracking requirements and projects extremely complex. Such requirements, which can easily run into thousands, need to be prioritized and analyzed in a very short span of time.
Product and Portfolio Management (PPM) provides a possible silver bullet to tame this requirement complexity. PPM allows developers to compare the requirements from different stakeholders and determine the priority of requirements across multiple customers based on needs and commonality across multiple platforms. In the end, PPM delivers a list of requirements ranked by their priorities and mapped to the actual products a development team needs to create or update.
Managing the product development and support costs can only be done by reusing code and features across different product lines. A good modeling tool will enable each reused feature or code module to be traceable to the customer requirements it supports. Modeling also enables development of security, resiliency and other non-functional characteristics of the code to multiple product lines which can be understood in a more complete design and fixed in all products. It also allows an efficient system design and reduces development costs.
However, in order to gain these benefits of code reuse, a cautious and diligent approach for planning different products is needed. An improper design reuse strategy, in which software modules are cloned into different product lines, can actually increase development costs. If an organization clones the same base and keeps them in multiple locations, the costs of bug-fixing and patches multiply in proportion to the number of copies. Product Line Engineering (PLE) is an approach to implement an intelligent design reuse strategy. PLE integrates tools, assets and processes across the product lifecycle from requirements to design, development and testing. It allows a code module to be reused across different product lines from a single location, and determine the best way to minimize the cost and complexity of product line development.
The challenges of developing Android-based applications for many devices may be daunting, but intelligent use of PPM, modeling, and PLE can effectively accelerate development of multiple products. The end result is smarter, more efficient Android product development.