Before you ask, I do not have any. But, election season is the best time to get a front row seat for the show on human behavior and psychology.
Now that polls are over, it is time for all to draw lessons from the mandate. It is the best time to witness hindsight bias in action. Media will lead the onslaught with a cacophony of op-eds – lessons from the election, advice to Modi, why we got the mood of the nation wrong, what Modi should be doing in the next five years, where Rahul went wrong, etc.
“Skin in the Game” and “Accountability” are best seen during these times. People who say one thing before the election write diametrically opposite words post-election. Renowned journalists who claimed this to be a waveless election, post-result write wordy articles on why the Modi wave was intense this time. Nevermind the fact that these are the same people who got the 2014 polls wrong too. The best part is, these personalities will soon start advising in television debates on what the government should be doing in the next five years to win over people’s hearts.
The thing I find fascinating is no one holds these individuals accountable to what they wrote before elections; no one questions their credibility and so-called expertise.
I believe it is almost impossible to predict the future, but what we can do is observe the broad trends; the trends should be the guide to the future. Yogi Berra captures it best:
It’s tough to make predictions, especially about the future.
The idea that the future is unpredictable is undermined every day by the ease with which the past is explained.
The above quote is from Daniel Kahneman; this should be the major takeaway from any massive upheaval.
PS: Contrary to the above, some people believe that the future is predictable; there are projects too on this.
Photo by Edwin Andrade on Unsplash
Software abstractions that developers create should leak enough to let non-developers design the right product experience.
Eons back in internet history, Joel Spolsky wrote a post on leaky abstractions. The gist of the writing is that even though we create software abstractions to make life easy, they somehow unintentionally leak through.
With technology getting a lot more complicated, I believe that the software abstractions that developers create should intentionally leak to some extent to let non-developers design the right product experience.
Taking a concrete example, let us say that you are creating a search utility which goes over a lot of data. Your algorithm has two steps, one that works on recent data and the other, older data. Recent search is blazing fast while searching through old data is slow. You do both in parallel, combine the results and display it to the user. You have two options here; you can abstract this two-pronged approach from the product teams and act as if the search is a single step process or you can leak this abstraction so that they can take this into account while designing the product.
What can the product team do with this information?
They have multiple options.
Show the faster results first without waiting for the slower ones. Where the older results are displayed, show a loading placeholder, and then populate the results as and when they become available.
Another option is to make this a two-step process by showing only the recent results and then asking the users explicitly whether they want to search through old data too.
They can do this only if your abstraction leaks through informing them of the internal search nuances.
You need to be judicious with what you expose, and what not, so that the product teams are not burdened with unnecessary details – striking the right balance is essential.
Image by Jesse Bridgewater from Pixabay
Amara’s law says – “We tend to overestimate the effect of a technology in the short run and underestimate the effect in the long run.”
I see a lot of shared two-wheelers on Bangalore roads these days. The expectations of the companies which buy these for shared mobility would be very different from individual buyers of two-wheelers. As of today, I do not know of any company designing vehicles keeping shared mobility in mind; but I am sure it is not far away. Someone is going to do a deep re-think on this and come up with a design that is amenable to mass public ride sharing.
Samsung opened a large experience center in Brigade road, a high street shopping destination in Bangalore. MI has a similar one in Indiranagar, another bustling area of Bangalore. The emphasis in these places is not on selling but letting consumers experience the product. These centers would roll up to marketing functions than to sales. If you think about it, sales and logistics are no longer the thorny problems they used to be before; technology has taken the pains out of these to a large extent. I believe physical retail is going to go through a deep re-think where it will be more about product experience than selling.
Boston Dynamics has been releasing jaw-dropping videos of their robots in action. These robots seem to be getting better by the day. We are not far from a time when a lot of the hard and mundane physical labor will be carried out by these automated agents than humans. But none of our current products have been designed keeping these automated agents in mind. For example, if you want an army of drones to fix and replace the street lights, the light assembly needs to be designed in a way that is drone friendly. As of today, it is not; these have been designed keeping in mind a human carrying out these maintenance tasks. The same applies to almost everything that we see around. Someone is going to start re-thinking on these designs and changing them to be more automated agent friendly.
I firmly believe the trifecta of technology, automation and sharing economy is going to bring about a massive re-think in how we look at the design and assembly of almost everything.
Photo by Tincho Franco on Unsplash
Are you focussing enough on developer productivity? If not, read on why you should.
Technology is getting commoditized these days. In the yesteryears, you could have counted on your software frameworks and technologies, hardware prowess, access to capital and talent pool as significant competitive advantages. In a world, which is getting commoditized day by day, the access to these has been democratized, thus leveling the playing field. Today, it does not matter whether you are a single person startup or a large multinational corporation; everyone has access to almost the same resources.
Cloud providers ensure you have enough servers and hardware at your disposal to meet your growing demands. Open source frameworks and technologies provide the required technological backbone to build stuff. Umpteen services exist to recruit talent and develop products; co-working spaces take care of your physical office requirement at an amenable cost; social media gives you access to a broad marketing audience. In spite of these, if you are short on capital or want to splurge, there is the ever-growing VC industry to take care of your capital needs. The icing on the cake is internet and sites like Stackoverflow and Coursera which have levelled the playing field when it comes to access to knowledge.
In light of this, what constitutes your business competitive advantage? One short answer, developer productivity.
Developer productivity dictates how well you can effectively and efficiently leverage all the resources at your disposal to build a great product and trounce your rivals. Developer productivity is a trifecta of having the right engineering tools, structure and processes. When you excel in these three, developers can move fast, and business can conquer markets with ease.
Developer productivity is too vast a topic to be covered in one post. I will be writing more on this in the coming months; it is an area which is extremely close to my heart, and I firmly believe companies do not focus enough on this.
Photo by Erwan Hesry on Unsplash