Do not erase

I was very surprised to note that in paper based offices there was nothing like erase a mistake or throw out the original, it was always an append over the previous ones. Be it land records, mark sheets or accounts. The end state was always calculated and consolidated than written, erased and rewritten.

Why do you need an eraser when you can always create a new version?

This is very different in the software world, it is always wipe out old values and put the latest unless there are transactions which have to be recorded each time they happened. In real world everything happens by events yet in software we were always saving end states until recent times where having a common shared state became a huge problem when the systems started scaling and no one can have a claim to be the source of truth.

The problem with saving the projections is that we have to constantly erase and rewrite the projected truth, it was inconvenient in paper based ones so people stuck to append only. Since software makes erasing and writing easy, projections were always created during events instead of storing the events.

Why this becomes a problem? The problem is when there are lots of actors and they have to share the truth between them. Not everyone is interested in the entire projection and transporting that data also becomes painful. The solution is to keep events/transactions as it is and let each of the actors compute their projections when they want.

This is how we work in the real world, the events keep happening whether we observe or not, we try to make sense of it only when we are interested in it to do something with the events; else it just gets journaled somewhere unless someone wants to go through them. I am glad that more and more technology solutions are taking a cue from the biological and social world which had taken 100s and 1000s of years to evolve, instead of discarding them as old way of doing things.

Sweet price, Bitter quality

I often encounter people who deal only with false promises and a lot of people fall for it and yet take it easy as if it is normal.

Consider the following scenario.

There are two tailors who have setup shops side by side, during the festive season you go to store ‘A’ and request to tailor your suit in a week which is made of very expensive cloth. The tailor informs that due to the workload you will not be able to get the suit in a week but in about 10 days which is cutting too close to the day of the festival. In the past this tailor has delivered with good quality on promised dates but this is too close for you to take a call.

So you visit store ‘B’ where they also have a similar workload and backlog but promise to deliver to you within 5 days. They cost a little bit less and you are happy with the deal. 5 days later you turn up to collect your suit and you are in for a shock that the cloth has not yet been put in the queue for cutting and stitching. After losing your cool and talking to various people who play bad and good cop finally you are promised to get the delivery in another 5 days. 

5 days later, you have to be ready for the event in the evening so you drop by the tailor to collect your suit. You notice that the tailor is still stitching in a hurried manner and makes you wait for a few hours before giving it to you. On getting the suit you notice that it has a lot of glitches like double seams, improper creasing, misaligned pocket flaps etc. Only a few of them gets somehow masked and you end up late for the event in a spoiled suit. 

After the event you take it to Store ‘A’ and they tell you that they can fix it but it will take 10 more days and cost the same as a new suit as there are extensive repairs to save the expensive cloth. You reluctantly agree and at the end of 10 days you are surprised with on time delivery and the quality of the suit. You leave the place with a regret that you did not place the order with Store ‘A’. 

The scenario is similar at all levels even where the deals run into millions. The lure of a sweet price is so much that no one takes a look at the feasibility. Only in some cases the person making the deal is the same person getting the bad quality; but most of the cases the person making the deal gets good benefits for the sweet deals and the brunt is borne by someone else often many steps down the ladder. This leaves no room for direct observation and hence the feedback loop is never closed; the sweet deals and bitter quality output keeps going on rounds. 

One of my friends tweeted this recently

The bitterness of poor quality lingers much longer after the sweetness of a cheap deal has disappeared. 

Image courtesy: rawpixel on Unsplash

No added sugar

Marketing is quite powerful and can impact us so much that we take many decisions based on the biased knowledge we have been imparted with. A recent experience with diet made me find a lot of loopholes exploited by the food industry and how it is the same product that had been there for many years with just some labels and some phrase changes. The biggest one is ‘No added sugar’. I have been believing this label until I found out the truth the hard way by cutting down on refined sugar in the diet. The number of sick days in a year went down considerably when the refined sugar in the diet came down to near zero.

spoon-2426623_640.jpgNo added sugar test

Take this following test – Try drinking fresh fruit juice without sugar, if you had been accustomed juice with sugar, this is unpalatable. But if you continue doing this for about a week your taste buds gets adjusted (caveat: Cut down sweets as well for that week to make it easily observable). The craving is hard to resist but promise yourselves a cheat treat if you pass one week.

By the end of a week or so the taste buds would have adjusted such that you begin to appreciate the subtle flavours and natural sweetness in the fruit juices. At this point of time, have two fruit juices of the same fruit side by side, one freshly prepared without sugar and another with a popular ‘No added sugar’ brand. Try the difference in the taste between them, see that the ‘No added sugar’ is significantly sweeter.

Why is that even with ‘No added sugar’ the branded drinks appear to be sweet? They have the following marketing tricks up their sleeve to substitute the word sugar. 

Dehydrated cane juice – Excuse me, isn’t that sugar. This was the most outrageous disguise I have found. Dehydrated cane juice is apparently not sugar for many people. This helps in adding the same amount of sugar as a sugared juice.

Some juice concentrate – This is pure genius, If you take apple juice, the label will often read ‘apple juice concentrate’ which helps to boost the per ml sugar content in the juice from the natural sugars in the fruit. We end up taking the same amount of sugar dose for a sugared juice which can be as high as two teaspoons for every 100 ml.

While a lot of people are trying to fight lifestyle and overconsumption related diseases there is a group of people who are working hard to trick people into making poor lifestyle choices. By doing so they are getting rewarded big at the expense of a unhealthy greater good. There is no big difference between an adulterer and these marketing gurus in the way they trick people to become wealthy.

There are a lot more, try to find what ‘No added preservatives‘ mean.

The trouble with gig economy

I grew up in a social setting such that people once they earn a bad name, it was very difficult for them to recover and be back in full swing in the society. They have to rebuild their reputation either in a new place or the same place. Why did people try to associate themselves to a society?; because living together was easy and people helped each other a lot. If one falls sick, there were people who helped the family of the sick member to help them get back upto speed.

The labour market also did the same, governments across the globe came up with a lot of guidelines and laws to employ people such a way that there was social security in the form of sick time, paid leaves, bonuses, retirement funds, insurance and gratuities. We were able to advance as a society very well with these elaborate social structures, though someone can earn a lot of money doing small gigs many people avoided for the predictable life of an established company.

The lure of quick money is always there, especially when people are young the cash in hand always triumphs the long term survivability. People don’t see far ahead and not many are aware of saving for the rainy days when they are strong, healthy and ignorant. This makes a lot of people take up gigs to survive, a gig means – ‘a job, especially one that is temporary or that has an uncertain future’. Gigs offer a lot of money in hand for a given skill and experience to compensate for the uncertainty in the future.

The money component alone lures a lot of people into the gig economy where people with less or no skills can immediately get going and even get paid within a day of commencing work. The trouble with gig economy is

  1. There is no social net in it, sort of a medieval system where the strongest and fittest survive. If people fall sick or meet with an accident they lose all the savings, they earn no money during sick time and end up with a perpetual high cost debt.
  2. You can get away doing bad work or behaviour, and if things go bad you can leave a system and join something else fresh. If you did bad job in a food delivery system, you can leave and make money driving cars for sometime. Though the same is possible in full time employment, the scale at which this can happen is big in the gig economy and you can change identities easily or mask your past performance easily

It is hard to address point number 1, the gig economy is new and it is giving jobs to a lot of people and many of them get a lot of money which they think is disposable and end up spending it.

The second point is bad from a consumer point of view, if there is no repeat business from a customer there is no incentive to give good product or service. Uber does it through its rating system, but what if that person decides to create a new profile altogether after a messed up profile or switch gigs to something else.

In the short run it seems a lot of people will have new jobs and people in college can do part time work for delivery services, but in the long run it will tune people to settle for a life where they think that they can earn a lot than full time employment but companies will do all sorts of tactics like ‘bait and switch’ which has happened to cab drivers in India and keep them hooked on to the system even when it turns damaging for them.

There will be a point in time that governments have to intervene to make sure exploitation of its citizens don’t take place else our society will slowly regress into a medieval feudal system.

Public opinion is fickle

We generally go by ‘The Spotlight Effect‘, we always think about what others think about and assume there is a greater chance of people noticing each and every thing we do and form an opinion about it. On the contrary, every one else has very less time to think about others and often think about themselves.

As observers we do notice a lot about things and give our opinions on it, but generally we lack the expertise and we are not the person in the arena facing the situation. Nevertheless our opinion as an observer gets voiced out, but most likely our opinions will change given our experience changes.

Change the tables around, the public has a lot of opinion on us. Some of us go way too much that we go about changing a lot about ourselves to make sure the public opinion about us is good, but the public opinion is fickle. People have a lot of other work to do and many at times they don’t even remember the opinion they had on us when we meet them.

Remember the story of the deaf frog who emerged victorious, learn to listen to yourself than spending energy on what others should think about you.



Jevons Paradox and Muntzing

Phone calls used to be so expensive while I was growing up and the cost increased exponentially as the distances increased. Often I had to plan what to talk to people when making a call to keep it short; as my entire pocket money for the month can be used up if I spoke to my parents for 30 minutes during peak hours. Communication was expensive so that people planned carefully on how to talk, when to talk and how much to talk. Some people even chose to be contactable only in person and mails by avoiding a telephone line to save big on telephone costs.

What happens when something that was expensive becomes cheap, do we spend that savings elsewhere? This is where Jevons Paradox occurs. When communication became cheaper we stared overdoing it. What used to be a routine 3 minute call to a friend once in a while is now well over 30 minutes. We started paying more by time spent rather than money spent. It is a systems problem, the inefficiency just moves to another place.

This is applicable for anything, food was expensive and refrigerating food was even more expensive so we had invented a lot of ways to carefully store, cook right amounts, recycle leftovers into new dishes and also find ways to preserve through fermentation, pickling etc. My grandmother almost never generated trash or food waste to be dumped, all the edible portions were eaten and organic waste like peels went to plants which again gave back food. We are talking about this cycle as a new way of simple life and as if no one did this before.

This is an important factor in web development in particular and software development overall. Developers are given a lot more freehand to use resources at will to deliver the experience for the user. This has resulted in loading a ~500 KB homepage of which most of the code that is downloaded and processed is not directly useful or seen by the user (A good portion would be to track what a user is doing!). In a constrained environment, elegant solutions appear; in an abundant environment everything is bloated and there is no judicious use. A single webpage can potentially crash a browser or slow down the entire system.

How can this be solved? In many other industries the problem of plenty is not there for users, there are always constraints to work with to get efficient and elegant solutions. We need something like ‘Muntzing‘ for software industry; instead of needlessly hammering through generic all in all bloated solutions we can cut out the fat and concentrate only on core work.


As a company we decided to write only….

You have a business which needs apps running on iOS and android; which one is easy, building native apps or hybrid ones?

If you are the one who right away answers either native or hybrid without asking what are the considerations for the apps then you are setup for failure or great hardship. There is no blanket right approach to build apps that look similar and works similarly across the ecosystems.

smartphones-2182838_640Building rich native apps require depth in understanding of the capabilities of the  platform and designing a common experience for the users even though the capabilities of the underlying system might be different. Two separate teams, two different development pace add to the complexity.

On the other hand, building hybrid apps require a great breadth in mobile development. This means the team should have developers who understand iOS and android systems, knowledge of javascript, some experience in trouble shooting applications in iOS and android (may even require java, kotlin or swift exposure for some native code). It is a tall ask, requires a fair deal of experience and knowledge for everyone in the team.

Choose wisely, a blanket approach of one over the other for everything we do is not right and often leads into difficulties. If you say ‘As a company we decided to only hybrid apps’ then you don’t either understand the complexities or have not given enough thought on how to implement.