With the advent of service-based application, platform, and infrastructure as service architecture, firms are realizing the value of developing custom-developed products that surpass generic capabilities provided by commercially available solutions. This approach not only enables development of capabilities that provide a competitive edge to the firm but also enhances the experience of end users, resulting in customer and employee retention.
Given the importance of a such a product in a firm undergoing M&A activity, a comprehensive diligence should be performed to not only understand the current capabilities and limitations but also the level of future-proofing technology leveraged in the overall architecture.
Product Capabilities and Roadmap Assessment
The key differentiator of a custom-developed product from commercially available solutions is the bespoke capabilities for the end user to leverage for both strategic and operational purposes.
While these capabilities can enhance the business value of the product, an understanding must be developed if these capabilities are sufficient to a growing business, or the product will need to be supplemented by additional technologies. For example, a custom-built customer relationship management software could have an extremely robust customer data and lead capture but may lack analytics on key metrics such as deal conversion rate or average duration to close a deal.
Illustration 1: Typical capability assessment identifying the strengths and weaknesses of a product
A well-maintained product is typically associated with a clearly defined roadmap that accounts for remediating any current limitations (technical debts, etc.) but that also identifies initiatives to future-proof the product. The roadmap should be created in alignment with the existing product capabilities and should have relevant cost, time, and effort estimates associated with each initiative.
Illustration 2: Typical product roadmap components to consider during the assessment
Architecture Assessment
Software architecture diligence is a critical component in developing a robust software product capable of sustaining current levels of capabilities with adequate performance and the product’s ability to enhance in the future based on evolving end-user expectations.
Illustration 3: Example of stack associated with analytics and reporting tool
Assessment of architecture is generally conducted for three categories: technology leveraged to develop the architecture, inherent capabilities of the architecture, and technical debt associated with the overall product.
The type of technology utilized to develop the components associated with the overall stack gives an understanding of how robust the product is. Use of stable coding languages such as Java or Python generally results in a steady pool of developers to support both planned and unplanned resource fluctuations. In addition to this, leveraging robust coding standards results in less lines of code, increased reusability, and reduced maintenance.
The overall architecture should also be assessed for both operational and structural characteristics. Operational characteristics include capabilities such as performance, scalability, reliability, and more.
Illustration 4: Operational architecture capability assessment
Structural characteristics are associated with the aspects such as the code structure, modularity, and readability of the underlying code base.
It is also important to note that architectural characteristics should be aligned with the overall business strategy for the product. For example, an e-commerce business may prioritize availability, scalability, and performance over configurability and portability.
Illustration 5: Structural Architecture capability assessment
One of the key aspects of product diligence is to identify the level of technical debt that exists within the environment. Technical debt can be in the form of older versions of code, a lack of coding standards and documentation, or limited modularity. Higher levels of technical debt can result in significant investment requirements.
Technology Organization and Operations Assessments
Success of a product has a major dependency on the quality of talent and efficiency of the operations supporting the overall research, development, and maintenance associated with the lifecycle. A highly effective organization is comprised of both strategic resources who have an understanding of overall business strategy and technical resources with a deep understanding of technologies leveraged.
Illustration 6: An example of a typical product development organization
Competency of leadership is extremely important for overall success. It is also important to understand what type of reporting structure exists within the organization. Some organizations prefer clear reporting lines, while others are more matrixed. Diligence of the organization generally helps identify the critical resources that need to be retained to avoid any continuity issues.
Lastly, the level of maturity associated with the software development lifecycle (SDLC) should be evaluated to understand its strengths and weaknesses. Understanding of the type of development methodology (e.g., Waterfall, Agile or Hybrid), high levels of documentation and standardization, and a mature software quality assurance process are some of the desirable features associated with a mature SDLC process.
Performing Proper IT Due Diligence
A custom-developed product can have an important role in a company that is undergoing M&A activity. As such, due diligence should be performed in order to ensure a complete understanding of the product’s capabilities and lifespan as well as any investments that will need to be made in the product going forward.