By Sivasakthivel Palani, Vice President – Product Engineering
In an era of increased digitalisation and intense competition, it is imperative for businesses to implement a customer-centric strategy. At the heart of this customer-centric approach lies personalization underpinned by next-generation technology to create an exceptional user experience.
This blog post focuses on how customer-centric software products require a renewed emphasis on every aspect of the customer journey – from the very conception of the software to its adoption and continued return on investment; and how smart contract principles can help with this. It also delves into the new approaches which enable software products to be more customer-centric.
Shortcomings of software products design
Software products are generally defined by particular entities (customers, loan products); the processes (actors and activities); and transactions which are captured of these entities. Organizations implement software products that are designed to reduce their pain points and improve their processes. However, if the users do not focus on the intrinsic design of the software to ensure customer-centricity, their pain points will be addressed only superficially.
To illustrate this point, let’s take an example of a customer and a product. When two entities are created, namely the customer and the product, these are represented in a relational table as customer and product tables with each row in the table representing a customer or a product. If a customer is associated with a product, then there will be another table (ProductCustomerMapping) which will hold one record for each customer and product association. The processes governing the customer onboarding journey are embedded into software codes which are probably in Java objects or node libraries or in stored procedures. These objects and associated business processes and entities are created with an assumption that the variations will be minimal for each customer and product combination. This design is primarily not suited for personalized offerings to customers. Personalization comes at a steep cost, so business organizations find it difficult to roll out personalized products.
The principles of smart contracts in product design
I would term a smart contract as basically a code which holds its own data and enables the everything as code principle.
Let’s see how this principle can be used for developing a customer-centric design. Here is a practical analogy with imaginary characters, Alice and Bob, as customers. Alice opts for a personal loan and a mortgage loan. Bob opts for a personal loan and an auto loan. Now this being a smart contract, we will call it AlicePersonalLoanContract that holds all details about Alice’s eligibility, interest rate, tenure, offer, acceptance of the offer, EMIs, repayment schedule and all relevant data about the personal loan product. Similarly, AliceMortgageLoanContract, BobPersonalLoanContract and BobAutoLoanContract will hold details of the respective products of Alice and Bob. So, instead of retrieving data from the database and populating the details, we will have an object that will hold all data pertaining to the entire life cycles of the different products opted by Alice and Bob. This means the smart contracts for Alice and Bob can be used to streamline different processes in their loan origination, management and collection cycles.
Now, with reference to the Alice and Bob analogy, we can have a customer-centric approach in the software product design. We can have products and values finetuned for a particular customer without any linkage to any other customer. Personalization of products for the customer can be simplified and used to maximum effect.
A number of customer-focused applications, such as mobile apps or even website portals, can directly interact with smart contracts.
Key features of a customer-centric design
- Customer journey for products as a code (smart contract)
- Each product and customer combination will be part of the smart contract
- Smart contracts store the data along with the code for execution of the process. In short, if there are one million customers, then there will be one million smart contracts
- Changes in product terms for customers can be incorporated in a new version of the smart contract and can be upgraded
- Software products can be designed with three different perspectives:
- Customer smart contract for each product for the entire lifecycle of a customer
- Operational activities can be triggered through events generated from the smart contract
- Service calls for calculations such as eligibility checking and third-party interfaces can be managed
- For operational processes:
- Data from customer smart contract and workflows can be stored in a separate repository
- This operational repository can be used for assisted journey, task allocation, dashboards and reports, among others
- Smart contract layers can be exposed as application programming interface (APIs).
Requisite tools and technologies
- Smart contracts: Daml smart contract with PostgreSQL/Amazon QLDB to a plain old Java object (POJO) (de)serialization and MongoDB
- Operational database: PostgreSQL/Oracle/NoSQL as per requirements
- Workflow and business rules: BPEL tools such as jBPM, Flowable, etc. with business rules engine (BRE) tools like Drools
- API Façade: API Gateway.
Key advantages of employing a customer-centric design
- Data and process are stored for each customer, which means the entire journey of the customer and personalization of products will be smooth, ensuring a win-win situation for the business as well as all customers
- Operational data and processes are separated from the customer’s data storage to enable a suitable software and data design features for business operations, covering analytics, reporting, dashboards and workflows
- Most importantly, when the business wants to define a product, the customer journey map will be defined as a code (smart contract) and operations are triggered automatically when an event occurs.
A customer-centric business process has to be given utmost importance in software product design. Smart contracts for each product and customer, enable organisations to focus on customer-centric processes for stellar customer experience. This can be applied on any software product, be it for the banking, insurance or any other segment to deliver the innovation and change customers need.