<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[BlackBuck]]></title><description><![CDATA[BlackBuck Engineering and Product Blog]]></description><link>https://eng.blackbuck.com/</link><image><url>https://eng.blackbuck.com/favicon.png</url><title>BlackBuck</title><link>https://eng.blackbuck.com/</link></image><generator>Ghost 3.35</generator><lastBuildDate>Sun, 26 Apr 2026 12:14:01 GMT</lastBuildDate><atom:link href="https://eng.blackbuck.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Behind the Sensor: A Sneak Peek into Building BlackBuck’s Fuel Telematics Category from the Ground Up]]></title><description><![CDATA[Overview of the challenges we faced and the solutions we implemented as we launched the new category of fuel telematics.]]></description><link>https://eng.blackbuck.com/fuel-telematics/</link><guid isPermaLink="false">6878ba70fe02dd7bb54e93d8</guid><category><![CDATA[fuel sensor]]></category><category><![CDATA[telematics]]></category><dc:creator><![CDATA[Sucheth P]]></dc:creator><pubDate>Mon, 11 Aug 2025 09:39:10 GMT</pubDate><media:content url="https://eng.blackbuck.com/content/images/2025/07/usgs-qTV6c2pjbBo-unsplash.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://eng.blackbuck.com/content/images/2025/07/usgs-qTV6c2pjbBo-unsplash.jpg" alt="Behind the Sensor: A Sneak Peek into Building BlackBuck’s Fuel Telematics Category from the Ground Up"><p>BlackBuck launched its fuel sensor in 2024 - a key step toward transforming how trucking businesses monitor, manage, and optimize fuel usage. As the product completes one year on the road, it has grown from a simple concept into a fully integrated telematics solution powering fleets across Bharat.</p><p>In this behind-the-scenes blog, we walk through the journey of launching this new category - from early whiteboard sketches to real-world deployment. We dive into the product and engineering decisions, hardware challenges, firmware architecture, data modeling, field testing, and continuous improvements that helped shape the solution into the best Fuel Telematics Product for Bharat’s Fleet Operators.</p><h2 id="from-blind-spots-to-insights-why-fuel-telematics-matters">From Blind Spots to Insights: Why Fuel Telematics Matters</h2><p>Fuel accounts for nearly 40–50% of a trucker’s operating cost in Bharat, yet most fleets still rely on manual logs and assumptions to track consumption. At BlackBuck, we saw this as a critical gap - one that affects cost efficiency, trust, and operational control. Fuel management isn’t just about tracking how much goes into the tank; it’s about knowing where, when, and how it’s being used. Fuel telematics bridges this gap by converting raw fuel data into real-time, actionable insights - helping fleet operators cut costs, optimize refueling, and plan better routes.</p><p>One of the biggest challenges in this space is fuel theft. Despite existing checks, 4 out of 10 truck owners on the BlackBuck platform reported fuel pilferage at least once a year. This issue can’t be solved without deep visibility into fuel behavior - both at the vehicle and driver level. With our fuel sensor, operators can detect unusual drops, validate refueling events, and tie fuel usage back to driving patterns and route conditions. Combined with GPS and trip data, it unlocks powerful use cases: identifying inefficient driving behavior, reducing idling, improving route planning, and ultimately, building accountability across the fleet.</p><p>This is also part of our larger vision at BlackBuck - to build the operating system for Bharat’s Fleet Operators, where every moving part is tracked, optimized and made more efficient.</p><h2 id="choosing-the-sensor">Choosing the Sensor</h2><p>At BlackBuck, we chose capacitive sensors for our fuel telematics solution because they offer a reliable, low-maintenance method for measuring fuel levels. These sensors have no moving parts, making them less prone to mechanical failure and ideal for long-term use in harsh conditions. They work by detecting changes in capacitance between two electrodes placed vertically inside the tank. As fuel levels change, so does the capacitance - which is then converted into a digital signal that accurately reflects the fuel level.</p><p>Compared to float-based or ultrasonic sensors, capacitive sensors are better suited for commercial vehicle conditions. Float-based sensors are mechanical and can degrade over time due to vibration, wear, or fuel contamination. Ultrasonic sensors, while contactless, are sensitive to tank shape, foam, and installation height, often resulting in inconsistent readings. Capacitive sensors, on the other hand, offer a good balance of accuracy, stability, and durability - with simpler calibration and better performance across different tank shapes and fuel types.</p><p>The capacitive fuel sensor connects to the truck’s GPS device using either a wired interface or Bluetooth Low Energy (BLE). The GPS device acts as the communication gateway, transmitting fuel level data along with location, ignition status, timestamp and other attributes to BlackBuck servers via cellular network (2G/4G). This tight integration eliminates the need for a separate data module and ensures that every fuel reading is contextualised within the trip - enabling accurate detection of refuelling events, pilferage, and inefficiencies in real time.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUckjZuddhswxArAMEVVCNnbpU5SGZdGoVDpQNGp4HsYLWd1IBjEshFc74mmzCL5tEXvyRMoCY5BtydTYtcHJLTVRnqasb0C2o5tN-VdUrbkCVpeFWxrDHsGlv_CkZUgJGHIOhfbxSZK9pyfMzNaIYXw9pQlmm19=s2048?key=ETjQ6m1rxaAOZbrf9GFxyA" class="kg-image" alt="Behind the Sensor: A Sneak Peek into Building BlackBuck’s Fuel Telematics Category from the Ground Up"><figcaption>A capacitive fuel sensor from our lab testing setup</figcaption></figure><h2 id="operational-challenges-bbpro-assisted-calibration-and-installation">Operational Challenges: BBPro-Assisted Calibration and Installation</h2><p>Deploying a fuel sensor across Bharat’s diverse trucking fleet isn't just about hardware - it's about enabling a consistent and reliable field experience, even in non-standard environments. To solve this, we developed BBPro, an internal technician-facing mobile app designed to assist with installation, calibration, validation, and quality control of the fuel sensor in real time.</p><p>In most cases, the sensor must be installed precisely at the vertical center of the tank, which requires technicians to drill a clean, accurately placed hole - often in dusty, oily, or poorly lit locations. The BBPro app guides technicians through each step of this process with checklist-based instructions, visual references, and automated validations. This reduces variability in install quality and minimizes the chance of errors.</p><p>Once installed, the sensor needs to be calibrated based on the truck’s actual tank profile. Since there’s no one-size-fits-all tank in Bharat, BBPro enables on-ground calibration by capturing readings at known fuel levels and generating a calibration curve automatically. </p><p>We also built in a maker-checker flow - where one technician performs the installation and calibration, and another remotely validates the signal strength, reading consistency, and mapping accuracy before the vehicle goes live. This double-layered approach ensures data integrity from day one, and gives confidence to both our internal ops teams and customers.</p><p>With BBPro, we were able to take what could’ve been a high-variability, error-prone field process - and turn it into a controlled, data-driven operation. It’s not just a support tool; it’s a critical part of making sure every sensor delivers value from the moment it’s deployed.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2025/08/Screenshot-2025-08-06-at-6.52.31-PM.jpg" class="kg-image" alt="Behind the Sensor: A Sneak Peek into Building BlackBuck’s Fuel Telematics Category from the Ground Up" srcset="https://eng.blackbuck.com/content/images/size/w600/2025/08/Screenshot-2025-08-06-at-6.52.31-PM.jpg 600w, https://eng.blackbuck.com/content/images/size/w1000/2025/08/Screenshot-2025-08-06-at-6.52.31-PM.jpg 1000w, https://eng.blackbuck.com/content/images/2025/08/Screenshot-2025-08-06-at-6.52.31-PM.jpg 1294w" sizes="(min-width: 720px) 720px"><figcaption>Few screenshots of installation flows on BBPro</figcaption></figure><h2 id="engineering-challenges">Engineering Challenges</h2><p>Creating a reliable fuel telematics system for Bharat’s commercial fleet wasn’t just about engineering a sensor—it was about building a system that could survive noise, harsh conditions, and unpredictable driving behaviour, while delivering precise, contextual insights at scale. Here’s a deep dive into how BlackBuck approached the core engineering challenges across every layer of this journey.</p><h3 id="establishing-signal-fundamentals-from-lab-to-first-readings">Establishing Signal Fundamentals: From Lab to First Readings</h3><p>We began in a controlled lab environment using clean diesel simulants and standard test tanks. The focus was validating whether capacitive sensors could reliably detect fuel level changes in a static setup.</p><ul><li>Signal Modelling: Fuel level changes altered capacitance between the probe’s electrodes. We converted these changes into a digital signal, mapping raw capacitance to measurable fuel levels.</li><li>Resolution &amp; Accuracy: Sensor resolution was tested across micro-level capacitance shifts. We validated up to 1 mm changes in fuel height, achieving ±1% accuracy under ideal conditions.</li><li>Signal Delay: The delay between a physical change in level and its digital representation was benchmarked under various sampling rates, allowing us to optimise firmware for faster real-time updates.</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2025/07/img5.jpg" class="kg-image" alt="Behind the Sensor: A Sneak Peek into Building BlackBuck’s Fuel Telematics Category from the Ground Up" srcset="https://eng.blackbuck.com/content/images/size/w600/2025/07/img5.jpg 600w, https://eng.blackbuck.com/content/images/2025/07/img5.jpg 720w" sizes="(min-width: 720px) 720px"><figcaption>Testing setup on moving vehicle</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2025/07/Screenshot-2025-04-29-at-1.07.53-PM.png" class="kg-image" alt="Behind the Sensor: A Sneak Peek into Building BlackBuck’s Fuel Telematics Category from the Ground Up" srcset="https://eng.blackbuck.com/content/images/size/w600/2025/07/Screenshot-2025-04-29-at-1.07.53-PM.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2025/07/Screenshot-2025-04-29-at-1.07.53-PM.png 1000w, https://eng.blackbuck.com/content/images/2025/07/Screenshot-2025-04-29-at-1.07.53-PM.png 1058w" sizes="(min-width: 720px) 720px"><figcaption>Testing setup in lab</figcaption></figure><h3 id="simulating-real-world-complexity-in-a-controlled-lab">Simulating Real-World Complexity in a Controlled Lab</h3><p>While static testing gave us confidence in signal purity, real-world behavior was far more chaotic. We recreated field-like scenarios in our lab to simulate what the sensor would face in actual trucks:</p><ul><li>Slosh Simulation: We mounted tanks on a gimbal platform to mimic vehicle acceleration, braking, and cornering. This allowed us to model sloshing-induced spikes and refine our filtering logic.</li><li>Vibration Emulation: High-frequency vibration plates were used to simulate engine idle and road-induced jitter, helping us profile mechanical noise.</li><li>Thermal Variation: We ran tests under day/night thermal gradients and near-engine heat exposure to understand temperature-linked drift.</li></ul><p>This phase allowed us to build a baseline noise profile library—mapping the shape, frequency, and amplitude of different noise types.</p><h3 id="noise-handling-signal-smoothing">Noise Handling &amp; Signal Smoothing</h3><p>One of the biggest engineering hurdles was differentiating signal from noise. The fuel tank is a dynamic environment, and every movement or temperature change can introduce noise in the data. We broke this problem into several components:</p><p><strong>Types of Noise Identified</strong></p><ul><li>Mechanical Noise: Vibrations from engine idling or poor roads caused high-frequency jitter in readings.</li><li>Sloshing Noise: Fluid inertia during sharp turns or braking created wave-like distortions, especially in half-filled tanks.</li><li>Thermal Noise: Heat from the engine or external weather conditions affected fuel density, leading to gradual drift.</li><li>Electrical Noise: Power supply fluctuations from alternators or GPS device voltage drops impacted ADC readings.</li></ul><p><strong>Our Approach to Smoothing</strong></p><p>We evaluated, tuned and adopted multiple real-rime and state aware filters and build our own noise classification and noise smoothening engine. By continuously classifying and handling noise on the edge and in the cloud, we ensured fuel readings remained stable, actionable, and trustworthy—even in Bharat's toughest road and weather conditions.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2025/08/Screenshot-2025-08-06-at-7.06.18-PM.png" class="kg-image" alt="Behind the Sensor: A Sneak Peek into Building BlackBuck’s Fuel Telematics Category from the Ground Up" srcset="https://eng.blackbuck.com/content/images/size/w600/2025/08/Screenshot-2025-08-06-at-7.06.18-PM.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2025/08/Screenshot-2025-08-06-at-7.06.18-PM.png 1000w, https://eng.blackbuck.com/content/images/2025/08/Screenshot-2025-08-06-at-7.06.18-PM.png 1104w" sizes="(min-width: 720px) 720px"><figcaption>Fuel sensor data with signal noise</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2025/08/Screenshot-2025-08-06-at-7.08.06-PM.png" class="kg-image" alt="Behind the Sensor: A Sneak Peek into Building BlackBuck’s Fuel Telematics Category from the Ground Up" srcset="https://eng.blackbuck.com/content/images/size/w600/2025/08/Screenshot-2025-08-06-at-7.08.06-PM.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2025/08/Screenshot-2025-08-06-at-7.08.06-PM.png 1000w, https://eng.blackbuck.com/content/images/2025/08/Screenshot-2025-08-06-at-7.08.06-PM.png 1484w" sizes="(min-width: 720px) 720px"><figcaption>Fuel sensor data with noise removed</figcaption></figure><p></p><h3 id="from-hypothesis-to-field-iterative-learning-with-actual-tanks">From Hypothesis to Field: Iterative Learning with Actual Tanks</h3><p>After simulating edge cases in the lab, we moved to on-vehicle trials. This is where hypotheses were validated or broken by real-world data.</p><ul><li>Tank Diversity: From cylindrical to rectangular, from flat to inclined mounts—each tank produced its own signature behaviour. We collected raw readings from hundreds of tank types to build data-backed calibration curves.</li><li>Real Fuel Behaviour: Factors like return flow turbulence, vapor bubbles, and compartmentalised chambers created deviations we had not seen in test tanks.</li></ul><p>With each deployment, we:</p><ul><li>Formed hypotheses on abnormal signals or event misclassification</li><li>Correlated fuel readings with GPS, ignition, and trip context</li><li>Refined detection logic and improved our filtering algorithms</li></ul><h3 id="event-detection-lag-from-raw-data-to-real-incidents">Event Detection &amp; Lag: From Raw Data to Real Incidents</h3><p>Detecting real-world events like fuel theft and refuelling from noisy sensor signals required a system that could contextualise fuel data with trip telemetry. Refuelling and Theft detection typically involves a sudden upward spike or dip in fuel level respectively. But not every spike is a refuel event and not every dip is a theft. We built a system that correlated this with ignition OFF to ON pattern, location context, speed and time window. To improve precision , we combined raw signal with filtered and smoothed signal to improve classification.</p><h2 id="product-challenges">Product Challenges</h2><p>Before there was the fuel sensor, there was the fuel tracker. It worked by simply calculating a truck’s fuel consumption against its known mileage. From generic tracking to granular monitoring, BlackBuck’s fleet owners now check fuel levels, get refuelling alerts and know their consumption patterns in real-time. Integration has allowed users to view fuel data alongside other operational metrics, such as toll payments and load management. This holistic approach has simplified fleet management and helped operators use better routes, make fewer stops, and build a steady defence against discrepancies &amp; deviants—all through a single digital dashboard.<br></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXd0s_3GU-eTkZuRD3xHnEJ229ewX5yxMIckx3QGoRFYIr6ot0BpmW5fuzE79SjlCSDv09bRVOrN8cgxcgNhX8wmefpDvC16JAR7B7oqmUQ_nhb9cpuwsuGEUMOmTejvZffCO1FPkQ?key=9VTYa-Ttwrr5d8WNtftwTg" class="kg-image" alt="Behind the Sensor: A Sneak Peek into Building BlackBuck’s Fuel Telematics Category from the Ground Up"><figcaption>Fuel Telematics Customer Experience on BlackBuck App</figcaption></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXfzYIgAY9_5u18DcUH2pYvPAhyZ3ycCI0kTuWWpmj6wk-FJYwyeMrwFw_vB5AF-oE43sopVoIrR6wDWlOBqR0DXBHBni-A_o_WSmc8qz-uE94OyPPZFuCcLkz-L6Y0iUi2rJ9QMRg?key=9VTYa-Ttwrr5d8WNtftwTg" class="kg-image" alt="Behind the Sensor: A Sneak Peek into Building BlackBuck’s Fuel Telematics Category from the Ground Up"><figcaption>Fuel Telematics Customer Experience on BlackBuck App</figcaption></figure><p></p><h2 id="market-impact-and-user-adoption">Market Impact and User Adoption</h2><p><br>BlackBuck’s fuel sensor, now a full-fledged electrochemical and GPS-integrated device, has seen widespread adoption across India’s trucking sector. As of June 2025, BlackBuck has over 400,000 active telematics devices in the field, with the fuel sensor playing a significant role in driving this growth. The device’s success is grounded in BlackBuck’s on-ground technician network, which drives the wheel of execution through installation, maintenance, and support activities across the country.</p><h2 id="the-next-milestone">The Next Milestone</h2><p><br>BlackBuck’s fuel sensor marks its first full year on the road—but this is just the beginning. Our goal remains clear: to build focused, reliable solutions tailored for the unique needs of Indian truckers. As we enter the next phase, we're evolving from simple real-time fuel monitoring to delivering deeper insights—combining fuel data with critical engine parameters, vehicle health metrics, and driver behavior patterns.</p><p>Leveraging AI and machine learning, we're working towards predictive fuel analytics - anticipating when and where your truck might run low based on driving habits, vehicle load, and terrain. This helps fleet operators plan smarter, more efficient routes.</p><p>And we're not stopping at trucks. Our vision is to extend this innovation to other commercial vehicles, including construction equipment like earthmovers, JCBs, and generator sets.</p><hr><p>Title image by Photo by <a href="https://unsplash.com/@usgs?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash">USGS</a> on <a href="https://unsplash.com/photos/multicolored-abstract-painting-qTV6c2pjbBo?utm_content=creditCopyText&amp;utm_medium=referral&amp;utm_source=unsplash">Unsplash</a><br></p><p><br></p>]]></content:encoded></item><item><title><![CDATA[Navigating Excellence: How BlackBuck's Process Optimisation Puts Uptime and Delivery in the Driver's Seat]]></title><description><![CDATA[Explore how our precision in processes, agility in development, and data-driven decisions drive seamless customer experiences]]></description><link>https://eng.blackbuck.com/navigating-excellence/</link><guid isPermaLink="false">65cb138bfe02dd7bb54e8a35</guid><category><![CDATA[blackbuck]]></category><dc:creator><![CDATA[Shambhavi Singh]]></dc:creator><pubDate>Mon, 18 Mar 2024 09:31:52 GMT</pubDate><media:content url="https://eng.blackbuck.com/content/images/2024/03/image--7-.png" medium="image"/><content:encoded><![CDATA[<img src="https://eng.blackbuck.com/content/images/2024/03/image--7-.png" alt="Navigating Excellence: How BlackBuck's Process Optimisation Puts Uptime and Delivery in the Driver's Seat"><p>At BlackBuck, we have a structure of dedicated teams for each business vertical. Our journey involves continuous improvement of our processes, adapting to evolving product requirements, and finding smarter ways to work, keeping in mind quick turnarounds, predictability, and quality over everything in mind.</p><p>Our approach to program management underwent a significant evolution.This article delves into the journey of transforming program management to suit the specific needs  for better uptime and predictability.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh7-us.googleusercontent.com/MlA0NFtYFb52MonDBKsUejyOIHW_ariAtSO-ZhBGD7hglCAxd7WHg5TBOzJO4fP7_edDz9401G5OyYBKEGa4Mw1OTeRpNvJcA49ZgMw99yD1Fa70RsqgloRZhWB_y09UcodDHA1kYiLUHR9ScaJRQHc" class="kg-image" alt="Navigating Excellence: How BlackBuck's Process Optimisation Puts Uptime and Delivery in the Driver's Seat"><figcaption><strong>Product Lifecycle</strong></figcaption></figure><p><br>To achieve<strong> 99.99%</strong> availability , we've done a comprehensive analysis of our delivery metrics, fine-tuned them to suit the diverse functions across teams. Additionally, we've delved deep into our software development life cycle , identifying areas for process improvement. By focusing on these key areas, we're committed to not only improving uptime but better our delivery predictability.</p><h2 id="planning-our-way-through"><em><strong>Planning our way through</strong></em><br></h2><h3 id="sprint-success-chronicles"><strong>Sprint Success Chronicles</strong></h3><p>Given our cross-team structure, we identified an opportunity to enhance our approach of measuring sprint delivery metrics.</p><p>While there are many standard tools for generating sprint reports we needed  a cumulative sprint metrics report tailored to our cross-team functions.Putting the quality of our product as our top priority we wanted to build a structure to measure following parameters :</p><p><strong>Utilisation: </strong>Total<strong><strong> </strong></strong>number of hours prioritised by  total number of hours available in a sprint.<br><strong>Adherence: </strong>Total number of released tasks by  total number of tasks planned to be released in a sprint.<br><strong>Delay Percentage:</strong> Total number of spillover hours by  total number of prioritised hours in a sprint.<br><strong>Quality of output: </strong>Total  number of pO production bugs raised  for a feature in a sprint by  total number of test cases for that feature.</p><p>We noticed that all parameters are interconnected, delays often indicate issues with adherence and utilisation.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/03/Screenshot-2024-03-14-at-12.54.51-PM--1-.png" class="kg-image" alt="Navigating Excellence: How BlackBuck's Process Optimisation Puts Uptime and Delivery in the Driver's Seat" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/03/Screenshot-2024-03-14-at-12.54.51-PM--1-.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/03/Screenshot-2024-03-14-at-12.54.51-PM--1-.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2024/03/Screenshot-2024-03-14-at-12.54.51-PM--1-.png 1600w, https://eng.blackbuck.com/content/images/2024/03/Screenshot-2024-03-14-at-12.54.51-PM--1-.png 2000w" sizes="(min-width: 720px) 720px"><figcaption><strong><em>Sprint Metrics Template</em></strong></figcaption></figure><p>Above tailored report really helped in measurement of all the parameters (Adherence, Utilisation, Delay, Quality of Output) and with opportunity to be more efficient.</p><p><strong>Streamlining Team Priorities</strong></p><p>While each team operates with its own charter, our services are interconnected, which requires  collaboration during the development phase. This interdependency sometime creates communication gap in calling out the dependencies and prioritising tasks across teams during planning phase. </p><p>To address this, we introduced cross-team sprint prioritisation sync ups at the start of the sprint to provide visibility of business priorities. Implementing a process for cross-team sprint prioritisation has significantly improved planning and collaboration. It has helped us to be more aligned on common goals, priorities and ensuring smoother execution.</p><p><strong><em>Striking the Balance:</em> Engineering and Business </strong></p><p>In a startup where fundamental philosophy is to develop fast, deliver fast, we shouldn’t take quality of the product for granted.We needed to strike a balance in our development cycle where quality is also being prioritised.<br><br>To achieve this while operating with a lean team we needed a planned strategic approach.We divided  our overall bandwidth in three categories:<br><br>    <strong>80%</strong> for product development<br>    <strong>15% </strong>for tech debts<br>    <strong>5% </strong>for production  support</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/03/Screenshot-2024-03-15-at-2.41.09-PM.png" class="kg-image" alt="Navigating Excellence: How BlackBuck's Process Optimisation Puts Uptime and Delivery in the Driver's Seat" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/03/Screenshot-2024-03-15-at-2.41.09-PM.png 600w, https://eng.blackbuck.com/content/images/2024/03/Screenshot-2024-03-15-at-2.41.09-PM.png 974w" sizes="(min-width: 720px) 720px"><figcaption><strong><em>Bandwidth Allocation</em></strong></figcaption></figure><p>Allocating  bandwidth in such a manner has ensured that we are prioritising quality while delivering on the product front on time.</p><p><strong><em>Timeline Tune-Up: </em>Change Management</strong><br><br>It is important to stay aligned with our product timelines and one of the major factors that affects those timelines are changing product requirements based on the continuous feedback that we have built with our customer over the years. By keeping a close eye on our sprint metrics we understood  how these changes impact our project schedules.</p><p>To handle such scenarios more efficiently we have to alter our sprint planning in a way which allows us to adjust our plans, re-prioritise tasks, and re-allocate resources accordingly. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/03/image-6.png" class="kg-image" alt="Navigating Excellence: How BlackBuck's Process Optimisation Puts Uptime and Delivery in the Driver's Seat" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/03/image-6.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/03/image-6.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2024/03/image-6.png 1600w, https://eng.blackbuck.com/content/images/2024/03/image-6.png 1618w" sizes="(min-width: 720px) 720px"><figcaption><strong><em>Change Management</em></strong></figcaption></figure><p>We have implemented above additional steps in our sprint to handle change requests in mid sprint without-impacting any major project timelines .<br><br><em><strong>Cumulative Calendars</strong></em><br><br>For better uptime and predictability we wanted to focus on timeline alignment and collaboration within our development team and product team while maintaining a smooth and uninterrupted user experience, but it can be challenging with frequent releases.<br><br>To provide new features to our customers seamlessly without bombarding them with new app updates, we've decided to schedule all of our updates from different teams. This way, we release all the new features together, according to a planned calendar, instead of having frequent, separate updates.</p><p><strong><strong><strong>App Release Calendar: </strong></strong></strong>Suppose we have three releasable features and all hold different priority and estimates.</p><ul><li><strong>X feature</strong> is release ready by the second day of the sprint.</li><li><strong>Y features</strong> will be release ready by the fifth day.</li><li>The top-priority<strong> Z feature</strong>, though delayed slightly, will be ready for release two days after the sprint ends.</li></ul><p>So above all three features will need 3 app updates pushed to customer in close vicinity of each other.We publish app release calendar upfront to ensure features are clubbed up and development and release planning can be done accordingly.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/03/Screenshot-2024-03-18-at-12.57.34-PM.png" class="kg-image" alt="Navigating Excellence: How BlackBuck's Process Optimisation Puts Uptime and Delivery in the Driver's Seat" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/03/Screenshot-2024-03-18-at-12.57.34-PM.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/03/Screenshot-2024-03-18-at-12.57.34-PM.png 1000w, https://eng.blackbuck.com/content/images/2024/03/Screenshot-2024-03-18-at-12.57.34-PM.png 1570w" sizes="(min-width: 720px) 720px"><figcaption><strong><em>App Release Calendar</em></strong></figcaption></figure><p>This ensures visibility and alignment between the Tech and Product  to enhance our planning phase and to safeguard our execution and delivery from lack of clarity on timelines.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/03/Screenshot-2024-03-15-at-2.13.54-PM.png" class="kg-image" alt="Navigating Excellence: How BlackBuck's Process Optimisation Puts Uptime and Delivery in the Driver's Seat" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/03/Screenshot-2024-03-15-at-2.13.54-PM.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/03/Screenshot-2024-03-15-at-2.13.54-PM.png 1000w, https://eng.blackbuck.com/content/images/2024/03/Screenshot-2024-03-15-at-2.13.54-PM.png 1266w" sizes="(min-width: 720px) 720px"><figcaption><strong><em>Monthly Sprint calendar</em></strong></figcaption></figure><p><strong><em>Sprint Prioritisation:</em></strong></p><p>We have created a single representation of our spring planning. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/03/Sprint-Prio-Blog.png" class="kg-image" alt="Navigating Excellence: How BlackBuck's Process Optimisation Puts Uptime and Delivery in the Driver's Seat" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/03/Sprint-Prio-Blog.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/03/Sprint-Prio-Blog.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2024/03/Sprint-Prio-Blog.png 1600w, https://eng.blackbuck.com/content/images/2024/03/Sprint-Prio-Blog.png 2000w" sizes="(min-width: 720px) 720px"><figcaption><strong><em>Sprint Prioritisation Template</em></strong></figcaption></figure><p>All your team's sprint plans are beautifully laid out in a single, dynamic sheet. No more scattered plans, but a unified hub ensuring everyone is on the same page literally, like a well-coordinated dance troupe.</p><p>This ensures team alignment, facilitates more effective handling of multi-sprint items, aids in release planning, and provides visibility into overall bandwidth availability. Additionally, it streamlines efforts allocation between teams, fostering better collaboration.</p><p>This approach facilitates a harmonious synergy between frontend, backend and app development, painting a clear picture of our tech and product landscapes. </p><h2 id="goal-gauge-guidelines"><strong><em>Goal Gauge Guidelines</em></strong></h2><p></p><p><strong>Monthly Review Success Metrics:</strong><br><br>Every month, we conduct a thorough review of our Sprint metrics, Key API metrics, and Uptime Trackers along with Quality metrics, with the leads of every business vertical. This ensures alignment with our goals and the fulfilment of business expectations.This process serves as a crucial checkpoint, enabling us to evaluate our progress. By analysing our metrics and outcomes, we can make necessary adjustments to optimise our output. </p><figure class="kg-card kg-image-card"><img src="https://lh7-us.googleusercontent.com/BpDykrWEbyewEms5Q8zyfKCyHJNOmn44HLOqPIU5l54BdYaBL3xtG8UolZT3x1g708_lJLPbIf642oiwQaKdOjwg6w2y8lw5Lf_ceMwge9p1tcj43x0Z2uU8AHeiarxiesgzW1bTU7JCpIm1HK0154o" class="kg-image" alt="Navigating Excellence: How BlackBuck's Process Optimisation Puts Uptime and Delivery in the Driver's Seat"></figure><p>This isn't just about keeping track of things—it's about taking accountability  and always looking for ways to do better. We had measures in place, but they were more focused on individual teams or services.We took a deep dive into our past sprint metrics and downtime incidents and identified areas where we could do better. </p><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2024/03/Screenshot-2024-03-16-at-5.39.09-PM.png" class="kg-image" alt="Navigating Excellence: How BlackBuck's Process Optimisation Puts Uptime and Delivery in the Driver's Seat" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/03/Screenshot-2024-03-16-at-5.39.09-PM.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/03/Screenshot-2024-03-16-at-5.39.09-PM.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2024/03/Screenshot-2024-03-16-at-5.39.09-PM.png 1600w, https://eng.blackbuck.com/content/images/2024/03/Screenshot-2024-03-16-at-5.39.09-PM.png 1608w" sizes="(min-width: 720px) 720px"></figure><p>By fine-tuning our planning and execution phase, we've achieved significant outcome:</p><ul><li>Reduced delay percentage by <strong>90%</strong>.</li><li>Adherence to uptime SLA  improved by<strong> 60%</strong>.</li><li>Achieved a <strong>20%</strong> improvement in the quality of outcomes.</li></ul><p>This transformation of program management at BlackBuck epitomises the organisations unwavering commitment to innovation, efficiency, and customer-centricity. We looked closely at how we work and found ways to make it smoother and more efficient. Through better planning, cross-team collaboration and keeping quality as top priority, we achieved remarkable results, from reduced delays and improved uptime to enhanced predictability and higher-quality outcomes. As we continue to navigate the ever-evolving landscape of program management, we remain steadfast in our pursuit of excellence, guided by the lessons learned and the successes achieved along the way.<br><br>As BlackBuck evolves, our technology advances, further integrating us into truckers' daily routines. We are committed to adapting to the ever-changing landscape, ready to innovate new processes and technologies as needed. Keep an eye out for an inside look at our journey toward becoming an essential component of the trucking industry.</p><p>PS: Along with improved people processes, technology processes under the hood also got matured, to get more details on this refer to our blog titled  <em><strong><a href="https://eng.blackbuck.com/ha/">Agile Development Meets High Availability at BlackBuck</a></strong></em>.<br></p>]]></content:encoded></item><item><title><![CDATA[Zero Stress, Full Control: Sanity Testing with Rush Environment]]></title><description><![CDATA[Deep dive into the platform we built to manage short lived Header-Based Traffic Routing environments for conducting UAT and Production Sanity during every release]]></description><link>https://eng.blackbuck.com/zero-stress-full-control-sanity-testing-with-rush_env/</link><guid isPermaLink="false">65c353bafe02dd7bb54e86a1</guid><category><![CDATA[Production Sanity]]></category><category><![CDATA[High Availability]]></category><category><![CDATA[tracing]]></category><dc:creator><![CDATA[darpan]]></dc:creator><pubDate>Thu, 29 Feb 2024 13:09:18 GMT</pubDate><media:content url="https://eng.blackbuck.com/content/images/2024/02/image--1--1.png" medium="image"/><content:encoded><![CDATA[<h2 id><br></h2><img src="https://eng.blackbuck.com/content/images/2024/02/image--1--1.png" alt="Zero Stress, Full Control: Sanity Testing with Rush Environment"><p>To reach our goal of 99.99% availability, we implemented various strategies, focusing on improving production stability as a key measure.This blog post will delve into the initiatives we undertook to improve the production sanity environment.<br>Major challenges commonly faced in creating an effective environment for production sanity include:<br><br>A. The rapid pace of development cycles among teams often leads to inconsistencies in the environment designated for production stability checks.</p><p>B. The absence of an environment that mirrors the production setup, both in structure and volume, mainly due to the high costs associated with maintaining replicas that are synchronised with the actual production environment.<br><br>In response to these issues, we initiated a series of brainstorming sessions to clearly define the problem and develop effective solutions.</p><h2 id="what-are-we-trying-to-solve">What are we trying to solve?<br></h2><h3 id="inter-service-dependencies"><em>Inter Service Dependencies</em></h3><p><br>With hundreds of services undergoing continuous development, it becomes challenging to conduct production sanity checks in isolation.<br></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/02/image--3--2.png" class="kg-image" alt="Zero Stress, Full Control: Sanity Testing with Rush Environment" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/02/image--3--2.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/02/image--3--2.png 1000w, https://eng.blackbuck.com/content/images/2024/02/image--3--2.png 1484w" sizes="(min-width: 720px) 720px"><figcaption><strong><em>Dependency Diagram of one of our service</em></strong></figcaption></figure><h3 id="data-sanity"><br><em>Data sanity</em><br></h3><p>Maintaining In-Sync Replicas to ensure data is synchronised with the production environment for staging can incur significant costs.</p><h3 id="environment-sanity"><em>Environment sanity</em><br></h3><p>When each service team tests their features concurrently on the staging environment, it can present significant challenges in preserving the integrity of the codebase.</p><h3 id="limited-time-for-production-sanity"><em>Limited time for production sanity</em><br></h3><p>When the staging environment fails to accurately replicate the production environment, production sanity checks must be conducted directly in the production setting. This constraint imposes strict time limitations for testing and necessitates conducting User Acceptance Testing (UAT) during off-peak hours.</p><h2 id="enter-rush_env-">Enter Rush_Env !</h2><p><br>Considering above challenges we need  to come up with  an environment which mirrors production in data and code, easy to maintain in line with production, and short-lived.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/02/image--2--1.png" class="kg-image" alt="Zero Stress, Full Control: Sanity Testing with Rush Environment" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/02/image--2--1.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/02/image--2--1.png 1000w, https://eng.blackbuck.com/content/images/2024/02/image--2--1.png 1364w" sizes="(min-width: 720px) 720px"><figcaption><strong>Request Routing in Production with Rush_Env</strong></figcaption></figure><p><br><br><br>The architecture of our system was based on  following goals :</p><ol><li><strong>User-Specific Routing:</strong> Routing traffic for a set of users on specific services .</li><li><strong>Service Instance Multiplicity: </strong>Different instances of service can be spawned simultaneously to test different features in isolation.</li><li><strong>Flexible Request Routing:</strong> Route user requests to  instances of services in different environment based on headers present in incoming request.</li><li><strong>Production Data Testing:</strong> Using the same data stores as production.</li><li><strong>Regression Testing Environment:</strong> Creating environment which gives a platform to perform regression as well as UAT for any amount of time.</li><li><strong>Independent Monitoring and Alerting:</strong> Separate monitoring and alerting framework to facilitate distributed tracing and monitoring.</li></ol><p>By focusing on these design goals, we aim to create a more resilient, flexible, and user-centric system.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/02/image--4--1.png" class="kg-image" alt="Zero Stress, Full Control: Sanity Testing with Rush Environment" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/02/image--4--1.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/02/image--4--1.png 1000w, https://eng.blackbuck.com/content/images/2024/02/image--4--1.png 1374w" sizes="(min-width: 720px) 720px"><figcaption><strong>Request Routing</strong></figcaption></figure><p></p><p>Implementing user-specific routing to direct certain users to our Rush Environment (Rush_Env)  in AWS EC2 involves following components:</p><ul><li><strong>Config Mapper Service</strong>: This service enables the QA team to whitelist specific users for production sanity checks. Essentially, it identifies users whose traffic should be directed to our Rush_Env rather than the production environment.</li><li><strong>Alpha Android Apps</strong>: Alpha versions of our Android applications. Having the ability to insert a static header into all outgoing requests. </li><li><strong>AWS Target Group and ALB Routing</strong>: Aws target groups and Alb routing rules to route requests to different instances of services.</li><li><strong>Spring Filters in API Gateway</strong>: Within our in-house API Gateway, we integrated Spring filters that can interpret the static header from the Alpha app and adds Request tenancy headers in all outgoing requests. </li><li><strong>Custom Library Integration</strong>: A custom library to be integrated as Gradle transient dependency. which is responsible for recognising and propagating the relevant headers downstream.</li><li><strong>Distributed Tracing</strong>: To support distributed tracing and alerting, the library  utilises Open Telemetry and Jaeger packages to trace requests that carry the designated headers and push the traces to tempo to be monitored through Grafana.</li></ul><p></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/02/image--5--4.png" class="kg-image" alt="Zero Stress, Full Control: Sanity Testing with Rush Environment" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/02/image--5--4.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/02/image--5--4.png 1000w, https://eng.blackbuck.com/content/images/2024/02/image--5--4.png 1368w" sizes="(min-width: 720px) 720px"><figcaption><strong>Prod Sanity Flow for a request in Rush_Env</strong></figcaption></figure><h3 id="user-whitelisting-for-rush_environment">User Whitelisting for Rush_Environment<br></h3><p>For prod sanity and in order to allow user specific traffic to be routed to Rush_Env we need to perform following steps:</p><ul><li><strong>Config Compass Service</strong>: This service takes care of whitelisting of users for a set of services.<br>For <strong>e.g.</strong> if User U1 needs to be tested for services(M1, M2) for production sanity. QA will whitelist the user for these set of services in config compass.</li><li>Users traffic based on service it is whitelisted for will be routed to Rush_Env of those services. Rest of the services will be of production only.</li><li>Users can be whitelisted for any number of services to facilitate any <strong><em>P&amp;Cs</em></strong> of routing in production and Rush_Env of services.</li></ul><p></p><h3 id="deployment-procedure">Deployment Procedure<br></h3><p>Here's how the deployment process with Rush Environment unfolds:</p><ul><li><strong>Initiating Deployment</strong>: Upon deployment  Rush_Env of our service get created and new code will get deployed on it.</li><li><strong>Registering the New Instance</strong>: The newly created instance will get registered under a new target group.</li><li><strong>Configuring Load Balancer Rules</strong>: A new routing rule is added in the load balancer. This rule is responsible to direct requests to the new target group for whitelisted users.</li><li><strong>QA Automation Testing</strong>: After Rush Environment setup is done and application is healthy, QA automation for regression are triggered. </li><li><strong>Publishing Test Reports and Manual QA</strong>: After the automated tests complete, the results are compiled and published.</li><li><strong>Manual Approval for Production Deployment</strong>: Following successful QA checks, a manual UAT is done. post that manual intervention from QA is needed to  allow the CI/CD pipeline to proceed to the next stages.</li><li><strong>Cleanup After Deployment</strong>: Post-deployment to production, a cleanup job is automatically triggered. This job performs several important tasks: <br><strong>A)</strong> Destroys the infrastructure set up for the specific Rush Environment being tested. <br><strong>B)</strong> Deletes the target group associated with the tested service. <br><strong>C)</strong> Removes the custom routing rule from the load balancer to ensure it doesn't affect subsequent production traffic or incur unnecessary evaluation overhead.</li></ul><p></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/02/image-3.png" class="kg-image" alt="Zero Stress, Full Control: Sanity Testing with Rush Environment" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/02/image-3.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/02/image-3.png 1000w, https://eng.blackbuck.com/content/images/2024/02/image-3.png 1120w" sizes="(min-width: 720px) 720px"><figcaption><strong>Production Sanity Life Cycle</strong></figcaption></figure><h3 id="distributed-tracing-monitoring-and-alerting">Distributed tracing, Monitoring and Alerting<br></h3><p>For our Rush_Env, we wanted to have more aggressive  monitoring and alerting capabilities. To achieve this we created a library which takes care of :</p><ul><li><strong>OpenTelemetry for Distributed Tracing</strong>: We utilised OpenTelemetry to facilitate distributed tracing across all our services, for request having tenancy-based headers.</li><li><strong>Tempo as the Trace Collector</strong>: Tempo, a high-scale, minimal-dependency trace collector, was chosen to aggregate the traces gathered through our distributed tracing setup.</li><li><strong>Prometheus for Time Series Data</strong>: To manage the time series data generated from our traces, we integrated Prometheus into our architecture.</li><li><strong>Grafana for Monitoring and Visualisation</strong>: We are using Grafana for our monitoring and alerting setup.<br></li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/02/image-5.png" class="kg-image" alt="Zero Stress, Full Control: Sanity Testing with Rush Environment" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/02/image-5.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/02/image-5.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2024/02/image-5.png 1600w, https://eng.blackbuck.com/content/images/2024/02/image-5.png 1689w" sizes="(min-width: 720px) 720px"><figcaption><strong>Distributed Tracing via Promethues,Tempo,Grafana</strong></figcaption></figure><p></p><h3 id="rush_env-in-kafka-">Rush_Env in Kafka:</h3><p>Post solving for web throughput our next goal is to achieve similar functionality in non web especially Kafka.</p><h3 id="objectives">Objectives</h3><ul><li>Production Sanity Framework for Kafka Consumers and Producers.</li><li>Avoid Consumer Rebalancing in Production.</li><li>No extra Code Changes for Consumers/Producers.</li></ul><h3 id="testing-scenarios">Testing Scenarios</h3><p>The testing for Kafka within the Rush_Env will cover various combinations of producers and consumers to ensure comprehensive coverage:<br>         <strong>1.</strong> New producer + New consumer<br>        <strong> 2.</strong> Old producer + New consumer<br>        <strong> 3.</strong> Old producer + Old consumer<br>         <strong>4.</strong> New producer + Old consumer</p><h3 id="proposed-solution">Proposed Solution</h3><ul><li><strong>Prod+1 Environment for Consumers</strong>: By running consumers in a <strong><em>prod+1</em></strong> environment, we can simulate the production environment closely while isolating the impact of testing.</li><li><strong>User-Specific and Service-Oriented Consumer Implementation</strong>: Implementing consumers in the <strong><em>prod+1 </em></strong>environment that are specific to the user and service under test allows for targeted testing of Kafka interactions. </li></ul><h3 id="current-limitations">Current Limitations</h3><ul><li><strong>Third-Party Callback Events</strong>: At this stage, we are not addressing the testing of third-party callback events within the Rush_Env.</li><li><strong>Events Outside Services Scope</strong>: The solution does not currently cover events originating from sources other than services, such as Maxwell or database triggers.</li></ul><h2 id="changes-we-planning-to-make">Changes we planning to make</h2><p></p><h3 id="producer-library">Producer Library</h3><ul><li><strong>Integration with Config Mapper Service</strong>: The producer library will first communicate with the Config Mapper Service to determine if a user is whitelisted for certain services.</li><li><strong>Context Injection into Messages</strong>: For whitelisted services, the library will inject a specific context into the message payload. For example, it might add <code>{"event_tenancy": "U1_S1"}</code> to indicate the message is intended for a specific tenant or environment.</li><li><strong>Dual Cluster Event Pushing</strong>: Once the context is injected, the producer will push the event to both the production and Rush_Env clusters. This ensures the message is available in both environments, but only acted upon by the intended recipients.</li></ul><h3 id="consumer-library">Consumer Library</h3><ul><li><strong>Event Tenancy and Environment Awareness</strong>: The consumer library is designed to understand the event tenancy context and differentiate between the Rush and Production environments.</li><li><strong>Selective Event Consumption</strong>: In the production environment, the service will ignore events tagged with a tenancy context indicating they are intended for the Rush_Env. This prevents duplicate processing and ensures production workflows remain unaffected by testing activities.</li><li><strong>Rush_Env Event Consumption</strong>: Conversely, in the Rush_Env, services will recognise events marked with their specific tenancy context and consume them accordingly. This allows for targeted testing of changes without impacting production data or processes.</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/02/image--6-.png" class="kg-image" alt="Zero Stress, Full Control: Sanity Testing with Rush Environment" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/02/image--6-.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/02/image--6-.png 1000w, https://eng.blackbuck.com/content/images/2024/02/image--6-.png 1384w" sizes="(min-width: 720px) 720px"><figcaption><strong>Message Production and Consumption for Production Sanity</strong></figcaption></figure><h3 id="operational-flow">Operational Flow</h3><ul><li><strong>Event Generation</strong>: A producer, upon determining that a user or service is whitelisted for Rush_Env testing, injects an event_tenancy context into the message and sends it to both clusters.</li><li><strong>Production Consumption Logic</strong>: Production consumers, upon receiving an event, check the event_tenancy context. If the context matches their own identification and having tenancy of Rush_env, indicating the message is intended for Rush_Env consumption, they ignore the event.Rest of the services checks and finds out context is not theirs they continue to consume the event.</li><li><strong>Rush_Env Consumption Logic</strong>: Rush_Env consumers, recognising an event tagged with their tenancy context, consume and process the event as part of the testing workflow.</li></ul><p>This dual-library approach with intelligent event routing based on tenancy and environment context ensures that our Kafka-based messaging system can support dynamic, environment-specific testing without interfering with production operations. It facilitates a robust testing framework that allows for comprehensive validation of new features and changes in an isolated yet realistic environment.</p><p>Stay tuned as we continue to innovate and share our journey, hoping to inspire and contribute to the broader tech community. Our adventure into optimising Kafka for our Rush Environment is just one of many steps we're taking towards building more resilient, efficient, and user-centric software solutions.</p>]]></content:encoded></item><item><title><![CDATA[Agile Development Meets High Availability at BlackBuck]]></title><description><![CDATA[Overview of platforms we built to achieve 99.99% availability of production systems in presence of frequent releases]]></description><link>https://eng.blackbuck.com/ha/</link><guid isPermaLink="false">65b255f6fe02dd7bb54e83ec</guid><category><![CDATA[High Availability]]></category><category><![CDATA[Distributed Systems]]></category><category><![CDATA[culture]]></category><dc:creator><![CDATA[Rahul Aggarwal]]></dc:creator><pubDate>Wed, 07 Feb 2024 03:30:55 GMT</pubDate><media:content url="https://eng.blackbuck.com/content/images/2024/02/photoholgic-aEaXkNAZNTE-unsplash-1.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://eng.blackbuck.com/content/images/2024/02/photoholgic-aEaXkNAZNTE-unsplash-1.jpg" alt="Agile Development Meets High Availability at BlackBuck"><p></p><h3 id="introduction">Introduction</h3><p>Agility, rapid iterations, and a focus on quickly delivering value to customers are some of the key cultural traits of the technology team at BlackBuck. Most often at BlackBuck, the time to market for any piece of code written by developers is less than a month. This means that individual contributions are more visible and can have a significant impact on the product and company. Our developers appreciate this sense of autonomy and the ability to shape the direction of the project. Such a culture of innovation also provides developers the opportunity to work on cutting-edge technologies and solutions, as well as the creative freedom to experiment with new approaches. </p><p>As BlackBuck transformed itself into a multi-category (Fastag, Fuel, GPS, Loads Marketplace, Financial Services, Used Trucks Marketplace) business supporting multiple tenants (Demand, Supply, Sales), it became imperative for us to maintain the integrity and high availability of production systems. Our products are now deeply integrated into the daily operations of each of these tenants. This transformation needs to be supported by a highly available backend system as any downtime has a direct and measurable business impact (loss of revenue, loss of sales, degraded customer experience, low conversions etc.) for each of the categories and tenants. Hence, finding the right balance between agility and system availability was essential for our success. In this blog post, we discuss how, at BlackBuck, we achieved this balance while maintaining a developer culture of freedom, innovation, and rapid iterations.</p><h3 id="defining-high-availability-needs">Defining High Availability Needs</h3><p>We started by first defining the availability requirements for different business categories. We soon realized that different parts of the business and in turn the different components of the system may have different availability requirements. It is important to correlate availability metrics with business metrics to come up with the correct availability requirements aligned to business needs. To understand this, we looked at how every system’s downtime will impact key business metrics around customer experience, customer churn, loss of revenue, decreased customer activity and loss of sales team productivity. For example, x minutes of downtime on one of our platform microservices will have the following financial impact : </p><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2024/01/Screenshot-2024-01-25-at-7.05.34-PM.png" class="kg-image" alt="Agile Development Meets High Availability at BlackBuck" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/01/Screenshot-2024-01-25-at-7.05.34-PM.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/01/Screenshot-2024-01-25-at-7.05.34-PM.png 1000w, https://eng.blackbuck.com/content/images/2024/01/Screenshot-2024-01-25-at-7.05.34-PM.png 1338w" sizes="(min-width: 720px) 720px"></figure><p>Based on this analysis for business metrics for different business and product categories, we defined availability SLA targets of 99.99% availability for many systems powering our core product features like FasTag balance/recharge, GPS live location, Marketplace load search, Order placement etc. We also humbly accepted that we are also OK with having lower SLAs of 99.9% availability for many other systems supporting features like monthly/yearly ledgers and invoices etc.</p><h3 id="understanding-and-fixing-gaps-in-the-sdlc">Understanding and Fixing Gaps in the SDLC</h3><p>To achieve our target of 99.99% availability, we reviewed our entire SDLC process and came up with action items at each step. By continuously improving our system architecture and operational excellence processes over the years, we were able to reach availability of 99.95% for most of our systems. We observed that most of the downtimes now were happening due to bad releases and root cause were often manual misses. The Mean Time to Detect and Mean Time To Resolve for these manual misses were also on the higher side. So, we started digging deeper into our release processes as well. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/02/SDLC-for-Blog.drawio--7-.png" class="kg-image" alt="Agile Development Meets High Availability at BlackBuck" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/02/SDLC-for-Blog.drawio--7-.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/02/SDLC-for-Blog.drawio--7-.png 1000w, https://eng.blackbuck.com/content/images/2024/02/SDLC-for-Blog.drawio--7-.png 1440w" sizes="(min-width: 720px) 720px"><figcaption>Common gaps in SDLC and solutions we implemented at BlackBuck</figcaption></figure><h3 id="understanding-gaps-during-the-release-phase"><br>Understanding Gaps During The Release Phase</h3><p>Every piece of software system which is in active development exhibits a failure pattern as shown in the figure below. After the initial burn-in period, the availability of the system stabilizes at a baseline. Every release after this period can potentially introduce new faults in the system and the overall system failure rate may see a spike in every release. This means that frequent releases can make the system more likely to experience availability issues.<br></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh7-us.googleusercontent.com/5BhjP8PLJfYMATA0BM12yoyxo_-DfVVpc8kv8m_ms1nzcJM1nQBaF-LdP4mPfNaDG5VPqcXZMLkXjom0sW5xcydWrf_FDEyqQ9BQaRmdZVAOV_VTOu-vBw_my2Iw4I2SqSzq_qdHwCxSNXxCOp_RR2U" class="kg-image" alt="Agile Development Meets High Availability at BlackBuck"><figcaption>Software Failure Patterns With Releases&nbsp;</figcaption></figure><p> To understand how releases were impacting availability at BlackBuck, we reviewed the RCAs for all of our past downtimes and came up with solutions at each phase of the software development life cycle. This blog specifically focuses on the solutions that we figured out during the different stages in our release phase. </p><p>Some  gaps we identified in different stages of our release phase  were as follows : </p><ol><li><strong>Functional Testing</strong> <strong>misses </strong>: During the testing stage, we focused on thoroughly testing the new changes. We were also doing manual sanity checks for ensuring that there is no impact of these news changes on the existing user flows. This process was prone to manual misses and there were chances that a bad release impacting the existing features was only being caught after a production rollout.</li><li><strong>Variability in Deployment Processes</strong> : While we had robust CI/CD pipeline built using Jenkins and Ansible, there was a diversity in the implementation process. Different teams adjusted the pipelines to suit the nuances of their service architectures, occasionally resulting in deployment challenges. Additionally, during significant releases encompassing multiple interconnected services, the existing pipelines did not strictly enforce a uniform order of deployments.</li><li><strong>100% Traffic Rollout at once on new release</strong> : We were rolling out 100% traffic in one go to the new release. This meant that any bug in the new release could potentially impact all users before being caught. </li><li><strong>No separate UAT environment</strong> : UATs were being done in the QA environment. In presence of multiple releases, sometimes it becomes difficult to maintain the sanity of the QA environment and could lead to UAT misses. </li><li><strong>Manual analysis of system metrics</strong> : After every release, we were comparing pre and post release key system and business metrics from our observability tools manually. As our systems matured, we were tracking a lot of metrics and manually analysing all the metrics became infeasible. </li><li><strong>Manual interventions for rollbacks </strong>: In case we observed failures after any release, manual interventions were needed to roll back the changes which affected the mean time to recovery. </li></ol><h3 id="solution-for-fixing-the-gaps-during-the-release-phase">Solution for Fixing the Gaps During The Release Phase</h3><p>To address these gaps, we came up with the following solutions :</p><p><strong>Automation Testing</strong> : We decided to build 100% regression coverage for all our features with an SLA of 99.99% availability. We also integrated the automation suite in our CI/CD pipelines and ran the automation test suites with actual production data and test users. This ensured that no code was going into production without passing the automation tests.</p><p><strong>Request Header-based User Sanity  Helper Environment (Rush_Env)</strong> : We built a new short lived environment called Rush_Env to have the capability to test production + 1 changes with production data and test production users. This environment provided fine grained control to route requests to either production or production + 1 in a microservices environment even if the requests were spanning across multiple microservices. This helped us to run automation tests and UAT on production data and test production users without impacting the real users. Read more about how we built this <a href="https://eng.blackbuck.com/zero-stress-full-control-sanity-testing-with-rush_env/">here</a>. </p><p><strong>New CI/CD Platform</strong> : We built a modular CI/CD platform with plug and play libraries to easily create and deploy new pipelines.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh7-us.googleusercontent.com/Ygjtw_ZU9ju1V6iPu4OpK1v_e4um9N-Px7hVs8HcriAtR1kbD1_3np6DqPYF8HJkGGwbufCTAQtR7aK7nHaVw316uL66zOsyuKfx18IDNzrCieqw2NgXErYvOmer-KtzKrDEfmRcpcge0nCGGOVcvuo" class="kg-image" alt="Agile Development Meets High Availability at BlackBuck"><figcaption>Example of Different Modules in the New Deployment Platform</figcaption></figure><p></p><p><strong>Infrastructure as Code</strong> : As part of this new platform, we also implemented standardized Infrastructure as Code practices through the utilization of Terraform.</p><p><strong>Modularity and feature releases</strong> : The modularity of the platform allowed us to adopt Pipeline as Code and easily create new deployment pipelines consisting of multiple deployment across multiple services. This helped in standardizing our deployment process for big feature releases.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/02/image--4-.png" class="kg-image" alt="Agile Development Meets High Availability at BlackBuck" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/02/image--4-.png 600w, https://eng.blackbuck.com/content/images/2024/02/image--4-.png 995w" sizes="(min-width: 720px) 720px"><figcaption>Modularity Allowed Us to Easily Create Short Lived RUSH_Env</figcaption></figure><p></p><p><strong>Automation Testing, UAT and Rush_Env </strong>:  We also integrated an automation testing framework and the creation of Rush_Env to run the tests and UAT during any release.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/02/image--5--3.png" class="kg-image" alt="Agile Development Meets High Availability at BlackBuck" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/02/image--5--3.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/02/image--5--3.png 1000w, https://eng.blackbuck.com/content/images/2024/02/image--5--3.png 1264w" sizes="(min-width: 720px) 720px"><figcaption>Rush_Env for Automation Testing and UAT</figcaption></figure><p><strong>Phased rollouts</strong> :  This new platform also ensured that every production release was rolled out in a phased manner by employing a blue/green deployment strategy.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/02/image--3-.png" class="kg-image" alt="Agile Development Meets High Availability at BlackBuck" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/02/image--3-.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/02/image--3-.png 1000w, https://eng.blackbuck.com/content/images/2024/02/image--3-.png 1209w" sizes="(min-width: 720px) 720px"><figcaption>Phased Rollout in Three Steps With Automatic Canary Analysis</figcaption></figure><p><strong>Automatic Canary Analysis and rollbacks</strong> : We also used Kayenta to conduct automatic canary analysis of key metrics by integrating it with our Observability tools. These analyses are done after every incremental rollout and in case of deviations, the changes are instantaneously rolled back. This helped in solving the gaps in manual analysis and manual rollabacks. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/02/image--2-.png" class="kg-image" alt="Agile Development Meets High Availability at BlackBuck" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/02/image--2-.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/02/image--2-.png 1000w, https://eng.blackbuck.com/content/images/2024/02/image--2-.png 1158w" sizes="(min-width: 720px) 720px"><figcaption>Staggered Deployment When Canary Analysis Failed After 50% Rollout and Automatic Rollback</figcaption></figure><p></p><h3 id="release-cycles-after-implementation-of-the-solutions">Release Cycles After Implementation of the Solutions</h3><p>After implementing all the solutions identified during this process, this is how our overall release cycles look like now. </p><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2024/02/staggered.drawio--9-.png" class="kg-image" alt="Agile Development Meets High Availability at BlackBuck" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/02/staggered.drawio--9-.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2024/02/staggered.drawio--9-.png 1000w, https://eng.blackbuck.com/content/images/2024/02/staggered.drawio--9-.png 1481w" sizes="(min-width: 720px) 720px"></figure><p>Here are a few snapshots of the successful and failed releases. <br></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh7-us.googleusercontent.com/_9kN771pQ8mDyEUKEVYoqbNZ2ET8QjDzq3DyrzP6H7ErYYMFltIHg6MIIiKKGUjYFD2u8owOjz_oWtvOjCy_l-fYAsfKQZt9duIakjkxrVUvZ5dX2MLeR-6jyBTof_9wd1rYKG5a5cXz8hh6cNP6o_w" class="kg-image" alt="Agile Development Meets High Availability at BlackBuck"><figcaption>Deploying 2 Services in Parallel</figcaption></figure><p></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://lh7-us.googleusercontent.com/qMKxZOI2CdunZV6J7-mkCqcBIDRuTvP7CiXRJhFvMdPkYtZ5ODsaTmtqF-_837MtSFv_lF9x3U_fmYUS4rQQGOHoW9yPPM05MDt7UUYugFnHM0dRXWjx14Y--VhBwfb0_lvmXKoXeZutUryZiOj1PTw" class="kg-image" alt="Agile Development Meets High Availability at BlackBuck"><figcaption>Canary Analysis Failed During Incremental Traffic Rollout</figcaption></figure><h3 id="conclusion">Conclusion</h3><p>BlackBuck's agile development culture and a commitment to achieving 99.99% system availability exemplifies the successful balance of innovation and reliability. By aligning availability SLA targets with business metrics, we addressed gaps in our SDLC, implementing solutions like automation testing, Rush_Env for user testing, and a modular CI/CD platform with staggered deployments and automatic canary analysis.This helped us to attain improved release cycles, reduced manual intervention, and enhanced system reliability. </p><p>This blog provides only a high-level overview of our approach and overall solution architecture. <strong>Stay tuned for more in-depth insights through upcoming technical blogs, where each of the solutions mentioned above will be explored in detail.</strong></p><h3 id="references">References</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://docs.aws.amazon.com/whitepapers/latest/availability-and-beyond-improving-resilience/availability-and-beyond-improving-resilience.html"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Availability and Beyond: Understanding and Improving the Resilience of Distributed Systems on AWS - Availability and Beyond: Understanding and Improving the Resilience of Distributed Systems on AWS</div><div class="kg-bookmark-description">Today, businesses operate complex, distributed systems both in the cloud and on-premises. They want these workloads to be resilient in order to serve their customers and achieve their business outcomes. This paper outlines a common understanding for availability as a measure of resilience, establish…</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://docs.aws.amazon.com/assets/images/favicon.ico" alt="Agile Development Meets High Availability at BlackBuck"><span class="kg-bookmark-publisher">Availability and Beyond: Understanding and Improving the Resilience of Distributed Systems on AWS</span></div></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://netflixtechblog.com/automated-canary-analysis-at-netflix-with-kayenta-3260bc7acc69"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Automated Canary Analysis at Netflix with Kayenta</div><div class="kg-bookmark-description">Introducing Kayenta — A platform for Automated Canary Analysis (ACA) from Netflix and Google.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://miro.medium.com/v2/resize:fill:152:152/1*sHhtYhaCe2Uc3IU0IgKwIQ.png" alt="Agile Development Meets High Availability at BlackBuck"><span class="kg-bookmark-author">Netflix Technology Blog</span><span class="kg-bookmark-publisher">Netflix TechBlog</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://miro.medium.com/v2/resize:fit:1200/1*h65C2z-BmqQBIvcTQA0nag.png" alt="Agile Development Meets High Availability at BlackBuck"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://aws.amazon.com/builders-library/automating-safe-hands-off-deployments/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Automating safe, hands-off deployments</div><div class="kg-bookmark-description">Strategies for continuously deploying to production while balancing safety and speed.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://a0.awsstatic.com/libra-css/images/site/touch-icon-ipad-144-smile.png" alt="Agile Development Meets High Availability at BlackBuck"><span class="kg-bookmark-publisher">Amazon Web Services, Inc.</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://a0.awsstatic.com/libra-css/images/logos/aws_logo_smile_1200x630.png" alt="Agile Development Meets High Availability at BlackBuck"></div></a></figure><p><a href="https://www.uber.com/en-IN/blog/simplifying-developer-testing-through-slate/">Uber Engineering Blog : Simplifying Developer Testing Through SLATE</a></p><p>Title image by <a href="https://unsplash.com/photos/balanced-stones-aEaXkNAZNTE">Photoholgic on Unsplash</a> </p><hr><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2024/02/devotion_to_duty.png" class="kg-image" alt="Agile Development Meets High Availability at BlackBuck" srcset="https://eng.blackbuck.com/content/images/size/w600/2024/02/devotion_to_duty.png 600w, https://eng.blackbuck.com/content/images/2024/02/devotion_to_duty.png 638w"><figcaption><a href="https://xkcd.com/705/">Devotion to Duty</a></figcaption></figure><p></p>]]></content:encoded></item><item><title><![CDATA[Building for Bharat: Identifying the needs of BlackBuck’s unique user base]]></title><description><![CDATA[<p>By Greeshma Rawat</p><p><em>An inside view on how BlackBuck conducts user research and testing to build better products</em></p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2023/07/image.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/07/image.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/07/image.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/07/image.png 1600w, https://eng.blackbuck.com/content/images/2023/07/image.png 2224w" sizes="(min-width: 1200px) 1200px"></figure><h1 id="user-research-and-its-importance">User Research and its importance</h1><p>User research is essential to building a better product because it provides insights into the needs, preferences, and behaviours of the people who will finally be using</p>]]></description><link>https://eng.blackbuck.com/identifying-the-needs-of-blackbucks-unique-user-base/</link><guid isPermaLink="false">6364c2c2fe02dd7bb54e7ed3</guid><dc:creator><![CDATA[Blackbuck]]></dc:creator><pubDate>Fri, 28 Jul 2023 08:22:37 GMT</pubDate><content:encoded><![CDATA[<p>By Greeshma Rawat</p><p><em>An inside view on how BlackBuck conducts user research and testing to build better products</em></p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2023/07/image.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/07/image.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/07/image.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/07/image.png 1600w, https://eng.blackbuck.com/content/images/2023/07/image.png 2224w" sizes="(min-width: 1200px) 1200px"></figure><h1 id="user-research-and-its-importance">User Research and its importance</h1><p>User research is essential to building a better product because it provides insights into the needs, preferences, and behaviours of the people who will finally be using the product. The goal of user research is to gather insights that can further enable the design and development of products &amp; services; making it relevant, functional and meaningful to the users. </p><p>There are various user research methods, including qualitative and quantitative approaches. Qualitative methods, such as interviews, focus groups, observations, and usability testing aim to understand the subjective experiences and perspectives of users. Quantitative methods like surveys and analytics aim to gather numerical data to measure user behaviours and attitudes.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2023/07/Group-2--1-.jpg" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/07/Group-2--1-.jpg 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/07/Group-2--1-.jpg 1000w, https://eng.blackbuck.com/content/images/2023/07/Group-2--1-.jpg 1480w" sizes="(min-width: 720px) 720px"><figcaption><em>At BlackBuck, user interviews, usability testing and field studies are conducted for qualitative studies.</em></figcaption></figure><p>The insights gained from user research can inform various aspects of product development, including product strategy, design decisions, feature prioritization, and marketing messaging. By incorporating user feedback and insights into the development process, businesses can create products and services that better meet the needs of their target users, leading to higher user satisfaction and improved business outcomes.</p><p>Overall, user research is essential to building a better product that meets the needs of its users. By understanding user needs, creating a user-centred design, testing assumptions, improving usability, and reducing development costs, user research can help ensure a product’s success.</p><h1 id="qualitative-research">Qualitative Research</h1><p>When conducting user research and usability testing, there are a variety of qualitative methods available that can provide valuable insights into the needs, behaviours, and attitudes of users ( as mentioned in the image below).</p><p>The next obvious question is — which method to use. Well, it’s important to experiment with different methods to determine which ones work best for your objectives.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2023/07/Group-3--1-.jpg" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/07/Group-3--1-.jpg 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/07/Group-3--1-.jpg 1000w, https://eng.blackbuck.com/content/images/2023/07/Group-3--1-.jpg 1480w" sizes="(min-width: 720px) 720px"><figcaption><em>The before and after steps are equally crucial for successful research.</em></figcaption></figure><h2 id="research-challenges-with-truckers-in-india">Research challenges with truckers in India</h2><p>As a trucking marketplace in India, BlackBuck aims to understand the needs and expectations of its target audience to provide a seamless user experience. However, the target audience may not be very educated, which poses a challenge for user research and usability testing. Many methods of traditional research don’t work with our users. Some crucial problems we face during our research -</p><ul><li>We cannot fix appointments with them for one-on-one interviews or telephone interviews.</li><li>We cannot expect a dedicated amount of time even if we meet them.</li><li>Telephone interviews are cold calls — whoever answers and is willing to talk.</li><li>The interviews are (almost) always interrupted — they get a call, start talking to someone else or pick up another task.</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2023/07/Group-4--1-.jpg" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/07/Group-4--1-.jpg 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/07/Group-4--1-.jpg 1000w, https://eng.blackbuck.com/content/images/2023/07/Group-4--1-.jpg 1480w" sizes="(min-width: 720px) 720px"><figcaption><em>Most truck owners are still getting used to the digitisation of their businesses. Therefore, asking them for feedback on a digital product can be tricky.</em></figcaption></figure><p><br>Truckers in India have a unique lifestyle and work in an industry that operates differently from traditional 9–5 businesses. The trucking industry is open 24/7, and truck owners are constantly on calls, looking for loads or trucks, enquiring about the location of trucks or loads, and following up on payments. Due to these factors, their priorities and needs are different, making conducting user research and testing challenging.</p><p>Moreover, many truckers are not familiar with the concepts of user research, testing, and surveys or their importance in the development of a product that they use. As a result, getting feedback from them can be difficult.</p><h1 id="research-methods-at-blackbuck">Research Methods at BlackBuck</h1><p>To overcome the above challenges, BlackBuck has adopted various research and testing methods, such as one-on-one interviews, phone call interviews, and sending screenshots of designs via WhatsApp to gather feedback and on-site user testing. These methods allow BlackBuck to obtain the necessary insights from truckers without making them feel like they have to put in any extra effort. By using innovative research methods, BlackBuck can understand the unique needs and priorities of its target audience and develop products that cater to their requirements.</p><h2 id="1-one-on-one-interviews">1. One-on-one interviews</h2><p>In these interviews, we talk to individual users to understand their experiences, pain points, and suggestions for improvement. One-on-one interviews are usually conducted on-site, i.e. a <em><em>transport hub</em></em> where many BlackBuck-using transporters can be found in close vicinity. This method allows BlackBuck to gain in-depth insights into the user’s perspective and tailor the product accordingly.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2023/07/Group-5--1-.jpg" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/07/Group-5--1-.jpg 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/07/Group-5--1-.jpg 1000w, https://eng.blackbuck.com/content/images/2023/07/Group-5--1-.jpg 1480w" sizes="(min-width: 720px) 720px"><figcaption><em>One-on-one interviews are conducted in an environment where the users are most comfortable.</em></figcaption></figure><p><strong><strong>Limitation</strong></strong></p><p>Conducting one-on-one interviews can be time-consuming and resource-intensive, limiting the number of users who can participate.</p><p>One-on-one interviews with our users, who are predominantly truck owners and transporters, present unique challenges due to the nature of their work. As the trucking industry is not highly organized, fixed appointments are not always feasible. Our users may have unpredictable schedules and may not be mindful of allocated time. As a result, interviews can range from 15 minutes to an hour, depending on their availability and mood. It’s common to catch them amid their work, requiring flexibility and patience. Interruptions such as phone calls or other tasks may occur during the interview, leading to potential delays. Therefore, conducting interviews with our users requires adaptability and an understanding of the demands of the trucking industry.</p><p><strong><strong>Research Example — Interviewing users for overall feedback on the BlackBuck app</strong></strong></p><p>In Jodhpur, we conducted interviews with a group of users to gather their general opinions about the app’s usability. Our objective was to gather information on their preferences, grievances, and any challenges they faced while using the app.</p><blockquote><em><em>Our goal was to understand how our app was being used by users and identify ways to improve their experience, which required us to engage in individual conversations with them.</em></em></blockquote><p>As the interviews were conducted individually, we had sufficient time to understand their requirements and difficulties, gaining valuable insights into their experiences.</p><p><strong>Research Impact</strong></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2023/07/1.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/07/1.png 600w, https://eng.blackbuck.com/content/images/2023/07/1.png 798w" sizes="(min-width: 720px) 720px"><figcaption>One of the many insights of the research. We asked the users extensive questions about different categories, flows and screens.</figcaption></figure><p>Having one-on-one interactions with the users provided an excellent foundation for revamping the app. These detailed interviews gave us valuable insight into how the users interacted with the app. We discovered the other apps they used in their daily routines and what aspects they appreciated about those apps. This knowledge helped us identify what modifications we could implement in our app.</p><h2 id="2-telephone-interviews">2. Telephone Interviews</h2><p>BlackBuck also conducts phone call interviews with its target audience. Phone call interviews are cost-effective and allow researchers to reach a large number of users quickly. In phone call interviews, researchers ask users questions about their experience with the product, their pain points, and suggestions for improvement. Phone call interviews also allow BlackBuck to gather feedback from users who are geographically dispersed.</p><p><strong><strong>Limitation</strong></strong></p><p>Our phone calls to users are not prearranged. We receive a list of users to interview and begin contacting them. However, the process can be unpredictable as users may decline to speak or hang up after only a few minutes, and may not answer all questions. Despite these challenges, we persist until we receive adequate feedback from a targeted number of participants. Typically, for every 20 feedbacks received, we need to call an average of 50–60 people. Therefore, conducting interviews via phone requires persistence and adaptability to navigate the variability of user engagement.</p><p><strong><strong>Research Example — Finding out if the Chats feature is as important for users as the Calls feature</strong></strong></p><p>Our aim was to provide truck owners with the ability to communicate with transporters on our platform through the Chats feature. After a month of its release, we wanted to see the significance of this feature to our users.</p><p>The objectives of this research were -</p><ol><li>To find out why certain users used the chat feature before calling a transporter.</li><li>How important was the chat feature to users in comparison to the calls feature?</li></ol><blockquote><em><em>We decided to call the users for this research because we were looking to gather qualitative feedback from users in a relatively short amount of time.</em></em></blockquote><p><br><strong>Research Impact</strong></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2023/07/3.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/07/3.png 600w, https://eng.blackbuck.com/content/images/2023/07/3.png 700w"><figcaption>Synthesis of the research to understand why users used the chat feature, how important it was for them and if they liked it more than the call feature.</figcaption></figure><p><br>The research data provided a clear indication that the users did not consider the chat feature as a must-have feature, but rather a nice-to-have feature. While some users expressed positive sentiment towards the chat feature, the overall data suggested that it wasn’t as important to them as the call feature. This information helped the product team to focus on developing or improving the features that were more essential to the users.</p><h2 id="3-sharing-designs-via-phone">3. Sharing designs via Phone</h2><p>Sending screenshots of designs to users and asking for feedback is another method used by BlackBuck. This method is particularly useful when the user is not available for a one-on-one or phone call interview. Sending screenshots of designs to users allows BlackBuck to gather feedback quickly and efficiently. It also allows users to provide feedback at their convenience, making it more likely that they will respond.</p><p>After the screenshots are shared, and once the user has responded to the message, we call the user for detailed feedback.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2023/07/Group-6--1-.jpg" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/07/Group-6--1-.jpg 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/07/Group-6--1-.jpg 1000w, https://eng.blackbuck.com/content/images/2023/07/Group-6--1-.jpg 1480w" sizes="(min-width: 720px) 720px"><figcaption><em>Sharing designs on a phone is a time-effective way to test small features with a small user group.</em></figcaption></figure><p><strong><strong>Limitation</strong></strong></p><p>While sending screenshots via WhatsApp to users for feedback can be a useful method, it does have its limitations. For example, some users may not respond quickly or require multiple follow-ups, making the feedback process slower and less efficient. Additionally, it can be difficult to convey complex navigation flows through screenshots alone, which can make it challenging to get comprehensive feedback on a design.</p><p>This method can only be used to gather feedback on a single-page design or to compare multiple options. When using this method, it’s important to be clear about the specific design or copy elements you’re seeking feedback on and to provide context for how the screenshot fits into the broader design. Additionally, it can be helpful to follow up with users to clarify any questions or concerns they may have and to ensure that you’re getting the most useful feedback possible.</p><p><strong><strong>Research Example — Assessing the degree of correlation between Boss and BlackBuck and the change of app icon colour for users through testing</strong></strong></p><p>Branding changes in the app icon that we wanted to test —</p><ol><li>Change from Boss Transporter to BlackBuck Transport.</li><li>Change of colour from red to black.</li></ol><p>Prior to making this transition, it was essential to determine whether our users could understand the new icons as we wanted to prevent them from experiencing any confusion while searching for our app on their mobile devices.</p><blockquote><em><em>Since it was just an icon we wanted feedback on, we thought it would be best to share a screenshot with the users.</em></em></blockquote><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2023/07/8--1-.png" class="kg-image" alt><figcaption>We shared screenshots of a mobile screen with the users and asked them which app icon would they choose if they wanted to use the Boss app (erstwhile) to post loads.</figcaption></figure><p><strong>Research Impact</strong></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2023/07/7.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/07/7.png 600w, https://eng.blackbuck.com/content/images/2023/07/7.png 811w" sizes="(min-width: 720px) 720px"><figcaption>Users' preference for Transport over Transporter was one of the main insights.</figcaption></figure><p>The research also provided us with another unique insight, revealing that the words “Boss” and “BlackBuck” were interchangeable for our users and that changing the app name or icon colour did not cause any hesitation in their decision to choose the app.</p><h2 id="4-on-site-user-testing">4. On-site User Testing</h2><p>In some cases of Usability Testing, BlackBuck opts for going directly to the user. This is done through an interactive prototype made in Figma and then presented to the user to interact with.</p><p>For this method also, we visit transporters in their offices (usually in a transport hub where we can find multiple BlackBuck-using transporters in the same place). The researcher, with the help of a translator (if required), gives the user the context of the testing and then shows the prototype (of the feature to be tested) to the user to interact with.</p><p>During user interaction, observations are made on how the user is interacting and any friction points he is coming across while interacting. Post interaction, the researcher (at times) asks some questions with respect to the experience of the user.</p><p>Because the BlackBuck apps also support regional languages, the prototypes are also made in different languages depending on the area we choose for testing. Testing in Rajasthan would mean the prototype would be in English and Hindi. Whereas testing in Karnataka would require us to prepare the prototype in English and Kannada.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2023/07/Group-630265168.jpg" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/07/Group-630265168.jpg 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/07/Group-630265168.jpg 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/07/Group-630265168.jpg 1600w, https://eng.blackbuck.com/content/images/size/w2400/2023/07/Group-630265168.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><em>Examples of multi-lingual sample screens that are used for testing, depending on the user’s app language.</em></figcaption></figure><p>One big advantage of this method is that the user has minimal disturbance to his schedule as the researcher conducts testing in his environment and hence, his comfort zone. So, the observation and feedback are more genuine and accurate.</p><p><strong><strong>Limitation</strong></strong></p><ol><li>While this method is highly effective in knowing the actual response in normal scenarios, going directly to the user’s place may not bring accurate results in some cases. If there is a busy occasion for the majority of transporters like festivities, or if there is a sudden loading/unloading spike in the transport hub (and it happens at least once or twice a month), then the majority of transporters won’t be available for user testing. Even the ones who agree are often in a hurry so they might not give a very genuine response about their experience.</li><li>Since users are not familiar with the concept of testing, many have to be explained what a prototype is, and why they are asked to interact with it just like they would with an actual product.</li></ol><blockquote><em><em>“For instance, a user was once shown a prototype with made-up data, and he thought it was real. He could not understand why something made-up was being shown to him.”</em></em></blockquote><p><strong><strong>Research Example — Finding out if the users were able to use the ignition on and off feature</strong></strong></p><p>The lock and unlock feature is a crucial aspect of BlackBuck GPS and sets us apart from our competitors. This additional layer of security was promised to our users, making it vital that they know how to use it effectively.</p><p><em>Also watch: User testing of Ignition Lock/unlock</em></p><p><strong>Research Impact</strong></p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2023/07/5.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/07/5.png 600w, https://eng.blackbuck.com/content/images/2023/07/5.png 741w" sizes="(min-width: 720px) 720px"><figcaption>The testing involved both individuals who used GPS relay and those who did not, with the aim of understanding how everyone found the user experience.</figcaption></figure><p>The usability testing helped us validate the UX of the feature. The users were able to lock and unlock the ignition and understood words like ignition and relay.</p><h1 id="conclusion">Conclusion</h1><p>At BlackBuck, we have experimented with and adopted multiple methods for user research and usability testing to overcome the limitations of a target audience that may not be very educated and tech-savvy. Through trial and error, we have been able to develop our own unique way to conduct research and usability testing to gather valuable feedback from its users and improve its product accordingly.</p>]]></content:encoded></item><item><title><![CDATA[How BlackBuck's Telematics helps you keep a hawk-eye over your trucks - Part 2]]></title><description><![CDATA[<p><em>What it takes to design a user-friendly theft protection feature for trucks!</em></p><p>By Rishabhkumar Uday</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2023/01/blog-part-2@2x.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/01/blog-part-2@2x.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/01/blog-part-2@2x.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/01/blog-part-2@2x.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2023/01/blog-part-2@2x.png 2400w" sizes="(min-width: 1200px) 1200px"></figure><h3 id="introduction"><strong>Introduction</strong></h3><p>In the last part of this blog series, we discussed the importance of robust telematics solutions, described how our theft protection (relay) functions in a vehicle and how it's controlled through the GPS app</p>]]></description><link>https://eng.blackbuck.com/how-blackbucks-telematics-helps-you-keep-a-hawk-eye-over-your-trucks-part-2/</link><guid isPermaLink="false">63ce2129fe02dd7bb54e8217</guid><dc:creator><![CDATA[Blackbuck]]></dc:creator><pubDate>Tue, 24 Jan 2023 07:13:37 GMT</pubDate><content:encoded><![CDATA[<p><em>What it takes to design a user-friendly theft protection feature for trucks!</em></p><p>By Rishabhkumar Uday</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2023/01/blog-part-2@2x.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/01/blog-part-2@2x.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/01/blog-part-2@2x.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/01/blog-part-2@2x.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2023/01/blog-part-2@2x.png 2400w" sizes="(min-width: 1200px) 1200px"></figure><h3 id="introduction"><strong>Introduction</strong></h3><p>In the last part of this blog series, we discussed the importance of robust telematics solutions, described how our theft protection (relay) functions in a vehicle and how it's controlled through the GPS app of BlackBuck. However, like all product design journey, the Relay feature in its first version had room for improvement in its design. In this part, we are going to describe in detail what were the hits &amp; misses in our first version, how we approached them in our reiteration and how we eventually reached the new design of Theft Protection (Relay).</p><p><strong>Problem Statement</strong></p><p>This was the initial process to lock/unlock the ignition through the app:</p><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2023/01/Group-630265025@2x.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/01/Group-630265025@2x.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/01/Group-630265025@2x.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/01/Group-630265025@2x.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2023/01/Group-630265025@2x.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>In this case several problems were found in both UX and UI fronts.</p><h3 id="ux-problems-found"><strong>UX Problems Found</strong></h3><h4 id="-1-setting-wrong-expectations-for-the-user-"><strong>#1. Setting wrong expectations for the User:-</strong></h4><p>Once the user proceeds with locking the ignition, the pop-up closes to reveal a new information component within the details page.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2023/01/Group-630265026@2x-1.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/01/Group-630265026@2x-1.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/01/Group-630265026@2x-1.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/01/Group-630265026@2x-1.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2023/01/Group-630265026@2x-1.png 2400w" sizes="(min-width: 1200px) 1200px"></figure><p>Since there is no prior intimation of the next step, the user expects the ignition to be locked/unlocked instantly, which is not always the case. There are a few edge cases where this process takes time. But this information is not shared with the user. And when the lock/unlock takes time, the user assumes that the page or app is malfunctioning — clearly not a good user experience.</p><p><br><strong>#2. Poor handling of Exception:-</strong></p><p>Speaking of exceptions, Lock ignition has primarily two of them:<br></p><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2023/01/Group-630265027.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/01/Group-630265027.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/01/Group-630265027.png 1000w, https://eng.blackbuck.com/content/images/2023/01/Group-630265027.png 1326w" sizes="(min-width: 720px) 720px"></figure><p>As shown in the figure above, the unanswered questions arise because these states are not treated like exceptions. Rather, they are treated like an add-on step which sometimes confuses the user.</p><h4 id="-3-unexpected-and-unexplained-changes-in-controls"><strong>#3 Unexpected and unexplained changes in controls</strong></h4><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2023/01/Group-630265002@2x.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/01/Group-630265002@2x.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/01/Group-630265002@2x.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/01/Group-630265002@2x.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2023/01/Group-630265002@2x.png 2400w" sizes="(min-width: 1200px) 1200px"></figure><p>In the lock/unlock process, once the sending of the ‘lock’ signal is complete, the option to cancel lock/unlock is removed without any prior explanation. This is done because after the signal is sent to the truck, the lock/unlock process becomes irreversible from the back-end.</p><p><strong><strong>UI Problems Found</strong></strong></p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2023/01/Group-630265001@2x.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/01/Group-630265001@2x.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/01/Group-630265001@2x.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/01/Group-630265001@2x.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2023/01/Group-630265001@2x.png 2400w" sizes="(min-width: 1200px) 1200px"></figure><h3 id="solution-process"><strong>Solution Process</strong></h3><p>Once the problems were specified, we worked on a viable solution through:-</p><ol><li>Analytics Review and Stakeholder Discussions</li><li>Revised User Flow</li><li>Design Concepts</li><li>Final Design</li></ol><h4 id="analytics-review-stakeholder-discussions"><strong>Analytics Review &amp; Stakeholder Discussions</strong></h4><p>We checked the overall distribution of time taken to complete a lock/unlock process. Based on the numbers, we were going to decide what approach to take for the solution model.</p><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2023/01/image-1.png" class="kg-image" alt></figure><p>Numbers in approximate figures</p><p>Based on the distribution and the problems specified, several guidelines were laid out:-</p><ul><li>In the majority of cases, the lock/unlock happens within 1 min. Hence, it was decided that the new design would be focused more on that strata. Since the interaction would last for 1 min in most cases, the overall process of <strong>lock/unlock would be seen in a direct and upfront manner by default when initiated. </strong>The user would be given the option of leaving that upfront view whenever they feel so.</li><li>In case the user exits the upfront view, <strong>a secondary notification component would be present (to inform him of the ongoing progress of lock/unlock in the backdrop) in the truck list and details page</strong>.</li><li>The difference in nature of the ongoing lock/unlock process (initiated &gt; in progress &gt; successful) will be shown evidently in the new design.</li><li>Messaging will be regularized throughout the UI.</li><li>Controls, when needed to be disabled, will be disabled with proper reason given to the user.</li></ul><p><br><strong><strong>Revised User Flow</strong></strong></p><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2023/01/Group-630265072.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/01/Group-630265072.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/01/Group-630265072.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/01/Group-630265072.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2023/01/Group-630265072.png 2400w" sizes="(min-width: 720px) 720px"></figure><h4 id="design-concepts"><strong>Design Concepts</strong></h4><p>Initially, two iterations were made and their UI analysis was done to differentiate their pros and cons. We then took the pros and cons of both the iterations into consideration and then combined them to design the final iteration, maximizing the pros and eliminating the cons.</p><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2023/01/Group-630265114@2x.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/01/Group-630265114@2x.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/01/Group-630265114@2x.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/01/Group-630265114@2x.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2023/01/Group-630265114@2x.png 2400w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2023/01/Group-630265115@2x-1.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/01/Group-630265115@2x-1.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/01/Group-630265115@2x-1.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/01/Group-630265115@2x-1.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2023/01/Group-630265115@2x-1.png 2400w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2023/01/Group-630265117@2x.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/01/Group-630265117@2x.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/01/Group-630265117@2x.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/01/Group-630265117@2x.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2023/01/Group-630265117@2x.png 2400w" sizes="(min-width: 720px) 720px"></figure><p><br><strong>Final Design</strong></p><p>Following all the iterations, we came out with the final solution which was later implemented into the application.</p><p><strong>Here below are the Final Design Snippets</strong></p><h4 id="main-screens"><strong>Main Screens</strong></h4><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2023/01/Group-630265105@2x.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/01/Group-630265105@2x.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/01/Group-630265105@2x.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/01/Group-630265105@2x.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2023/01/Group-630265105@2x.png 2400w" sizes="(min-width: 720px) 720px"></figure><p></p><p><strong><strong>Revised Lock Process</strong></strong></p><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2023/01/Group-630265106@2x-3.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/01/Group-630265106@2x-3.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/01/Group-630265106@2x-3.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/01/Group-630265106@2x-3.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2023/01/Group-630265106@2x-3.png 2400w" sizes="(min-width: 720px) 720px"></figure><p></p><p><strong>Revised Unlock Process</strong></p><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2023/01/Group-630265107@2x.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2023/01/Group-630265107@2x.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2023/01/Group-630265107@2x.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2023/01/Group-630265107@2x.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2023/01/Group-630265107@2x.png 2400w" sizes="(min-width: 720px) 720px"></figure><p></p><p>You can also view Final Design Prototype on the link below</p><p><a href="https://youtu.be/fedykD5Nky8">https://youtu.be/fedykD5Nky8</a></p><p></p><p><strong>User Testing of Design</strong></p><ul><li>Post design completion, to verify the usability of the new Relay (Ignition) lock/unlock pages, we went to a transport hub based in Yeshwantpur, Bangalore.</li><li>There we tested out the new design with 5 randomly picked local truck owners. 3 of them had relay installed in their trucks while 2 were non-relay users of BlackBuck.</li></ul><h4 id="the-gist-derived-from-testing"><strong>The gist derived from testing</strong></h4><ul><li>Relay users went through the lock/unlock flow easily and by themselves.</li><li>They understood the color concept used for lock/unlock.</li></ul><p><a href="https://youtube.com/shorts/NyXWpiLCZuU?feature=share"><strong>User testing of Ignition Lock/unlock</strong></a></p><p><strong>One user commented while going through the flow:</strong> “Red matlab lock, green matlab unlock. Yellow bole to thoda thoda lock ya thoda thoda unlock.”</p><p>Translation: Red means lock, green means unlock. If its yellow its either a little locked or a little unlocked</p><p>The non-relay users were intrigued by the screens shown. After going through the flow, they started enquiry with us for relay Installations.</p><p><strong>A non-relay user commented:</strong> “Acha ye relay kitne ka aata hai?”<em>(how much does this relay cost?</em>)</p><p>We took these results as <strong>usability verified</strong> and finally handed over the design to the developers to be implemented.</p><h3 id="conclusion"><strong>Conclusion</strong></h3><p>The redesigning process taught us many things — how to identify the correct problem statement, dealing with each scenario is important, being helpful and transparent to users is the priority and user testing at an early stage will always give you the right feedback at the right time.</p><p>The project has so far resulted in a smooth adoption and understanding of relay lock/unlock features by the users. What earlier used to be somewhat hidden in between the other details of the truck, now appears upfront to the users when activated, giving users the clarity of what’s happening. Earlier, relay/lock unlock was treated as a complex thing (by the users) with unknown steps. Now, comprehensively it is getting treated like a simple tool that is easy to use and is involved in the day to day life of the user.</p><p>Thank you very much for taking your time out to read this. We hope you found it interesting. Cheers from BlackBuck!<br></p>]]></content:encoded></item><item><title><![CDATA[How BlackBuck's Telematics helps you keep a hawk-eye over your trucks - Part 1]]></title><description><![CDATA[<p>By Rishabhkumar Uday</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2022/12/image.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/12/image.png 600w, https://eng.blackbuck.com/content/images/2022/12/image.png 942w"></figure><p>According to Niti Ayog's report 40 lakh + trucks move around 70% of the domestic freight in India making trucking the main facilitator of the movement of goods and products in the country. Even though it plays a crucial role in the transportation sector, trucking is one of</p>]]></description><link>https://eng.blackbuck.com/how-gps-helps-you-keep-an-hawkeye-over-your-trucks/</link><guid isPermaLink="false">639c1c31fe02dd7bb54e7f20</guid><dc:creator><![CDATA[Blackbuck]]></dc:creator><pubDate>Fri, 16 Dec 2022 11:00:42 GMT</pubDate><content:encoded><![CDATA[<p>By Rishabhkumar Uday</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2022/12/image.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/12/image.png 600w, https://eng.blackbuck.com/content/images/2022/12/image.png 942w"></figure><p>According to Niti Ayog's report 40 lakh + trucks move around 70% of the domestic freight in India making trucking the main facilitator of the movement of goods and products in the country. Even though it plays a crucial role in the transportation sector, trucking is one of the least digitised industries and faces many challenges: delays, thefts, unloading at wrong locations etc. Ensuring that goods reach the growing consumer base on time, and in the proper condition requires constant technological advancements, especially, in the field of fleet tracking.</p><p><em><em>For a truck carrying a load worth lakhs, its safety becomes primary for both the truck owner and the transporter. That’s where the </em>Telematics commonly known as GPS <em>comes in. GPS for commercial vehicles are specially designed to help the fleet o</em>perators<em> track their fleet’s location and increase business efficiencies through its various features.</em></em></p><p>At BlackBuck, our mission is to solve every need of a trucker and we realized for fleet operators, intelligence on their truck movement can be a huge of sigh of relief and also help them make informed decisions. </p><p>In this blog, we will take you through the benefits of having a robust telematics solutions and in particular, will throw light on our 'Relay' feature specifically designed to prevent and protect fleet operators from truck thefts.</p><h3 id="the-many-facets-of-telematics">The many facets of Telematics</h3><p>BlackBuck's telematics solutions is tailor-made to help fleet operators to manage his fleet better. It enables the fleet operator aka a trucker to keep track of their trucks from loading to unloading points, ensures that safe driving practices are followed and truck thefts are prevented. Here are some of the benefits offered to our truckers -</p><ul><li>Tracking of live location of your truck</li><li>Minimization of calls to the driver for location updates</li><li>Tracking of fuel consumption based on the distance covered</li><li>Number of stops and distance travelled during the trip</li><li>Notifications of unusual stoppages and lengthy low network periods</li><li>Detailed reports of driving behaviors — over speeding, harsh braking/acceleration/cornering etc.</li></ul><h3 id="not-just-another-gps-">Not just another GPS!</h3><p>GPS devices in its existing avatar in the market has its limitations and they aren't really customised for Commercial Vehicles. BlackBuck understanding the need for customisation and wanting to bring value addition to a trucker's life, brought in a more holistic approach. We added intelligence layers that has its own set of secondary features making it a double threat to all kinds of ‘buri nazars’. One such essential feature is <strong><strong>Theft Protection (Relay) Device Controls and Installation</strong></strong>. Thefts of in-transit trucks carrying loads are a major reason why many truck owners are wary of sending their trucks on new routes. Even with the GPS device installed, the most they can do is track their trucks and call drivers for any unusual activities they notice.</p><blockquote><em>But with<em> the </em>added <em>Theft Protection (Relay)</em> layer<em>, a user can switch off the ignition of the truck from </em>our<em> app itself</em>, making<em> </em>it<em> a key</em> and must-have<em> feature in preventing truck theft.</em></em></blockquote><h3 id="what-is-a-theft-protection-relay-">What is a Theft Protection (Relay)?</h3><p>It is a device that is fitted into a truck for its ignition to be locked or unlocked (through the app) by the user. The user, in this case, is a Truck Operator. Theft Protection (Relay) is only useful if the truck has a GPS. The user finds out the location of the truck through the GPS and decides when he wants to lock/unlock the ignition. BlackBuck's telematics solution offers a trucker both the GPS device and an added protection layer through Relay. </p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2022/12/image-5.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/12/image-5.png 600w, https://eng.blackbuck.com/content/images/2022/12/image-5.png 1000w"></figure><h2 id="why-is-it-important">Why is it important?</h2><p>Theft Protection (Relay) acts as a security feature in possible cases of vehicle/load thefts. When trucks are parked in remote locations or have not moved in a long time, the truck owners can lock the ignition from the app and secure the trucks.</p><h2 id="how-does-ignition-lock-unlock-work">How does Ignition Lock/Unlock work?</h2><p>Once the user locks the ignition of a truck via the app, one cannot start the truck manually (key insert and turn to start). The only way the truck will start again is if the user on the other side unlocks the truck through the app.</p><h2 id="case-study">Case Study</h2><p>To demonstrate the critical role the Relay feature can play in preventing a theft, let us simulate a scenario for you:</p><p>Mohanlal is a small fleet operator in Kerala who owns three trucks. He also has three permanent drivers who have been working for him for over 7 years. Mohanlal has been in the business of trucking for the last 15 years and until 2 years ago was largely running his operations traditionally with barely any digital interventions. Cut to 2022, thanks to the digital push during the pandemic, he now has warmed up to smartphones. He extensively uses BlackBuck's telematics solutions. Today, all three of Lal's trucks are fitted with BlackBuck GPS and Relay, he has access to monthly reports of the driving patterns and monitors each of his truck's movement on his phone.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2022/12/image-1.png" class="kg-image" alt></figure><p>One day, one of Mohanlal’s loaded trucks was on its way to Hyderabad from Jaipur. On the second day of the trip, when the driver had parked the truck at a resting spot for the night, a thief conspired to steal it.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2022/12/image-2.png" class="kg-image" alt></figure><p>Fortunately, since Lal had the Relay device fitted with his GPS, he was able switch off the truck's ignition remotely through his phone whenever there was a prolonged period of stoppage. So, when his driver stopped at the resting stop, Lal by default activated the Relay feature. When the thief tried to start the vehicle multiple times he was unable to do so, leaving him baffled.  </p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2022/12/image-3.png" class="kg-image" alt></figure><p>Eventually someone noticed the thief on the truck and alerted the driver. The thief was caught and handed over to the police. </p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2022/12/image-4.png" class="kg-image" alt></figure><blockquote>“Thank God I had the Theft Protection Device installed in the truck. Every time the driver parks the truck at night, I switch off the ignition from my app. This way, I know no one can steal my truck.” says Mohanlal</blockquote><p>Trucks carrying goods are highly vulnerable to thefts. The incident described above is extremely common than one might think and the cost of losing a truck along with goods can put a trucker in debt for life and sometimes even out of business. To be able to control and protect the truck anywhere, anytime is a game-changer for a small fleet operator in India.</p><p>It is because of this that today, 1 in 5 trucks in India use BlackBuck's Telematics Solutions. The GPS device coupled with the Relay feature is helping lakhs of our truckers keep a close eye on their trucks and its safety. However, we have barely scratched the surface and we have been constantly improving our offerings and product design based on the engagement and user behaviour. </p><p>In our next and final installment in the telematics series, we will take you through at greater lengths about what went behind designing the Relay feature on the app, how does a user (fleet operator) interact / engage with this feature and how we have been improving user experience. </p><p><em>To be continued...</em>.</p><p></p><p> <br></p><blockquote><br></blockquote>]]></content:encoded></item><item><title><![CDATA[The Role of Data Science in Transforming Trucking]]></title><description><![CDATA[<p><em>By Deepak Warrier</em></p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2022/11/Cover-1.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/11/Cover-1.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2022/11/Cover-1.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2022/11/Cover-1.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2022/11/Cover-1.png 2400w" sizes="(min-width: 1200px) 1200px"></figure><p>With approximately 75% of the goods being transported using trucks  and with over 7 million trucks on road, the logistics economy in India is dominated by road freight. The small fleet operators who own less than 5 trucks are the backbone, the crucial players in the logistics</p>]]></description><link>https://eng.blackbuck.com/the-role-of-data-science-in-trucking-2/</link><guid isPermaLink="false">6368ac4ffe02dd7bb54e7eda</guid><dc:creator><![CDATA[Blackbuck]]></dc:creator><pubDate>Wed, 09 Nov 2022 07:37:56 GMT</pubDate><content:encoded><![CDATA[<p><em>By Deepak Warrier</em></p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2022/11/Cover-1.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/11/Cover-1.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2022/11/Cover-1.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2022/11/Cover-1.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2022/11/Cover-1.png 2400w" sizes="(min-width: 1200px) 1200px"></figure><p>With approximately 75% of the goods being transported using trucks  and with over 7 million trucks on road, the logistics economy in India is dominated by road freight. The small fleet operators who own less than 5 trucks are the backbone, the crucial players in the logistics economy. However trucking is a complex landscape and comes with its own challenges and inefficiencies.</p><p>Most trucks on an average run 15 - 16 days of the 30 billable days. 100% utilization of assets is practically impossible in this segment primarily because finding a load is difficult. It takes 1 to 3 days to get a load and a lot of trucks end up running empty on roads with no return loads. In addition unpredictable waiting times during loading/unloading and volatility in pricing pose fundamental challenges. Technology can play an immense role in  addressing  these challenges and inefficiencies plaguing the ecosystem.</p><p>Data Science, Machine Learning and AI have evolved significantly in the last decade, witnessing widespread mainstream deployments across industries and delivering true ROI. In logistics in particular, Data Science has emerged as a force multiplier in organizing and transforming the trucking domain in India. </p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://lh5.googleusercontent.com/DhAXCnaCd8VyrJ-621AS1RLvDvWZ6KXWuEmlhc2d4h-TqLXnnEKOTfP6KhkW09ZExoQ2k7-Sk-EMElMqy5d0_I82P7JvbEFTKXBOPk79oAtuYtG4yYYi8UKpKARfxnR_XqE9_s9bkmvAAsOVLvWFNQf-DHs0m2kHcb8BDQDYj_2CbxIm5C7_Vk0ysM2JaQ" class="kg-image" alt></figure><p>To understand the deep impact of the role of Data Science in trucking, let us look at two scenarios. A Trucker taking a Full Truck Load (FTL) typically travels an average of 600kms per trip moving goods between states over 2-4 days.  Scenario 1 - a trucker is moving coal from Kandla, Gujarat to Muzaffarnagar, UP covering 1200 kms over 4 days. Upon arrival at Muzaffarnagar, the truck takes anywhere between 3-12 hours for unloading the goods depending on queues at the destination warehouse. Post unloading, the trucker now starts calling his/her contacts to seek a good return load for the next trip. In a traditional and unorganized setting, it is normal for a trucker to wait 12-48 hours to confirm the next load and also end-up traveling at least 50-150 kms for the next load aka ‘dry run’. Which means after reaching Muzaffarnagar, a typical return loop starts from  Karnal, Haryana 80 km away from Muzaffarnagar. </p><p>Let’s contrast the above example with the ideal behavior on a technology platform powered by data and algorithms. With Data Science, we can build models to anticipate when a trucker will finish his delivery and need another load on his return route. The platform can upfront recommend relevant loads before the trucker even completes his unloading as opposed to the offline world where a trucker has to call and look for the next load after he finishes unloading. </p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://lh5.googleusercontent.com/B10NYjt31UWHXqrrb-z7LHEGD3LDFSDVZulk4vlWBs14YdFZ64gkuTQ0Quj4rrr1sbTcrYAECtpnZzpZJrgasW_jKycnOZVhd1_cvKx2mit_RUZ0c6lqPEC1hAe0llz7i_5M3Vy-D_dSkQepmAIfbwchU4JrsdWiJyFxqcpT2clhg7MLOSOQr95A3lrAfQ" class="kg-image" alt></figure><p>Now in scenario 2, if the same truck traveling from Kandla to Muzaffarnagar is fitted with a GPS device it can send GPS data-pings every 10 secs triggering a comprehensive suite of Machine Learning algorithms. The Data science efforts begin with endowing meaning to the raw GPS trajectory that is being streamed from the devices onto the digital platform’s data lakes. As it observes the trajectory of GPS pings moving away from Kandla and approaching Muzaffarnagar, it can continuously predict the potential state of the truck. It can deploy deep learning based Spatial-temporal sequence models to understand if the truck is still  ‘in-transit’? or has it entered  the ‘unloading-complete’ state?  or has it moved into ‘is-available  for the next load’ state? Based on the model's confidence on whether the truck is going to be available soon, an efficient match-making engine can proactively recommend new loads as per the truck’s proximity and relevance. </p><p>These recommended loads are generated via relevance models which are trained over trucker’s historical click-stream data. Machine learning models pick up signals every time a trucker engages with the platform to search for loads. The model learns to decode these signals to build a profile of the truckers’ latent preference across various entities - geographical lanes, product-types, price-points, shippers, ratings etc. </p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://lh5.googleusercontent.com/Xgf7KKGeMmJowUbdEOOFyA2WXupBA6rWgdOnlUvkn54QYEOwz9ccU_GRzuHszm-rdSanTrtlwktslYSsREcek-bIK9wxQWcoRwBOVKI8xAlgQqdI_MnLDhQLoAo3ARMOqgVU1vB3Uzi9Jal75NvEjmJC9ZeEsw2XcK3r1b18jwmQW8NekjXPnq6Fm7PPDA" class="kg-image" alt></figure><p>This profile creation helps in optimal allocation and distribution of relevant loads to the right type of trucker. DS deploys optimization algorithms in frequent intervals  to optimally distribute and allocate the fresh loads among truckers based on availability, proximity and relevance constraints.</p><p>The end-goal is any trucker who is engaging on the platform is already aware of his next load even before he completes his unloading. These recommendations are optimized to create greater discovery of loads and at the same time significantly reduce the idle time of a truck and cut-down potential dry-run kms. It is aimed at improving revenues as well as reducing operational costs for a truck operator. A digital freight network that is well optimized can empower a truck operator to better utilize his assets; reduce idle time by 40% - 50%, and improve his earnings by 20% to 30%.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://lh4.googleusercontent.com/UlMwpldfN9xrt3FxmHnXH6RDK1BgRPtXXMxCRPPPMdaiwdm1MIelltRbu2zXwVPTCJtG0IkVqJrbhGrsDL4m-vV_7e6RjI25hYqAQGiBe2VjxP5tDvIXIkkOMvUaV0C5UvTsW7_sCNZJ5CfoV_zW9uavKH1zyZTW4_KxaxyFLn0in7DXHrgvmlHJ94w4Gg" class="kg-image" alt></figure><p>However, Data science and machine learning modules need to constantly evolve.  Algorithms and modules must be continuously re-calibrated and re-optimized based on both implicit and explicit feedback obtained via customers, in this case truckers who respond to the algorithm outputs. This ensures that  the match-making engine is consistently able to better match the right trucker with the right load at the right time improving the rate of deal-closures on a platform.</p><p></p><p><em>Blog design: Puranjai Pratap</em></p><p>This article was originally published in <a href="https://cio.economictimes.indiatimes.com/news/strategy-and-management/the-role-of-data-science-in-transforming-the-indian-trucking-industry/94548223">ET CIO </a><br></p>]]></content:encoded></item><item><title><![CDATA[Why humanization and localization of product is critical in fueling digital inclusion: PART II]]></title><description><![CDATA[<p>By Greeshma Rawat &amp; Devrat Singh</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2022/10/Cover-2-1.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/10/Cover-2-1.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2022/10/Cover-2-1.png 1000w, https://eng.blackbuck.com/content/images/2022/10/Cover-2-1.png 1500w" sizes="(min-width: 1200px) 1200px"></figure><p><strong>Recap</strong></p><p><a href="https://eng.blackbuck.com/why-humanization-and-localization-of-product-is-critical-in-fueling-digital-inclusion/">Part 1 </a>of this blog talked about the growing need for localization of our product. We found out what our users needed and validated it through usability testing and user research. The end goal was for our users to be able to use</p>]]></description><link>https://eng.blackbuck.com/why-humanization-and-localization-of-product-is-critical-in-fueling-digital-inclusion-part-ii/</link><guid isPermaLink="false">635a5c6ffe02dd7bb54e7d43</guid><dc:creator><![CDATA[Blackbuck]]></dc:creator><pubDate>Fri, 28 Oct 2022 04:30:00 GMT</pubDate><content:encoded><![CDATA[<p>By Greeshma Rawat &amp; Devrat Singh</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2022/10/Cover-2-1.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/10/Cover-2-1.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2022/10/Cover-2-1.png 1000w, https://eng.blackbuck.com/content/images/2022/10/Cover-2-1.png 1500w" sizes="(min-width: 1200px) 1200px"></figure><p><strong>Recap</strong></p><p><a href="https://eng.blackbuck.com/why-humanization-and-localization-of-product-is-critical-in-fueling-digital-inclusion/">Part 1 </a>of this blog talked about the growing need for localization of our product. We found out what our users needed and validated it through usability testing and user research. The end goal was for our users to be able to use our product on their own and with ease.</p><h3 id="getting-down-to-the-brass-tacks-of-product-localization">Getting down to the Brass tacks of Product Localization</h3><p>In this second part, we aim to go deeper, give you a sense of what product localization really means and take you through the nuances and challenges while creating our product copy - easy, conversational and colloquial. </p><h2 id="how-did-we-solve-the-problem">How did we solve the problem?</h2><p>Solving this problem statement was a daunting task with over 30 thousand strings to be translated into four new languages for over 1000 app screens. And that was just the output displayed to the user. There were information input flows across the app that needed to support the same languages in the keyboards, character limits and suggestions for these inputs. All of this was broken down into multiple steps that eventually took us almost 8 months to solve.</p><h3 id="step-1-establish-the-product-voice">Step 1: Establish the Product Voice</h3><p>The first and foremost requirement was to figure out the Voice of our Product. Based on the user's needs, we wanted our tone to be conversational, colloquial and our language to be clear and precise. </p><ol><li><strong>Day-to-day conversational</strong></li></ol><p>We wanted to speak to them just like they would in day-to-day conversations with a friend, while also keeping it crisp and contextual.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2022/10/Group-630265174-1.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/10/Group-630265174-1.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2022/10/Group-630265174-1.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2022/10/Group-630265174-1.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2022/10/Group-630265174-1.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><em>After truckers (our users) call transporters for loads: The changes here are subtle but effective. We made the feedback copy simpler, crisper and more specific to our users' problems.</em></figcaption></figure><p>2. <strong>Transparent</strong></p><p>It is very important to give the users the right information (without alarming them) to gain their trust.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2022/10/Group-630265183.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/10/Group-630265183.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2022/10/Group-630265183.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2022/10/Group-630265183.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2022/10/Group-630265183.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><em>When a user buys a FASTag: In the older version, there was no single screen with step by step information on the transaction process. The new version helps identify all the steps from making a payment to the delivery and activation of the FASTag and gives the all the necessary information on the same page.</em></figcaption></figure><p>3. <strong>Helpful</strong></p><p>We do not want the users to think they do not have enough information to make smart decisions for themselves. We want to help them understand why they are doing what they are doing!</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2022/10/Group-630265184--1-.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/10/Group-630265184--1-.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2022/10/Group-630265184--1-.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2022/10/Group-630265184--1-.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2022/10/Group-630265184--1-.png 2400w" sizes="(min-width: 720px) 720px"><figcaption><em>Truck ignition lock feature in GPS: Version 1 was information overload. Hence for the new copy, we fixed the information architecture, giving the key information the users needed first.</em></figcaption></figure><h3 id="step-2-setup-a-process">Step 2: Setup a Process</h3><ul><li>Language Audit of the app to identify and correct the gaps</li><li>Hired a localization agency for translations</li><li>Integration with a localization tool to streamline the process</li><li>Usability testing for every update - Design &amp; Copy</li></ul><h3 id="step-3-build-product-capabilities">Step 3: Build Product Capabilities</h3><p>With all the processes in place, we moved on to building the translation capabilities throughout the app. These involved 2 parts:</p><ul><li>Built translation capabilities for all the texts across the app (all information outputs)</li><li>Built flows for vernacular keyboards and translated suggestions while searching (all information inputs)</li></ul><p>Since we are an app with multiple categories, this was done one category at a time and took a total of 4-5 months.</p><h3 id="step-4-collect-user-feedback">Step 4: Collect User Feedback</h3><p>Post the launch of the first set of translations, we also started conducting user immersion sessions in parallel to take feedback on the translation quality. This was done on a large scale with over 100 users. With increased interaction with our users, we learned not to take our understanding of things as absolute. Some of the learnings were:</p><ul><li>The language has to be at its simplest and in a way they understand. </li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2022/10/Group-630265131.jpg" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/10/Group-630265131.jpg 600w, https://eng.blackbuck.com/content/images/size/w1000/2022/10/Group-630265131.jpg 1000w, https://eng.blackbuck.com/content/images/size/w1600/2022/10/Group-630265131.jpg 1600w, https://eng.blackbuck.com/content/images/size/w2400/2022/10/Group-630265131.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><em>Feedback from a trucker after his a call to the transporter: While the copy was simple before, we found that most truck owners used the word ‘Deal’ for their truck being placed or not. The new copy is crisper and speaks the language of a truck owner. No frills and on-point.</em></figcaption></figure><ul><li>Since we live in a country with diversity in culture and language, the understanding of certain words and phrases in different parts of the country is not the same. It was important for the copy to be colloquial and contextual.  Example - Words like Bid and POD (Proof of delivery) are understood by most people from the South of India. But in the North, Boli (बोली) for Bid and Pohoch (पोहोच) for POD are more commonly used. For users with Hindi as their app language, we decided to use these words instead.</li><li>The user feedback also brought forth another interesting observation. We realized that we need not do a pure translation of every word. In fact, some words and phrases are more commonly used in English (even by non-English speaking people)</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2022/10/Group-630265149.jpg" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/10/Group-630265149.jpg 600w, https://eng.blackbuck.com/content/images/size/w1000/2022/10/Group-630265149.jpg 1000w, https://eng.blackbuck.com/content/images/size/w1600/2022/10/Group-630265149.jpg 1600w, https://eng.blackbuck.com/content/images/2022/10/Group-630265149.jpg 2048w" sizes="(min-width: 720px) 720px"><figcaption><em>Some commonly used words are better transliterated and for some, an easier alternative of the native language should be used</em></figcaption></figure><h3 id="step-5-introduce-language-selection-option">Step 5: Introduce Language Selection Option</h3><p>Finally, after all this, it was time to introduce the language selection option to the users across the user journey. We introduced the language selection screen in the signup flow for the new users and on the home screen for old users. The hierarchy of language options on the app was based on the city of the user with English always being the second option. For example, a user in Kanpur would see Hindi first, English second, followed by other languages.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2022/10/Group-630265143.jpg" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/10/Group-630265143.jpg 600w, https://eng.blackbuck.com/content/images/size/w1000/2022/10/Group-630265143.jpg 1000w, https://eng.blackbuck.com/content/images/size/w1600/2022/10/Group-630265143.jpg 1600w, https://eng.blackbuck.com/content/images/size/w2400/2022/10/Group-630265143.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption><em>Drop down of the languages and small nudges of the language options were provided across the app for the users to choose / shift to their language of convenience.</em></figcaption></figure><h3 id="what-was-the-outcome">What was the outcome?</h3><p>Gathering such fine insights and customizing our product for non-digital natives helped us gain tremendous trust in the trucking community. We spent several months reiterating the smallest of the product features based on our user feedback, their preferences and behaviors. The outcomes that we have been seeing since has been very inspiring. Here’s the impact in numbers:</p><figure class="kg-card kg-image-card"><img src="https://lh4.googleusercontent.com/to3ZGNHGF81T0I9q1eqej5E_Q9fHEEZEQsR5IkDmHlHUom8hftds5BLbWI2_7uqiFWADsetoaBUPYe_kkOn1IO0U1QrOllfuZsfBHMzuIQ7Hy3OdBHDaWnaimvMe5E3J_sRwMem46R0dW02eVjHZp0eyB0eAeZUnVn1tY3kheFWlbWjSTbLMrD54Tw" class="kg-image" alt></figure><h2 id="conclusion">Conclusion</h2><p>Working on a helpful and engaging product experience while maintaining consistency in language and tone is an ongoing process. With the processes that we have established, we hope to improve our conversation with our users at every stage.  The learnings, the un-learnings and grassroot level impact have been able to create so far has been very encouraging for BlackBuck; making us believe that we are moving in the right direction in our journey of building tech for Bharat and digitizing the trucking ecosystem at scale. </p><p>But this is just the tip of the iceberg. We are geared and excited to innovate, build and design several more compelling products that will drive the future of trucking... </p><p><em><strong>Blog design by Puranjai Pratap</strong></em></p><p><em>Read Part 1: <a href="https://eng.blackbuck.com/why-humanization-and-localization-of-product-is-critical-in-fueling-digital-inclusion/">https://eng.blackbuck.com/why-humanization-and-localization-of-product-is-critical-in-fueling-digital-inclusion/</a><br></em></p><p><br></p>]]></content:encoded></item><item><title><![CDATA[Why humanization and localization of product is critical in fueling digital inclusion: PART 1]]></title><description><![CDATA[<p>By Greeshma Rawat &amp; Devrat Singh							</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2022/10/Cover-2.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/10/Cover-2.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2022/10/Cover-2.png 1000w, https://eng.blackbuck.com/content/images/2022/10/Cover-2.png 1500w" sizes="(min-width: 1200px) 1200px"></figure><h2 id="introduction">Introduction</h2><p>India is predominantly a vernacular country. Out of its 1.4 billion population, only 140 million people (~10%) speak English and less than 0.1% of the total population speak English as their first language in India.</p><p>Language today is arguably the biggest</p>]]></description><link>https://eng.blackbuck.com/why-humanization-and-localization-of-product-is-critical-in-fueling-digital-inclusion/</link><guid isPermaLink="false">6343b313fe02dd7bb54e7bd5</guid><dc:creator><![CDATA[Blackbuck]]></dc:creator><pubDate>Mon, 10 Oct 2022 07:05:13 GMT</pubDate><content:encoded><![CDATA[<p>By Greeshma Rawat &amp; Devrat Singh							</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://eng.blackbuck.com/content/images/2022/10/Cover-2.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/10/Cover-2.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2022/10/Cover-2.png 1000w, https://eng.blackbuck.com/content/images/2022/10/Cover-2.png 1500w" sizes="(min-width: 1200px) 1200px"></figure><h2 id="introduction">Introduction</h2><p>India is predominantly a vernacular country. Out of its 1.4 billion population, only 140 million people (~10%) speak English and less than 0.1% of the total population speak English as their first language in India.</p><p>Language today is arguably the biggest critical barrier to digital inclusion in India. While the country is experiencing a digital revolution, is digital truly inclusive in India? Despite the country being multi-lingual, English continues to be the dominating language of most digital products that are available today and some of the devices in the market also don’t support vernacular fonts creating an added layer of complexity in building apps for Bharat. </p><p>Legacy industries particularly such as transportation and Logistics are the types of industries where the literacy of English is well below the standard 10%. At the same time, these industries are undergoing digital transformation with mandates like Fastag, GPS coming into effect. If a trucker sitting in a remote village needs to adopt to digital, he needs a trustworthy digital partner, an app that is easy to use, technology that is empathetic to his limitations and most importantly is in his language of convenience. </p><p>Truckers in India are the last bastion to be included in the digital economy. He is a different user from a regular eCommerce consumer, localization and humanization of the user product experience is extremely paramount in gaining the trust of the trucking community. And this is what we have been doing at BlackBuck; continuously understanding the nuances of the trucking ecosystem to customize and better our product offerings. The journey hasn't been easy though! We made mistakes, we listened, we learnt and we went back to the drawing board, when we had to.</p><p>In this two-part blog series, we attempt to give you a peek into what goes behind designing tech products for the underserved small fleet operators of India and the several insights that emerge along the way... <br><br><strong>A Typical BlackBuck User and His Needs</strong><br>First, let’s understand the demography that is using our BlackBuck app. A typical user in this highly unorganized and undigitized industry has the following persona:</p><ul><li>Male, typically in is 30s/40s. </li><li>Class 8 or 10 graduate. </li><li>Not tech savvy but has a basic understanding of the core functionalities like ‘scroll, search etc., that are common across apps.</li><li>English is not his first language. Only a handful in his community / peer group can read and write basic words in English.</li><li>On an average receives or makes 50+ work calls a day. Has limited mental bandwidth to ‘explore’ apps.</li><li>Trust in online platforms is very low and the onus lies on the tech platform to gain his trust.<br></li></ul><figure class="kg-card kg-image-card kg-width-wide"><img src="https://lh4.googleusercontent.com/g6JNOODW_T9jib4t5v-8eXngVdyNNaNeZgN3Mo7WHOVOwmfOiAwjhHbm_nOUMEo7LXt2V2gQqwfxed0l3A3friygqdIWAiWUDimAEC1s-Bsi_13yot0QwIWlgvTAgdVXqRmB1bEILUFEtHrAuuXTQkJfKocf871iq7rPU-elC2qzCESovBXdTZd9Ew" class="kg-image" alt></figure><p>Such a user needs a lot of convincing and handholding throughout the adoption journey. And if this needs to be done at scale it requires a combination of human touch and a superior product experience. On the one end, we laid the foundation for a large distribution network with people deployed across 14,000 pin codes of the country and on the other, an app that is highly customized for a trucker. A fleet operator, unlike your urban consumer, is not willing to invest in a product or a service for the sake of convenience. This customer is struggling day in &amp; day out to make his ends meet, he will try only those products which can make his economics improve.</p><p>The challenge in product designing was always about whether we are solving the right problem for the truckers which helps in improving their business. Are we addressing the trust factor? Is our service reliable, that works 24*7? Can my customer reach out to my team even at 3.00 am in the morning? And finally, is my product in their language of convenience?</p><h2 id="how-did-we-first-find-out-about-the-need">How did we first find out about the need?</h2><p>The above discussion makes a solid case for the Humanization and Localization of the content. This was something that was also consistently observed by our Product team in all their User Immersion sessions. Even our ground sales team had given us input that a decent chunk of users was having a tough time using the app in English</p><p>We also found some users who had learnt the buttons and sections by color and location on the screen.</p><ul><li>This was still a hacky solution for categories which are transactional in nature (For example - Features like recharge that have fixed steps and can be memorized.)</li><li>In an exploratory category like a Marketplace, this method was falling flat and thus adoption was suffering.</li></ul><p>All this was further supported by a few data points like:</p><ul><li>Digitally acquired customers from vernacular ads had a higher drop-off rate after installation because while the ad was in their language, the app wasn’t.</li><li>Outbound User Telecalling activities showed that the low adoption of the users was primarily because of the language barrier.</li></ul><h2 id="how-did-we-validate-the-requirement">How did we validate the requirement?</h2><p>While the inputs were coming from all directions, it was important for our product team to validate these requirements at scale and then lay down the path ahead.</p><p>The first part was verifying if this was the user's conscious need. Were they already phrasing their problem statement into a need for this feature? Or was this a latent need that would solve the issues of the user?</p><p>Based on extensive user research, the team was able to identify that this was a clear need for ~40-50% of the users. However, they were not able to put this exact solution requirement into words. Thus, we needed to revalidate the same with some sample designs!</p><p>The team then identified the top primary languages for ~95% of our user base. These came out to be Hindi, Tamil, Telugu, Kannada and a few were comfortable in English. We built sample screens for these users and did extensive user immersion with over 50 users across geographies in the North, South, East and West.  </p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2022/10/Group-630265168.jpg" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2022/10/Group-630265168.jpg 600w, https://eng.blackbuck.com/content/images/size/w1000/2022/10/Group-630265168.jpg 1000w, https://eng.blackbuck.com/content/images/size/w1600/2022/10/Group-630265168.jpg 1600w, https://eng.blackbuck.com/content/images/size/w2400/2022/10/Group-630265168.jpg 2400w" sizes="(min-width: 1200px) 1200px"><figcaption>Multi-lingual sample screens that were piloted</figcaption></figure><p>When we piloted this in the market, we received positive feedback from the users. Truckers were elated to finally be able to use a product that solved THEIR problems in THEIR language, all the while being easy to use and understand. The users also liked the fact that the copy style was more conversational and personal and felt less like a machine that was communicating to them!</p><p>One prime example of the power of localization was seen during the following meeting with a fleet operator:</p><p>We visited a truck owner, whose daughter helped him out with the business. We attempted an experiment with this duo. We showed the trucker the BlackBuck app in English and he was quick to respond - <em>“I can't read English. Please explain it to my daughter</em>”. We then showed a vernacular translated sample screen to the daughter. As soon as the trucker saw the app screen in vernacular, he became interested in the app. He immediately took away the phone from his daughter and started using it himself. He then went on to ask questions about our service and product.</p><figure class="kg-card kg-image-card"><img src="https://lh3.googleusercontent.com/JlYYYTuAEjAzPLch0piibWMs3KnOHivJ0HilpCE1Qxsxkf22XMDa5g4c7Pw6MZF2cSC0m_LEuO-veDUIuVYpXVlwEhIR2X9i3plx_C0vPmh7QA1WMXH2tY65VEaNkupo2dIJVQunmFgUyKA6rIs4HkBNksJxXaRiqbwHg5pzXu8xw3olb-M0lv-tig" class="kg-image" alt></figure><p><strong>Rajendra Kumar who was previously dependent on the younger generation when it came to managing tech was now included in the digital realm thanks to localization. </strong></p><p><strong>Plan of Action…</strong></p><p>After we had validated the needs of the users, the next step was to sketch a plan of action for the product copy to be unified in all languages and tones. It wasn't enough to just launch our products in vernacular languages, we needed to go deeper with our product localization. We wanted our product to speak to the users the way they talk on an everyday basis - simple, informal, conversational, contextual and a mix of English with their local language. Hinglish, Kanglish, Tanglish - you name it, we created multiple combinations of copy to make it highly relatable and convenient to use. </p><p>How did we do it? It was a lengthy process that yielded the results we were looking for. Stay tuned to find out...</p><p><strong><em>Blog design by Puranjai Pratap</em></strong></p><p><strong>Part 2 coming soon!</strong><br></p><p></p>]]></content:encoded></item><item><title><![CDATA[Stepping Up In Times Of Need: COVID Support Care]]></title><description><![CDATA[Dealing with a once-in-a-lifetime pandemic together as a team.]]></description><link>https://eng.blackbuck.com/stepping-up-in-times-of-need-covid-support-care/</link><guid isPermaLink="false">6102478bfe02dd7bb54e7b54</guid><category><![CDATA[Life@BlackBuck]]></category><category><![CDATA[culture]]></category><category><![CDATA[work life]]></category><dc:creator><![CDATA[Aparna Sekhar]]></dc:creator><pubDate>Thu, 29 Jul 2021 07:39:41 GMT</pubDate><content:encoded><![CDATA[<p>This once-in-a-lifetime pandemic has had us dealing with unexpected losses, being care-givers, battling uncertainties &amp; anxieties and managing those blurring lines between work &amp; life and trying to figure out that balance.</p><p>For an organization, these changing realities of employees calls for a closer examination of the support structures in place for their team.</p><p>Here’s how the People Function stepped up to address employee concerns:</p><p><strong>A.     Dedicated COVID Helpline</strong></p><p>Rapid response team of volunteers from Admin &amp; HR Teams to assist employees for any COVID-related emergencies – ranging from doctor-on-call support to assisting in procurement of oxymeters &amp; oxygen concentrators for those affected to hospital bed booking</p><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2021/07/image.png" class="kg-image" alt></figure><hr><p><strong>B.     Tele-Consultation Support</strong></p><p>With reluctance kicking in to visit health centers, comprehensive health check-ups and care for other non-critical, lifestyle diseases has taken a back seat. This led to the launch of a company-sponsored tele-consultation support 24*7 for employees and their family</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2021/07/image-1.png" class="kg-image" alt><figcaption>Teleconsultation Support For Employees &amp; Families&nbsp;</figcaption></figure><hr><p><strong>C.     Vaccination</strong></p><p>With vaccination emerging as a key shield to strengthen the fight against pandemic, awareness campaigns were initiated in early April org-wide via the “This Is Our Shot” campaign.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2021/07/image-2.png" class="kg-image" alt><figcaption>Glimpses from the Vaccination Drive conducted for employees and their family members</figcaption></figure><p>In major cities, tie-ups with hospitals were explored to ensure access for not only our team members but also our customers including truck drivers.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2021/07/image-3.png" class="kg-image" alt><figcaption>Vaccinating The Communities We Serve!&nbsp;</figcaption></figure><p>Parallely, recognizing that people managers are key influencers who can be leveraged to encourage employees especially in junior levels to overcome hesitancy to vaccine and be sensitized on the need for protection, people managers are looped in to ensure a safe, vaccinated team.</p><hr><p><strong>D.     COVID Suraksha Campaign</strong></p><p>We power 30% of the trucks running on our National Highways and playing a critical role in the logistics sector, the backbone of India Inc. Even as we continued to work during the pandemic, for our on-ground team members, it was critical that they go out and work on the field to get the economy moving.</p><p>A comprehensive assistance package was designed keeping these COVID warriors in mind – COVID Suraksha program.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2021/07/image-4.png" class="kg-image" alt><figcaption>COVID Suraksha Comprehensive Package</figcaption></figure><blockquote><strong><em>                                 “When Times Change, So Must We”</em></strong></blockquote>]]></content:encoded></item><item><title><![CDATA[Securing Android Boss App]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2021/03/android_security.jpeg" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2021/03/android_security.jpeg 600w, https://eng.blackbuck.com/content/images/size/w1000/2021/03/android_security.jpeg 1000w, https://eng.blackbuck.com/content/images/2021/03/android_security.jpeg 1280w" sizes="(min-width: 720px) 720px"></figure><p>Mobile apps have become a new way of interfacing with products. Securing your mobile apps is as important as coding it the right way. The users share personal data with mobile apps and it is our duty to our customers to keep this information secure. There are many tools available</p>]]></description><link>https://eng.blackbuck.com/encrypting-android-shared-preferences/</link><guid isPermaLink="false">5f982f7b616671064aa60d7f</guid><dc:creator><![CDATA[Vipin Kumar]]></dc:creator><pubDate>Mon, 03 May 2021 10:58:52 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2021/03/android_security.jpeg" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2021/03/android_security.jpeg 600w, https://eng.blackbuck.com/content/images/size/w1000/2021/03/android_security.jpeg 1000w, https://eng.blackbuck.com/content/images/2021/03/android_security.jpeg 1280w" sizes="(min-width: 720px) 720px"></figure><p>Mobile apps have become a new way of interfacing with products. Securing your mobile apps is as important as coding it the right way. The users share personal data with mobile apps and it is our duty to our customers to keep this information secure. There are many tools available to the hackers which make the apps vulnerable if the right security measures are not put in place and therefore application security can no longer be an afterthought but a foremost one. Without the right security measures the entire business is vulnerable to huge losses.</p><p>App security can be divided into two parts. Securing Communication with the backend and securing the data stored on the device. Below are a few security measures we have used in Boss App.</p><h2 id="securing-communication">Securing Communication</h2><h3></h3><h3 id="ssl-pinning">SSL Pinning</h3><p>Man in the middle attacks are common attacks that can compromise user's private data. In order to prevent MITM attacks certificate validation can be implemented. However this type of validation is basic and does not protect apps against many types of MITM attacks.</p><p>SSL Pinning is a full proof method to avoid MITM if configured correctly. In this approach the connection between the client (i.e. Mobile App, Web App) and the Server is validated even after SSL handshaking. The client app developers embed / pin a list of trusted certificates during development. These trusted certificates will be compared with Server certificates during runtime. If there is a mismatch between Server and Client Side certificates, then the connection will be disrupted and no further communication will happen between that client and the server. Once SSL pinning is enabled, it will be impossible to use proxy servers like Charles Proxy to intercept the traffic between the client app and server to see HTTP requests, responses and headers as the client app is itself verifying the root certificate and will not accept Charles Proxy certificate and will fail the connection.</p><p>SSL Pinning isn’t only effective for Network calls but it also safeguards the webviews present in the Client app. Once enabled, the same certificate validation logic will apply for all the web resources which will be loaded in the webviews. That way it’ll be difficult for an attacker to load any malicious website in the Client app’s webview by tampering it. Make sure that you review your SSL pinning configurations </p><p>SSL pinning is a must-have for modern applications that respect user data security and privacy and is an essential part of OWASP guides for several platforms. Mostly, because Public Key Infrastructure design is not perfect and has some weaknesses(public/private key rotations). </p><h3 id="disabling-cleartext-traffic">Disabling cleartext traffic</h3><p>Cleartext traffic means when data is transferred over the internet using http instead of https. <br>This is dangerous as the network calls can be intercepted and the data being transferred can be extracted and misused. This puts the user’s private data at risk.<br></p><p>HTTPS uses Transport Layer Security (TLS) to encrypt and protect user data.<br><br>So when sending data like<br>				“Hello world”</p><p>when intercepted might look something like<br>				“NP+497DYy2VdhAD9tYi/yQ==”</p><p>Cleartext traffic is disabled by default. This should not be enabled unless there is a real use case.</p><h3 id="securing-api-keys">Securing API keys</h3><p>Many times mobile applications depend on third party SDK where we need to pass secret credentials or API keys to authenticate their account. In most cases, app developers hardcode these keys in either app Constant or gradle files. This way API keys can be compromised as anyone can decompile your apk and find these hardcoded keys in code.</p><p>For the same reason, hard-coding API keys/credentials into a mobile app is widely considered to be a security flaw.</p><p>In Android, there are different ways to handle this issue:</p><ol><li>Store keys in Encrypted SharedPreference</li><li>Public/Private encryption of keys</li><li>Using NDK</li></ol><h2 id="securing-data">Securing Data</h2><p></p><h3 id="disable-access-for-rooted-devices">Disable access for rooted devices</h3><p>Rooting/Jailbreaking is a way of gaining superuser access on the device. This allows users to access any app’s private data and also edit things like user preferences and SQL databases.</p><p>To prevent misuse of the user’s data we detect if a device is rooted and disable access to the app in that case.</p><h3 id="shared-preferences-encryption">Shared preferences encryption</h3><p>Shared preferences in Android is a quick and easy way to store small amounts of data like user preferences. It is a simple xml based storage mechanism and the files are stored in your app’s data folder, which means that no other process on the device can access them without superuser access. </p><p>But when someone has superuser access, these files can be accessed and data can be read or updated. For example some IDs which are auto-incremented on the backend can be used to perform api calls and modify another user’s data. Also it can be edited to allow users access to features that they should not have.</p><p>To protect user data and prevent any sort of misuse we have started encrypting shared preferences.</p><h3 id="database-and-query-encryption">Database and Query Encryption</h3><p>SQLite is widely used in most apps to store app related data. This data will be exposed if the device is rooted. For this reason it is advised to encrypt the data stored on the database. There are libraries available which can encrypt data stored on the database.</p><p>Another vulnerability with plain text databases is the risk of SQL injection attack where an attacker can execute or store malicious data in your database. With an encrypted database they won’t be able to perform SQL injection attacks.</p><p>Keeping raw SQL statements in your code is another potential security risk. If an attacker reverse engineers your app’s apk, they can potentially get the access of these plain text SQL queries. Thus it will allow them to modify their SQL Injection scripts to compromise your data. Instead of using RAW SQL statements, if we use PreparedStatements and helper functions provided by SQLiteDatabase for performing all types of CRUD operations, then it’ll be difficult for the attackers to understand your schema and query structures.</p><p><br>If you implement the above security measures in your application with the right configurations in place then your app will pass all basic security audits which means basic security for app network data and app storage data.</p>]]></content:encoded></item><item><title><![CDATA[Trucking Marketplace: The BlackBuck Product Challenge!]]></title><description><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://eng.blackbuck.com/content/images/2021/03/New-Top-Header.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2021/03/New-Top-Header.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2021/03/New-Top-Header.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2021/03/New-Top-Header.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2021/03/New-Top-Header.png 2400w"></figure><h2 id="what-is-a-marketplace">What is a marketplace?</h2><p>An online marketplace does the job of connecting sellers with buyers and gives value to both the sides. A seller gains visibility and trust easily in a marketplace, thus helping him drive sales, while the buyer gets multiple seller options and transparency, helping him with his</p>]]></description><link>https://eng.blackbuck.com/trucking-marketplace-the-blackbuck-product-challenge-2/</link><guid isPermaLink="false">60582792616671064aa62961</guid><category><![CDATA[Product Management]]></category><category><![CDATA[Marketplace]]></category><dc:creator><![CDATA[Athira Warrier]]></dc:creator><pubDate>Thu, 08 Apr 2021 06:09:40 GMT</pubDate><media:content url="https://eng.blackbuck.com/content/images/2021/04/Group-1672-1.png" medium="image"/><content:encoded><![CDATA[<figure class="kg-card kg-image-card kg-width-full"><img src="https://eng.blackbuck.com/content/images/2021/03/New-Top-Header.png" class="kg-image" alt="Trucking Marketplace: The BlackBuck Product Challenge!" srcset="https://eng.blackbuck.com/content/images/size/w600/2021/03/New-Top-Header.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2021/03/New-Top-Header.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2021/03/New-Top-Header.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2021/03/New-Top-Header.png 2400w"></figure><h2 id="what-is-a-marketplace">What is a marketplace?</h2><img src="https://eng.blackbuck.com/content/images/2021/04/Group-1672-1.png" alt="Trucking Marketplace: The BlackBuck Product Challenge!"><p>An online marketplace does the job of connecting sellers with buyers and gives value to both the sides. A seller gains visibility and trust easily in a marketplace, thus helping him drive sales, while the buyer gets multiple seller options and transparency, helping him with his buying decisions. Flipkart, Myntra are some examples of a product marketplace, while Ola, Swiggy, Oyo are services marketplaces.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2021/03/marketplace.png" class="kg-image" alt="Trucking Marketplace: The BlackBuck Product Challenge!" srcset="https://eng.blackbuck.com/content/images/size/w600/2021/03/marketplace.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2021/03/marketplace.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2021/03/marketplace.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2021/03/marketplace.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>A typical marketplace model</figcaption></figure><p>All marketplaces have to ace the game by increasing liquidity on the platform, focusing on safety and trust and working out hooks to retain the adopters of the platform.</p><p><strong>Here’s why cracking the trucking marketplace is a far more complex challenge:</strong></p><h2 id="1-existing-market">1. Existing Market</h2><p>Let’s take a look at the food/grocery delivery or rental space marketplaces. Considering how much people rely on Swiggy, BigBasket, Airbnb apps, you would wonder how people survived 10 years back. Sure, people used to go out to have food, but just how many times did people order-in when they were not in a mood to cook? From monthly grocery shopping, people have moved to BB Instant and BB Daily. Before Airbnb, did people rent out a portion of their home to vacationers? These were user needs that even the users themselves were not aware of! These businesses sprung up to fulfil a latent demand and are thriving. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2021/03/Group-1638-1.png" class="kg-image" alt="Trucking Marketplace: The BlackBuck Product Challenge!" srcset="https://eng.blackbuck.com/content/images/size/w600/2021/03/Group-1638-1.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2021/03/Group-1638-1.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2021/03/Group-1638-1.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2021/03/Group-1638-1.png 2400w" sizes="(min-width: 720px) 720px"><figcaption>Different kinds of marketplaces</figcaption></figure><p>Now compare this to freight shipping which has been around since ages, from horses in circa 4000 BC to steamboats and railroads in the 18th -19th century. Logistics in itself accounts for 14% of India's GDP and trucks constitute around 70% of the total freight movement. In short, there is no new market or latent demand in this space.</p><blockquote><strong><em>So what’s the value that a company like BlackBuck can add which can possibly change the game?</em></strong></blockquote><h2 id="2-trust">2. Trust</h2><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2021/03/Screen-Shot-2021-03-19-at-2.40.24-PM-1.png" class="kg-image" alt="Trucking Marketplace: The BlackBuck Product Challenge!" srcset="https://eng.blackbuck.com/content/images/size/w600/2021/03/Screen-Shot-2021-03-19-at-2.40.24-PM-1.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2021/03/Screen-Shot-2021-03-19-at-2.40.24-PM-1.png 1000w, https://eng.blackbuck.com/content/images/2021/03/Screen-Shot-2021-03-19-at-2.40.24-PM-1.png 1552w" sizes="(min-width: 720px) 720px"></figure><p>The average transaction value of Flipkart/Amazon is around Rs.2000, while that of Ola/Uber or even Swiggy/Zomato is around Rs.250. Compare this to an average transaction size of a whopping Rs.50000 in freight shipping! And this is just the transportation cost. The actual value of the goods being transported could be as much as 50 times at Rs.25 lacs. With such high costs involved, would you trust any random stranger with your delivery? It’s no wonder that freight movement is mostly done by family-run businesses, with demand brokers and truck drivers being a part of their extended circle of family and friends. These micro networks are spread throughout the country and shippers and truck owners rely on them for their business. These networks tend to be inefficient due to demand-supply mismatch across seasons and locations.  But the lack of trust between fleet owners and shippers makes them take the same inefficient options.</p><blockquote><strong><em>How can one make them trust and explore new connections?</em></strong></blockquote><h2 id="3-matching-fleet-owners-to-shippers">3. Matching Fleet owners to Shippers</h2><p>For the right matching between demand and supply, the right set of data points needs to be available. Can you imagine ride sharing apps like Uber/Ola matching your cab request to a driver, without knowing where the cab driver is? No.. The system relies on both the customer and driver using location-enabled apps. Even with the current high location accuracy, we all know the frustrations of not seeing the cab driver move towards us, or cancelling because the driver deviated an inch from the route to our pick-up!</p><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2021/03/adasda.png" class="kg-image" alt="Trucking Marketplace: The BlackBuck Product Challenge!" srcset="https://eng.blackbuck.com/content/images/size/w600/2021/03/adasda.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2021/03/adasda.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2021/03/adasda.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2021/03/adasda.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>In the case of freight, matching has many more complexities like considering the right truck body type (+length, wheels, etc.), the routes preferred by the truck owner, in addition to the truck’s location. And the location itself is not available for all trucks as unlike Ola/Uber, the truck drivers are yet to adopt location-enabled apps. Also, while in Ola/Uber in most cases the driver is the owner, in freight the truck owner is sitting somewhere else and taking the decision of where the truck should go next.</p><blockquote><em><strong>How can one match the right trucks to the right load?</strong></em></blockquote><h2 id="4-pricing">4. Pricing</h2><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2021/03/image-86-1.png" class="kg-image" alt="Trucking Marketplace: The BlackBuck Product Challenge!" srcset="https://eng.blackbuck.com/content/images/size/w600/2021/03/image-86-1.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2021/03/image-86-1.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2021/03/image-86-1.png 1600w, https://eng.blackbuck.com/content/images/2021/03/image-86-1.png 2112w" sizes="(min-width: 720px) 720px"></figure><p>Pricing a freight transaction is an unsolved problem across the world due to the number of micro and macro factors at play. Think about it - from the type of trucks, type of goods transported, the number of check-posts enroute, the loading arrangement at the warehouse to macro factors like oil prices and export policies, there are a gazillion factors that can affect pricing! Offline brokers decide prices by using simple heuristics (the beauty of how humans take judgement calls!) like the number of phone calls they receive from supply vs demand on a particular day, indicating a rise or fall in prices.</p><blockquote><em><strong>How does one provide a benchmark for fleet owners and shippers to gauge whether they are getting/paying the right price for the transactions?</strong></em><br></blockquote><h2 id="5-tech-savviness">5. Tech savviness</h2><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2021/03/image-87-1.png" class="kg-image" alt="Trucking Marketplace: The BlackBuck Product Challenge!" srcset="https://eng.blackbuck.com/content/images/size/w600/2021/03/image-87-1.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2021/03/image-87-1.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2021/03/image-87-1.png 1600w, https://eng.blackbuck.com/content/images/size/w2400/2021/03/image-87-1.png 2400w" sizes="(min-width: 720px) 720px"></figure><p>Around 70% of India’s rural population still does not use the internet, with many of them adopting the internet only in the last couple of years. This translates to many of our shippers and fleet owners not being tech savvy. The typical challenges of user acquisition, engagement and retention become compounded when the users don’t know how to use your product.</p><blockquote><em><strong>How do we  convince them to not just adopt technology but to move their livelihood from traditional methods to the unknown world of the internet and mobile apps?</strong></em></blockquote><p>As tough as the problem statements seem, at BlackBuck, our product, tech and data sciences team are working to tackle each of these every day!<br></p><p>If you are enterprising and have the thirst and appetite to take on challenges, check out the open job opportunities at our <strong><a href="http://www.blackbuck.com">official website</a>.</strong></p><p>To know more about how life is at BlackBuck, check out the below videos:</p><p><strong><a href="https://www.youtube.com/watch?v=Fal4iqu_QGU">BlackBuck: A Place to Ace</a></strong></p><p><a href="https://www.youtube.com/watch?v=Q-dz4Y7k8o0&amp;lc=Ugw680bS_7rFVUt4pqt4AaABAg"><strong>Life as a Product Manager</strong></a></p><figure class="kg-card kg-image-card kg-width-full"><img src="https://eng.blackbuck.com/content/images/2021/03/Group-1533-1.png" class="kg-image" alt="Trucking Marketplace: The BlackBuck Product Challenge!" srcset="https://eng.blackbuck.com/content/images/size/w600/2021/03/Group-1533-1.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2021/03/Group-1533-1.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2021/03/Group-1533-1.png 1600w, https://eng.blackbuck.com/content/images/2021/03/Group-1533-1.png 2000w"></figure>]]></content:encoded></item><item><title><![CDATA[Work, Flow, Business!]]></title><description><![CDATA[<figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2021/02/sigmund-HsTnjCVQ798-unsplash.jpg" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2021/02/sigmund-HsTnjCVQ798-unsplash.jpg 600w, https://eng.blackbuck.com/content/images/size/w1000/2021/02/sigmund-HsTnjCVQ798-unsplash.jpg 1000w, https://eng.blackbuck.com/content/images/size/w1600/2021/02/sigmund-HsTnjCVQ798-unsplash.jpg 1600w, https://eng.blackbuck.com/content/images/size/w2400/2021/02/sigmund-HsTnjCVQ798-unsplash.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>Business Processes are the fundamental building blocks of every business. In order to achieve objectives of the business, processes are implemented which are performed by actors, which can be systems or employees.</p><p>These processes help the teams perform the tasks in a systematic, predictable way which eventually contributes to consistency</p>]]></description><link>https://eng.blackbuck.com/work-flow-business/</link><guid isPermaLink="false">601ad533616671064aa62126</guid><dc:creator><![CDATA[Abhishek Sharma]]></dc:creator><pubDate>Thu, 18 Mar 2021 13:54:22 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2021/02/sigmund-HsTnjCVQ798-unsplash.jpg" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2021/02/sigmund-HsTnjCVQ798-unsplash.jpg 600w, https://eng.blackbuck.com/content/images/size/w1000/2021/02/sigmund-HsTnjCVQ798-unsplash.jpg 1000w, https://eng.blackbuck.com/content/images/size/w1600/2021/02/sigmund-HsTnjCVQ798-unsplash.jpg 1600w, https://eng.blackbuck.com/content/images/size/w2400/2021/02/sigmund-HsTnjCVQ798-unsplash.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>Business Processes are the fundamental building blocks of every business. In order to achieve objectives of the business, processes are implemented which are performed by actors, which can be systems or employees.</p><p>These processes help the teams perform the tasks in a systematic, predictable way which eventually contributes to consistency in performance.</p><p>But as they say, with consistent performance comes consistent efficiency.</p><p>As a first step to close on inefficiencies, management needs to be vigilant of the process gaps, which is best achieved today by <strong>Data</strong>. Accumulated data solves for visibility, and overtime, starts showing patterns or insights. This helps businesses realize and focus on, the systemic problems and implementing solutions for them.</p><p>At Blackbuck, before July 2020, our order fulfillment operations didn't have enough automated visibility to answer the following questions in real-time:</p><ul><li>How are my team members performing?</li><li>What are the root causes of performance gaps or what can we do to improve our efficiency and performance?</li></ul><p>To address both the issues, we built a process or <strong>workflow</strong> on-boarding platform or a <strong>workflow engine AKA Karma!</strong></p><p>So without further ado, let's dive right in …</p><h2 id="terminology">Terminology</h2><p>A Business Process Model or <strong>Workflow</strong> explicitly defines steps/<strong>task</strong>s and execution strategy of a business process.</p><p>A <strong>Tenant</strong> is any service which defines a business process model in the workflow engine.</p><p>Workflow Management Systems or Workflow Engines are software systems whose objective is to assist the actors in performing tasks and to collect and manage, data and associated configuration, based on tenant's requirements.</p><p><strong>Workflow Pattern</strong>s are design patterns specialized for Workflow Management Systems. One of the ways to classify them is by execution strategy, for e.g. serial, parallel, multiple paths, synchronized executions et c.</p><h2 id="design">Design</h2><p>Objectives of our workflow engine are to</p><ul><li>Implement business processes as a configuration</li><li>Onboard employees and services which can perform the tasks defined in a workflow</li><li>Allocate tasks between team members based on permissions in a load balanced, round-robin manner</li></ul><h3 id="workflow-pattern">Workflow Pattern</h3><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2021/02/assembly-line.gif" class="kg-image" alt></figure><p>Imagine, you are in a bread processing factory. The factory might be highly automated with minimal manual labor or can have a lot of people working in it. Regardless, you'll see that the bread-making process will remain more or less same, namely, Doughing, Molding, Baking, Packaging and Shipping. Each of these steps can have multiple steps within, depending on different sizes and shapes of bread required.</p><p>Here, execution of each step is in a well-defined sequence which makes this a business process model or a workflow pattern.</p><p>To incorporate a majority of Blackbuck's order fulfilment processes, we implemented a particular flavor of workflow pattern defined as,</p><blockquote>A graph where nodes are tasks and edges are execution conditions. Execution can happen<br><br>1. either parallelly and independently, or<br>2. in serial, where next task starts on completion of previous task only, or<br>3. in combination of both<br><br>There can be multiple start points and multiple end points of a workflow<br><br>A workflow doesn’t complete unless all executed tasks have been completed</blockquote><p>Within this workflow pattern, we also introduced support for two kinds of tasks, namely,</p><ul><li>Form Submissions, utilized for Data Entry, Request Approvals within organization, and</li><li>HTTP Calls, to execute logic or fetch data present with tenants</li></ul><h3 id="business-process-as-a-config">Business Process as a Config</h3><p>In order to ease the development for tenants, a business process can be on-boarded as a configuration. If the configuration complies with internal constraints of workflow engine, tenants can run workflows <strong>without any development</strong>.</p><p>For configuration definition, we used relational schema to store the business process model and execution information, for instance</p><ul><li>Allocation Strategy</li><li>Employee Hierarchy</li><li>Permissions, for performing manual tasks</li><li>SLA</li><li>Scheduled Delays</li><li>HTTP API information for HTTP call task</li><li>Notifications</li></ul><p>As a result, most of the configuration changes take effect <strong>at runtime</strong> without any extra effort<strong>.</strong></p><p>To provide dynamic behavior on processes, we use</p><ul><li><strong>Jayway’s JSON path</strong> syntax, since majority of applications and services communicate with each other in JSON format</li><li><strong>Spring Expression Language</strong>, to execute logic based on states available in different contexts of workflow execution</li><li>Tenant's HTTP API Information, stored in DB, to give the tenants control over individual features of their workflows</li></ul><p>For instance,</p><p>Within a workflow <strong><em>w</em></strong>, if a task <strong><em>t1</em></strong>, where we called an API to perform some action on a tenant, is being completed and we want to decide whether the next task after t1 should be <strong><em>t2</em></strong> or <strong><em>t3</em></strong>, we can write conditions based on context associated to t2 and t3. </p><p>So say, t1 task is a verification of a document image with data entry. Once the data is entered, it is submitted to the tenant and tenant can internally decide to either APPROVE or REJECT the document. Based on each possible result from tenant, conditions of execution for t2 and t3 tasks can be as follows </p><p>For t2, where we want to trigger payment after approval</p><!--kg-card-begin: markdown--><p><code>#responseEntity.getStatusCodeValue() == 200 &amp;&amp; #expressionEvaluator.getContext().read(&quot;$.status&quot;) == 'APPROVED'</code></p>
<!--kg-card-end: markdown--><p>And for t3, where want to an employee to upload correct documents based on rejection criteria</p><!--kg-card-begin: markdown--><p><code>#responseEntity.getStatusCodeValue() == 200 &amp;&amp; #expressionEvaluator.getContext().read(&quot;$.status&quot;) == 'REJECTED'</code></p>
<!--kg-card-end: markdown--><p>Where <em>responseEntity</em> and <em>expressionEvaluator</em> are JAVA variables available in the context where this expression will be evaluated at runtime</p><h3 id="state-transitions">State Transitions</h3><p>Within the engine, we have defined states and transitions that a node or a task in the workflow graph can undergo. All tasks in all workflows go through this one finite-state machine.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://eng.blackbuck.com/content/images/2021/02/Workflow_Task-FSM-Task-FSM.jpg" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2021/02/Workflow_Task-FSM-Task-FSM.jpg 600w, https://eng.blackbuck.com/content/images/2021/02/Workflow_Task-FSM-Task-FSM.jpg 706w"><figcaption>State Transition Diagram for a Task in a Workflow</figcaption></figure><h3 id="depth-of-configuration">Depth of Configuration</h3><p>Workflow Configuration has various levels based on elements of workflow graph and context of business object</p><ul><li><strong>L1</strong> - the default behavior of the system with default configuration format. <br><br>For e.g.<br>SLA of a task is decided by a static configuration in DB. Based on this, system escalates the task if it's not completed within given SLA minutes<br></li><li><strong>L2</strong> - specialized configuration which overrides the default behavior at a workflow level, task level or execution condition level. <br><br>For e.g.<br>SLA of a task might be dynamic depending on tenant's requirements. So provision is given within DB config where tenants can add HTTP API information which workflow engine will utilize to calculate SLA at runtime.<br></li><li><strong>L3</strong> - Request body or Event message, which overrides all configuration and based on data provided to engine by tenant for an instance of the task. <br><br>For e.g.<br>Team members can dynamically decide SLA based on situation on ground and live contract negotiation for a particular order.</li></ul><p>These levels of flexibility in configuration help tenants to control the workflow in any manner they want.</p><h2 id="workflows-in-production">Workflows in Production</h2><p>We have on-boarded <strong>8 individual processes</strong> related to <strong>4 different business use cases</strong> which are running in our production.</p><p>This includes:</p><ul><li>On-Ground Fulfillment Process</li><li>Internal Document Verification Process for Fulfillment</li><li>Driver Verification Process</li><li>Information of Supply Charges to Partners</li></ul><h2 id="future-enhancements">Future Enhancements</h2><p>In upcoming sprints, we'll be extending the workflow pattern definition to include more flexibility on execution. Such as</p><ul><li>Infrastructure Orchestration for different workflows and tenants</li><li>Making workflow on-boarding process seamless with a clean UI</li><li>Experiments on different workflow versions</li></ul><h2 id="tl-dr">TL;DR</h2><p>Business Processes are key components of any business. And they are driven by consistent performance over consistent efficiency.</p><p>We developed a workflow engine which maintains business processes as a config. Our tech stack consists of:</p><ul><li>MySQL and <a href="https://eng.blackbuck.com/mongodb-cluster-migration-with-zero-downtime/">Mongo</a>, which utilizes JsonPath and SpEL notation wherever required</li><li>Spring Boot, as the development framework</li><li>Redis, for distributed cache</li><li>Kafka, for asynchronous messaging</li></ul><p>Our workflow engine can store and execute multiple business processes simultaneously and independently, which might belong to different teams and tenants. Supported task types are Form Submissions and HTTP Calls.</p><p>This has increased our visibility and control of the work our teams do which has improved communication and SLA adherence, specially in operations.</p><p>Overall, it's low-code development platform for business process models</p>]]></content:encoded></item><item><title><![CDATA[Fraud Detection at BlackBuck]]></title><description><![CDATA[Here’s an interesting overview and insight into the different types of fraud we had encountered and how our team has solved for the challenges to ensure proactive fraud detection and prevention is in place!]]></description><link>https://eng.blackbuck.com/fraud-detection-at-blackbuck/</link><guid isPermaLink="false">5f981f36616671064aa60d6a</guid><category><![CDATA[Fraud detection]]></category><category><![CDATA[distributed system]]></category><dc:creator><![CDATA[Nitin Khanna]]></dc:creator><pubDate>Wed, 03 Feb 2021 12:02:15 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2021/02/image.png" class="kg-image" alt="Image by MIT news https://news.mit.edu/2018/machine-learning-financial-credit-card-fraud-0920" srcset="https://eng.blackbuck.com/content/images/size/w600/2021/02/image.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2021/02/image.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2021/02/image.png 1600w, https://eng.blackbuck.com/content/images/2021/02/image.png 2000w" sizes="(min-width: 720px) 720px"></figure><p>																									Image Source: <a href="https://news.mit.edu/2018/machine-learning-financial-credit-card-fraud-0920">MIT News</a> </p><p>Blackbuck offers many value added services to fleet owners apart from end-to-end management of freight services for corporates &amp; offering a low cost marketplace for shippers &amp; truck owners. These include Fuels, Tolls (read FASTag), GPS etc. Most of these value added services require a solid payment infrastructure to facilitate seamless digital transaction<br></p><p>To ensure superior customer experience, our payment system consists of many microservices like inbound, outbound, fraud etc. Most important services among these are the Inbound Service (This is integrated with many payment gateways by which customers can pay for Blackbuck services) and the Outbound Service (This service is integrated with different payment gateways to either return money to source or to give incentives).</p><p><strong>FRAUD TYPES</strong></p><p>Considering these are digital payment transactions and that BlackBuck also offers special incentive schemes to promote usage of our services, there exists a strong likelihood for frauds to happen. Listed below are some of the common types of fraud we have seen:<br></p><p><strong>Payment instrument fraud</strong> : Payment instruments refer to the different types of cards like credit card, debit card etc . The common cases observed here include a) Instances where a person uses other person's card or transacts using a) stolen card etc b) In some cases where the same customer is found to use more than 10 different credit/debit cards.</p><p><strong>Misuse of incentive</strong> : We sometimes run Referral Schemes where fleet owners are rewarded for referring new users to the BlackBuck platform. For eg. If a new user signs up with an existing user’s referral code and performs X Rs worth transaction, Y Rs is given as referral benefit to the new user and the person who referred to him.</p><p>We have seen many cases of fraud reported in this system. (Customers started creating dummy users by colluding with a sim seller to get as many new sims as they want) and all these new users were given Y Rs along with the person who refers so X*Y Rs  was incurred as a  “loss” by BlackBuck and random dummy users were being introduced into the system who would drop off anyway in 1-2 months. This also provides an incorrect picture of the actual retention numbers of the product.<br></p><p><strong>SOLVING FOR CASES OF FRAUD</strong></p><p>Post an extensive research<strong>, </strong>we came up with a solution to identify the clusters of users based on IMEI numbers of devices. When a new user who is signing up from a device and that device IMEI belongs to an existing cluster, then the user and the referrer will not be given any referral benefit and this new user will become part of this cluster. In each cluster we created a graph connecting IMEI number, phone number and some other attributes.</p><p>In Blackbuck,  we have many services which provide incentives and if this solution is tightly coupled with a specific service, then it will create dependency on the owner service. Hence we decided to create a platform where we will feed the data into the system and any other service can add their rules in the rule engine and rule engine will be responsible to run rules on the data.</p><p>Next challenge was to pick the right data storage and as I mentioned earlier that we wanted to create a graph between different attributes which automatically ruled out the possibility of using mysql or any other relational database. Among available graph databases we had decided to use orientDB.</p><p><strong>OrientDB</strong> is an open source Nosql DBMS written in Java which supports all modes like schema-full, schema-less and schema-mixed and provides extendible-hashing and b-tree based indexing and supports key/value, and documents. In orientDB relationships are managed as graphs which connect records.</p><p><strong>System architecture and flow :</strong></p><figure class="kg-card kg-image-card"><img src="https://eng.blackbuck.com/content/images/2020/10/Screenshot-2020-10-28-at-7.58.28-PM.png" class="kg-image" alt srcset="https://eng.blackbuck.com/content/images/size/w600/2020/10/Screenshot-2020-10-28-at-7.58.28-PM.png 600w, https://eng.blackbuck.com/content/images/size/w1000/2020/10/Screenshot-2020-10-28-at-7.58.28-PM.png 1000w, https://eng.blackbuck.com/content/images/size/w1600/2020/10/Screenshot-2020-10-28-at-7.58.28-PM.png 1600w, https://eng.blackbuck.com/content/images/2020/10/Screenshot-2020-10-28-at-7.58.28-PM.png 1920w" sizes="(min-width: 720px) 720px"></figure><p><br>Whenever a user goes for any transaction, a request is first sent from the Accounting service to the fraud service which runs predefined rules and returns a double number between 1-5. 1 being low risk and 5 is the highest risk profile. After getting a response from the fraud service, the accounting service decides whether it should go ahead with the transaction or not. After the completion of a transaction, the accounting service sends transaction related data as events to the fraud service via broker. <br></p><p><strong>Why Use A Broker Software</strong> : In Blackbuck,  we handle a high number of transactions - that is why sync calls were avoided as we did not want to bombard the fraud service with the data which will be used later. This led to choosing Kafka because consumers can consume data at their own pace without putting pressure on the service.</p>]]></content:encoded></item></channel></rss>