Top 3 Disruptions in Customer Experience

Top 3 Disruptions in Customer Experience

Recently I had a very unique Shopping Experience. The experience surprised me because it was from a brand that I love and how I saw the brand I would never think that the brand would be so disconnected on their various channels.

In my current role of Consumer Experience Engineering Lead, while working at Nagarro, I wrote this post which explains my experience but also highlights certain disruptions that I believe will bring a big disruption into eCommerce.

You can read the entire post –

Build a relationship; even if it means pushing targets out

You can hear what a client/partner needs and you can just meet their needs.


You can listen to them, and start building a new relationship and lay the foundation for a long-running gig.

You can only succeed in that partnership when you start by focusing on solving immediate paint points but never lose track of the big picture. Even if have to tell the Executive Management, that they have to wait for 3 more months for what they want the partnership to achieve because there are more burning issues that need resolutions now, more often than not you will be surprised how happy they will be with the simple fact that you 2 teams are building a relationship of trust because that will only result in a win-win.

P.S.: On a side note, please do not ever sugar coated No one in the world is stupid enough to not see through that. Truth is preferred even if it isnt’ sweet.

React and Angular do not fit everywhere

Last few years have been fascinating with several front-end frameworks coming up. I am not going to compare them; neither am I going to talk about The Good or The Bad on them. The buzz words, the new technologies are so shiny that almost everyone I speak to today wants to work on the new stuff. And they also tend to believe that you can solve everything by just writing a front-end application, make some API calls and it’s done. The focus of this post will be that React, or Angular or Vue.js or anything similar is not one size fit all frameworks and Servers Side Code still has a place in this world.

Read More

We are in Alpha – is a lame excuse

Alpha releases are done to test functionality for early feedback

Alpha releases do not run for 6 months

Alpha releases are not exposed such that consumers are able to consume and create content

Telling your users, that your software is in Alpha after 5 months of launch is a lame way of telling people that you do not care and you rather spend your time on something of more importance. If you are going build a software (a product) and you care about it, and more importantly you want the people using your software to continue to use it, you have to accept the fact that you are liable to fix defects faster. Hiding behind an Alpha tag is a slow death.

Wake up, take accountability and stop saying you are still in Alpha. Have the balls to listen to your consumers, prepare a road map and then MOST importantly fix some of those issues on a consistent basis. Most people do not ask much (unless they are paying you), they will be very satisfied with a few bugs getting fixed every month.

Also, remember there will be 90% of the people who do not care, and will potentially support you. They are not your friends. They (most probably) do not have ideas to help your product grow. The ones that shout most, the ones that take the pain and effort are the ones with real feedback. Alienating them by thinking they are just 2 (maybe 3 people) of the community of 20 of 50 is the biggest mistake you can ever do.

Good Luck!

Cracking The “Laravel Vs. Cakephp” debate

I started off this thread to compare 2 frameworks for my next project which would have a team of 20 developers. Team experience was a bit skewed on CakePHP, but the experience outside the organization was tilted towards Laravel. The community buzz was definitely biased towards Laravel, but I wasn’t sure. Hence, I started to jot down some key points and here is the showdown

Niether of the 2 frameworks is the definitive choice. I realized that both do the job and will fit very well in a certain given scenario.

I decided to start working on Laravel 5.4

Read More

The false security of Notifications

The Problem

On one of my recent projects, I just got added to a distribution list that receives alerts from vehicle-dashboard-lightsour monitoring system. first few days I tried to read some of those notifications, but then one day when I opened my email it was flooded with about 500 or so messages. Some of them were more of less the same message coming every few seconds/minutes. over the course of last few weeks, I get like 100+ messages every day and most of them when I am asleep.

The most interesting things that came to my notice are:

  • most of these alerts while are warnings, they don’t really bring any our services down anytime soon. some of these don’t even get actioned upon and they self recover.
  • the team actually actions upon a couple of these really; everything else is more of an info
  • inboxes get flooded during night when our core support team is sleeping and there is no way to know for the core support team if something is going to fail soon

it’s like jumping into my car and every time i see the dashboard every light in there is brightly lighted up – to the point that one day i stop caring. eventually, someday something will fail – i just hope it’s not the day when I am driving to someplace in an emergency

The Symptom

when I reached out to the team and articulated the issue i have with out notification strategy, the prompt response I received was to create a new DL, which i believe will be the goto list where all notifications go. Yes, i will be receiving lesser emails and maybe none. And it solves for nothing.

This is just a big symptom if you see in your organization you should think if the team in on top of knowing when something is really gonna fail. Or are you relying on a system that sends everything it sees wrong as a notification and let’s a bunch of humans decide what to act upon or maybe not. also, you cant avoid the fact that many of these notifications are going over an channel that has no way to “push” notify a user of an issue.

Think of a car dashboard with all these light sitting no in front of a driver, but in the glove box. someone would have to open the glove box to see if a light is on or not. the light maybe on for hours before someone realizes something’s gone missing.

The Solution

I don’t have a technical solution in place for my project, but something I am going to speak to my team about, but the analogy that I will leave you all with is that think of what a notification/alerting system should be like?

  • Have you car’s dashboard light up with a warn Green telling something has happened (like an indicator has been switched on and it’s blinking)
    • Green and soft clicking sounds – eventually a driver will see and will turn it off (was the case with cars in 1990s with low or no sensitivity indicators). but you don’t want to alarm the driver – it’s not detrimental
  • Have car’s dashboard light up in Yellow like a warning. I have my car light up a fuel warning as soon as the levels are dangerously low. I can still drive 80-100 KMS based on how i drive but it’s more than enough for me to eventually see it and get to a refueling station
  • Have car’s dashboard flash a Bridge RED – like Doors open. Well, you wont want to drive your cars with doors/hood open. hence a bridge red sometimes accompanied with a few sounds.
  • Or have a Sound beep every few seconds – i like how my car alerts me every few seconds when i dont have my seat belt on. Or when I drive over 120KMPH. It’s like reminding me every 10 seconds that I have something fatal going wrong and i can die from it


How will this translate for me and my project team is something i don’t know yet. But, as we go about fixing this, I will post if here. What have you done to address your strategy or is it still all dashboard lights flashing all the time?



Do it differently

This is not a technical post, but more of philosophical. I generally post such stuff on my personal blog( but this time, I am going to make an exception but because “do it differently” will be a theme of several of next posts and this just sets the context.

If you do what you always did, you will get what you always got

Someone recently said to me – “I am not doing this for the first time” to a review comment I provided to the person. Of course, I was too pushy (like I am always am, and people tell me to back off – still learning to strike a balance) but this quote just stuck a chord and esalbert einstien-quotespecially this one conversation I had a few days back.

While we all have our experiences and most often we are tasked with something because of what we know already, the ask is to apply the know-how and not really do what we have done in past. The idea is to use our experience of things and make it better, Do It Differently. We often time forget that and what we end up doing is exactly what we did last time – the same good things, the same mistakes. And then when we are done with that next project we wonder – why did the journey seemed more or less the same?

Well…. it’s because

I am not doing this for the first time

Make Sense out of your Stack Traces

I recently came across this cool tool which allows you to make so much sense out of your stack traces. Once I have locked on a stack I want to look at, this tool makes it so much easier.

You can also read about it on their blog post –

This part of my life is called “Chasing Quality”

Chasing QualityAs far as I can recall, one thing that always stuck with me is the OCD around doing things the right way. No matter what I did – could have played a game of cricket when I was a kid, my studies and needing to score a perfect 100, the time when I was fixing computer monitors, writing scripts in fox, writing code in Java/.Net and even now when I am defining architectures.

Morale compass pointing north around Quality means nothing if we do it at the root. If a developer, a lead, an architect and me decide to drop focus on quality at the first instance of delivery delays.

I won’t go back all the while, but I will cover what quality meant to me when I was a developer. While my quality compass is still pointing north, it has been a while since I have sat down and defined what I want to do by the time I deliver this project. Of course there are expectations like “Deliver on time”, “Deliver against scope/requirements”, and then there is that “Deliver as per quality”. Of these 3 the first 2 are fairly easy to measure and clients do it well. It’s the Quality one that has become that beast – and as I have transitioned to working in an industry when we have to deliver websites (.com) where the user base is just unknown the expectations that clients now have are very different from what they were in a behind the locked doors of “enterprise CRUD application”.

I have had The Quality Conversations several times in past but I wanted to do something different

Today in a few hours I walk in a room with 6 of my architects and talk about Quality. I know my vision of quality, but that means nothing if in a few weeks, we will make decisions to drop quality measures because we wont be able to meet the Go Live Deadline. That Vision means nothing if my team has different viewpoints of quality.

Quality meant, once my work is done it’s done.

As a developer

This goes back to the time when I was just coding and there was no team leading, no program management responsibilities on my shoulders:

  1. Quality used to mean to send a story to my QA track and knowing that they won’t find even a single defect;
  2. Quality used to mean that when I would get time, I can open the code and refactor knowing that my unit test cases will tell me what I broke as I improved my code for quality;
  3. Quality used to mean that when I will commit the code, and when CruiseControl fires up it will not break the build;
  4. Quality used to mean that when a colleagues opens my code to enhance with a functionality (s)he won’t have to come back to me asking questions; (s)he won’t have to refer to an external documentation to know what this code does
  5. Quality meant, once my work is done it’s done. There is nothing more that I had to do.

As an Architect

My goals mean nothing if the team I am working with don’t share the same goals.

I am asking myself – if those 5 simple rules that I followed 10 years back worked well for me – should they change?. Does my role today means I need to do anything else. Yes, I produce some design documents now, I write some code, I prepare presentations and yes I own all of quality including whatever my team produces, but why should those simple 5 rules change one bit.

We are as strong as the weakest link.

So the question is not really – what quality means for me, but what it means for those 50 people on my team. Do they want to meet these 5 goals or do they want to do something else. Yes, I will share what my goals are, but I also now need to know what their goals are. Then we have to make a journey and do it fast is to find the least common denominator and sign up for those (as a start). Next, we need to work together to find what herculean effort we have to fill those gaps.

Chasing Quality

My Goal today – Never spend a minute extra in office. Deliver on time, Deliver on scope and Deliver with Quality – something that makes everyone smile.

My bigger task is – make sure no one on my team is spending an extra minute in office.

So I continue to find the perfect formula. I haven’t seen that happen and the several articles and books I read tell me there is no secret recipe and I have almost all forces of nature working against me, yet it’s my task to make it happen for my team. Let’s see how it goes. Now start yet another journey to meet the almost impossible.

What does Quality Mean for me

We will see how this goes. But, for now the 5 rules for quality for me stand even today are:

  1. Deliver an artifact and make sure no one can find a defect;
  2. I can refactor the code knowing it won’t break anything;
  3. Code commits work like a charm and i can deliver code in environments quickly and with certainly;
  4. When I send this application to my dear friends in operation, they don’t hate and curse me;
  5. Once my work is done it’s done

Stories and artificial intelligence

Ravi Pal aside from being a dear friend is someone I respect a lot; he is a technologist who wows me every time I talk about something. I recently came to know he has been writing a blog.

I managed to read only 1 post till now and the very first post is amazing. I’d to share with all of my readers and I quote him to

As a young soul I was always fascinated by stories, stories of Rama and Arjuna, stories of freedom fighters and stories of superheroes (guess we all have been fans of larger than life heroes). It was always fascinating to hear about the superpowers that these heroes possessed, how they were able to overcome the odds and how they had a personal story – a wonderful journeys of their own ups and downs. As a kid it was almost as if I wanted to live their lives, always felt connected to their emotions.

stories and artificial intelligence.