Programming Done Right for Hexa With the Product Approach
By Ashish Agarwal.19 Jun 2019 .
7 min read
Programming for large scale products
At Kaleyra, we programmed SMS a decade ago, later we penetrated into Voice programming. We moved one step ahead and programmed RCS, a model that is still booming in the market. We pioneered in spreading our wings to WhatsApp for Business API to send messages through WhatsApp. Technically and operationally, these are all large scale products with multiple functional complexities. What is even challenging is programming for Hexa, which is the combined console of all these products put together. Now that we are proud of launching Hexa as our flagship product, we also feel that we should bring it all out to the light, right from the planning level to the launch.
Structuring the code
Inspired by Dariusz Galasiński, we felt that this is the right time to code for an omnichannel application. At an industry level, this is very important to us because an application of this scale is very rare in the market. We had to sharpen our skills and keep innovating with products that the customer wants and we soon realized that ‘omnichannel’ is the right target to hit. Having used a technology-based approach for our products over a decade, we could build highly scalable, fast and reliable products that have strong backend infrastructure. Having exposure to this strong technology that allows scaling at faster rates, it was time we leverage this, to build product stacked with advanced features and convenience.
Centralizing the code
Over the decade of building and scaling applications, we realized that there’s no right approach to program an application. It’s important to use the right blend of programming methodologies to build the right product with the desired outputs. We decided to adopt both ‘top-down’ and ‘bottom-up’ programming methodologies to bring in the consistency as well as speed. While the ‘top-down’ approach gave us the confidence to build the application faster, the ‘bottom-up’ approach helped us to concentrate on the minute details that go into the application. What was more important for us was to bring in the most efficient features of each of our applications to Hexa and get rid of the least used and redundant features from the independent applications. Through this, we have identified the nested features that are not being used and not serving the purpose and deleted them from the applications.
Standing out from the market
When we started ideating for Hexa, a lot of ideas popped in. This is not a unilateral product with a single channel. Neither is this a product that only enterprises can use. We wanted Hexa to equally serve startups and developers as much as it serves an enterprise. Hence, it was important for us to build the arsenal of features that qualifies for an enterprise-grade application, in a single platform. Adding programmable elements for a developer, to run and test the code was a challenge too. But we took up the challenges to make Hexa truly a platform that a contact center of ten agents as well as a large enterprise of 1,00,000+ agents can use easily.
To create a complete omnichannel experience we decided on the UI first, then simplified the larger elements into smaller structures, a process called ‘Sharding’ and built Hexa to be flexible enough to handle fluctuating loads. What also makes Hexa different from other contact centers is the capability to add channels in minutes. In fact, you can set up Hexa in minutes. To enable faster sign-ups, we streamlined the whole process of customer journeys and created a simple sign up page, being 100% compliant with the regulatory bodies all over the world.
Tools that help communicate well
Working on a product includes the collaboration of various teams working towards a common goal. When working on a product, we decided to use more agile and rapid development tools that can help the team work together and know where they stand currently and where do they want to reach. First and foremost we use RealtimeBoard now known as Miro, the real-time collaborator to list down wireframes, jot down ideas, has helped teams design, plan and also allowed them to stay on the same page when it came to what is expected from the product output. Along with this Confluence, the documentation platformhas helped us in creating documentation well where every team has great detail of insights about a feature from the Marketing and the Research team. This eventually gives extreme clarity in terms of what needs to be built. Along with that Postman and Apiary helped in providing the right set of information to the UI and development team.
Also, using a light framework was important and we managed to find Lumen a light-weight framework that allowed us to use a micro-services based approach in building our product. Micro-services methodologies have supported us in building the product concurrently and rapidly in smaller teams. Docker known for its container platform was a choice we made too. Docker with Orchestration swarm provided a great deal of support to our micro-services approach and at the same time running and deploying the application became easy and fast. All these are hosted on AWS where we have an expertise of over 6 years along with many managed services such as elastic cache, elastic search, elastic load balancers, RDS, etc.
There are yet more important tools and products that came to our rescue to provide quick and easy management from our past experiences such as Grafana, Ansible, Graylog, NewRelic, etc. And finally, JIRA along with Slack a great product testing and tracking system. Along with the good derived from using the products, we had meticulous clarity on planning and created a zero-lag and error-free model while implementation.
It does take a lot while building and programming a product, but critical thinking, realistic UI, strong coding and customer centricity took us a long way. It’s high time, we build products that are not just good, but products that customers actually need, products that can help reduce multiple pain points of the user, like Hexa.
Practo unites patients and healthcare providers through Kaleyra
Practo is a SaaS based company that connects consumers to healthcare providers through an independent medical website. Their aggregator based system allows patients to search for healthcare providers according …