Organizations that develop custom software feel the need to transform multiple versions of application software to a more standardized software (known as product software). Over time, custom software assume multiple versions with complex business logic due to addition of new features, enhancements, customer-specific customizations and evolving technology trends. As they increase in numbers and size, custom software tend to pose challenges in terms of scalability, maintainability, lack of synergy, lower reuse potential and sometimes, redundancy.
The value that is derived from transforming custom software to product software is not only more maintainability and manageability of the organization’s software portfolio but a bigger opportunity to monetize on the software capabilities by commoditizing it with a suitable commercial model.
An apt transformation approach is essential to enable standardization and commercialization of custom software. The process should start with assessing the market need and demands for the product and the value customers derive from it. The process should define the portfolio based on the assessment, define a roadmap and lifecycle for the product and then map the specific software to this. Finally, the business value should be arrived at by defining the commercial model of the product.
Approaches to productization
Depending on the type of application software in an organization’s portfolio, the following options for productization can be adopted:
Productize for reusability and maintainability
This approach is useful for those set of applications in an organization’s portfolio which have overlapping functionalities with reusable features. The reuse can be in terms of code, modules, components or functionalities. The productization process takes the application portfolio through two parallel streams with the following steps in each of them
Stream 1 – Custom Software
- Perform As-Is assessment of the applications run as independent customer projects in an organization
- Identify the need to bring them under one umbrella by mapping with a larger product need
- Identify the shared/reused features and components across the applications to shape up the product scope by mapping with larger product features
- Align with the product scope and roadmap defined in Stream 2
Stream 2 – Standardized Software
- Study the market segments, competition and technology push for specific product categories
- Generate a value stream mapping (VSM) of customer needs -> business objectives -> requirements ->value
- Based on the VSM, group the features and key components
- Define a product scope/roadmap, lifecycle and revenue model
The two streams would thus converge, enabling to build a standardized software.
Productize for API monetization and device independence
Having many monolithic applications in the portfolio pose the following challenges:
- With new features and enhancements, the business logic becomes complex and less maintainable
- When selling to multiple customers, each may have specific requirements
- Minor changes may cause major turmoil and hence, cost high
- High maintenance cost
Refactor monoliths as API providers
To address these challenges, refactor monolithic applications into API Providers. APIs allow exposing data and functionality in applications, thereby making new business models possible. The process would involve defining API business goals, consumers of the API and monetization model, analyzing existing applications, developing a user-friendly API design, designing the API lifecycle and versioning. Finally, the applications will be productized with detailed API specification and administration.
Refactor monoliths as API consumers
Monolithic applications can also be refactored to be made API-centric so that they are seamlessly deployed and usable across different types of devices. Moving applications from a monolithic desktop or browser based application to an API-centric web application allows functionality to be added which can be used from a wide range of devices. An incremental way to refactor a desktop application to an API-centric application, thereby making it more standardized, would involve splitting, integrating, enhancing and migrating them.
The productized potential
Productization offers many benefits to an organization which includes competitive advantage, profitability, faster time to market and standardized offerings. An inward view, in terms of an organization-wide understanding of the application and service offerings, an outward view, in terms of market pull and technology push are essential to accurately identify opportunities for productization. It is important to invoke the productization concept earlier in the cycle to avoid explosion of application and service portfolio.