Software Customization & API Integration
Customization, by definition, is the process of making changes to the core of the software system to align with the needs of a business process. A valid business requirement leads to customization of a software, but maintenance is critical for a software's lifecycle. So, the key metric of a software customization success, is judged by the software's ability to incorporate updates and new software versions, while maintaining the required customizations throughout its lifecycle.
There are 3 levels software customization
The options inbuilt in a software system and provides a more effective approach in changing the system. For example, updating the corporate logo, color theme to match the corporate identity, defining users of the system with access rights, defining paths and folders, updating reports to reflect information necessary to support an organizations processes, workflow, notifications, etc. The key metrics for a properly executed configuration are the number of properties, options and configuration settings changed from the baseline software installation, the effort to implement and the maintainability of software.
If the business process cannot be implemented through Configuration of the software or the software vendor provided widgets, custom coding can be done to the software platform to accomplish the business needs. Customization at this level brings with it the complexities of software development, integration and testing during each revision/upgrade cycle. Hence customization requests should be clearly documented with change control management, concisely stating the reason for the customization and a cost-benefit analysis of the customization to ensure that modifications are only made to accomplish the business needs.
Extensibility refers to using the software's open points to extend or enhance the software's ability to meet the business needs. This is done to further enhance how the organization's business requirement is met combining the power of two or more disparate systems. For example, connecting an API from a POS or ERP software with e-commerce platform to get orders, updated products, update inventory and pricing OR connecting a Forex API to get the currency conversion values and integrating with an Invoicing / Accounting software.