Design Journey
DBS VOCUS, the Voice of Customer Team at DBS, is dedicated to tracking and analyzing customer feedback to refine their product offerings. However, the current manual method of processing this feedback is cumbersome, error-prone, and inefficient due to the volume of data from diverse sources such as 5-star ratings, branch feedback, and online reviews. These inefficiencies hinder the team's ability to derive actionable insights quickly, impacting the enhancement of customer experience (CX).
The customer experience team at DBS consists of 6 members, each responsible for a set of the bank's 23 products and services. Feedback is sourced from six different channels, including surveys, bank branches, and social media. Team members manually review each piece of feedback, categorize it under relevant product subcategories (Eg. Card replacement), and assess sentiment (positive, neutral, negative). This process is labor-intensive and makes it challenging to derive insights and create visualizations for stakeholders.
Time-Intensive Process: Extensive time required to manually analyze data prevents timely decision-making.
Error-Prone: Manual handling increases the likelihood of errors, leading to potentially faulty conclusions.
Data Overload: The vast amount of data from diverse sources makes it difficult to manage and interpret effectively.
Lack of Standardization: Absence of standardized procedures for Product categorization and sentiment analysis complicates the process.
Limited Sentiment Insights: Current methods do not adequately capture the nuances of customer sentiment, reducing the quality of insights.
Using the principles of the Double Diamond design process, we first diverged by independently developing our own design ideas. Each team member explored different concepts and approaches, allowing for a wide range of creative solutions.
After this phase of exploration, we then converged by bringing our ideas together, discussing and refining them collaboratively. This approach ensured that we considered diverse perspectives before merging into a final, well-rounded design solution.
However, we later realized that this problem statement did not address three key aspects or align with DBS’s needs.
We needed to remove the term 'desensitise' from the problem statement
Shift the focus toward automation and accelerating the process
Emphasize that the solution should not require specialists; the key difference lies in automating the process.
Some of us even sketched it out on Paper, drawing from the knowledge in our previous Studio!
Testing
We use React-Jest for comprehensive frontend application testing. Jest, a popular JavaScript testing framework by Facebook, provides test runners, assertion libraries, and code coverage reporting to ensure code correctness.
RSpec is employed for unit and integration testing in our Ruby-based environment
Cucumber enhances our testing strategy with Behaviour Driven Testing (BDD) using the Gherkin syntax, which translates complex actions into clear, understandable language for the team.
Jest-Cucumber integrates Gherkin scenarios with Jest’s capabilities, converting high-level descriptions into executable tests.
The following is our final Cucumber report.
Coding Practices and Frameworks Used
Behavior-Driven Development (BDD): We use BDD to ensure our features meet user expectations by defining clear, testable requirements.
Test-Driven Development (TDD): Our development process is driven by writing tests before implementing features, ensuring robust and reliable code.
Don’t Repeat Yourself (DRY): We adhere to the DRY principle to avoid code duplication and enhance maintainability.
Agile Methodology: Our project follows Agile practices, allowing for iterative development and continuous improvement.
Continuous Integration and Continuous Deployment (CI/CD): We use GitHub’s auto-deploy feature to streamline deployment and integrate changes seamlessly.
Fork and Pull Request Workflow: Each contribution is managed through a fork and pull request process to ensure code quality and facilitate individual contributions.
Challenges & How we solved it
Rails and Ruby Implementation:
Limited resources for Rails and Ruby integration posed difficulties. We addressed this by leveraging numerous community forums and documentation to navigate implementation hurdles.
UI Implementation:
Designing a coherent and user-friendly UI required extensive analysis and numerous iterations to accurately categorize and display data intuitively. This iterative approach ensured that the final UI met user needs and provided a comprehensive view of the data.
Permission Errors:
Integrating two domains (React and Rails) led to permission issues in Google Cloud Services, blocking internal calls. Debugging this problem was challenging, but we used detailed error logs and cross-domain solutions to resolve the issues.
Data Structure and Categorization:
The incoming data was poorly categorized and varied across sources, complicating the pipeline for data transformation. We adapted by creating custom data processing pipelines to standardize and categorize the data effectively.
Machine Learning Limitations:
Due to a lack of dataset diversity and classification, implementing ML models was challenging. We used Large Language Models (LLMs) instead, although they produced hallucinations despite fine-tuning. We invested time in refining LLM outputs and developed robust algorithms and pipelines to manage unexpected results.
Adapting to RSpec and Cucumber for testing required time and adjustment:
To address this, we implemented a structured approach by testing incrementally, starting with basic scenarios and gradually introducing more complexity. We also did regular reviews to ensure our test cases remained aligned with evolving features.