Resolving Disagreements

When you disagree with something, either you do it because you think your idea is better or you want to keep your ego intact. Let us ignore the latter and focus on the former where the intention is to let the best idea win. When a group of people sit down and try to resolve disagreements, many a time, it goes nowhere. Sometimes you get this strange feeling of things going around in a circle. This is due to whataboutery and shifting goal posts. You start with an objective, as the discussion progresses, statements lead to counter statements and at the end, no one knows what they are trying to resolve.

antagonism-1940188_640

A straightforward hack to keep discussions on track is to write things down. Project a shared document where you note the objective and the point of contention. Whenever matters go awry, point people to the shared document; this helps everyone involved to stay focused and not to shift goal post as the discussion progresses.

Irrespective of how rational and mature one is, when someone disagrees with something that one believes to be true, one tends to become defensive and shift goal post without truly being aware of it. Writing things down makes one aware of this and helps course correct.

My View

I was looking at Jimi wallets online. Someone peeked at my laptop and asked what it is? I explained it is a rugged waterproof wallet. The other person’s immediate reaction was – Why would anyone need this? This person has never faced the fury of rain while cycling outside.

paint-2985569_640

Whenever I explain startups spending marketing dollars to acquire users even when they are not generating any profit, I get a stunned look from people coming from a traditional business background. It is difficult for them to grasp the concept of betting on explosive future growth at the expense of today.

Phil Knight, in his book Shoe Dog, writes a lot about how his bank was asking him to preserve capital when all he wanted to do was grow Nike at all costs during its fledgling years.

A lot of prolific US citizens opinionated that Trump had a naught chance at US presidency. The same goes for Brexit.

What is common in all these situations is a difficulty in viewing the world from a lens not tarred by our own experiences. Even if you want to do this, it is tough to implement because you do not know where to draw the line. Tomorrow, if a person tells you that she has invented the perpetual motion machine, what do you do? Do you dismiss it outright or be skeptical of this person’s claim?

In all these scenarios you have to suspend your rational mind and view things from a radically incongruent perspective. It is easy to write this but extremely difficult to implement.

Micro Versus Macro Solutions

Imagine a person who walks from her home to office. Frequently she is late to work as she takes time to cover the distance. She wants to improve her pace. She goes to a walking expert to get tips on increasing her walking speed.

thought-2123970_640

One solution to the problem is to use some other means of transportation instead of walking. If you go to a walking expert, you are going to get tips on improving your walking speed. The expert is not going to ask you to forego walking and use a different mode of transportation. Also, if you are deeply attached to the idea of walking, you might not think of a solution beyond walking. Improving your walking speed is a micro solution whereas using some other means of transportation is a macro solution.

The above is a contrived example but something we come across in our professional and personal lives, both as solution givers as well as ones facing a problem. Programmers sometimes try to optimize the hell out of a piece of code while the right approach might be to chuck the code and use something else. Organisations seek to nail down a process to the last mile while a sensible solution might be to do away with the process entirely.

We lean towards micro solutions when we are either deeply entwined in a problem or are the domain expert in that particular area. In these situations, we tend to think within the bounds of a problem and not outside.

When you come up with a solution, bracket it as micro or macro. Being aware is the first step towards becoming better at anything. Also, an outside view helps. Find someone who is not an expert in the domain or one who is not acutely aware of the problem. Run your solution through them. They might lead you to a macro solution or make you aware that what you have is a micro solution. Taking time and mind off a problem helps too like how Archimedes had his eureka moment.

Last but not the least, take a walk.

Process Introduction

Whenever a new process is introduced, there is always going to be some discomfort. The cause can be categorized into:
1. Uneasiness due to newness.
2. There is a problem with the process itself.

idea-1876658_640

Category one is due to human nature. Deviation from an established routine causes queasiness and a yearning for the old way. It takes over-communication, repetition and sometimes “just giving it time” to tide over this initial phase; this is usually a short-lived phenomenon.

Category two is the troublesome one. When someone complains about a newly introduced process, it is essential to get to the source of this discomfort. Prod as to whether the reason for disapproval falls into category one or two.

A suitable process has to roughly follow the Libertarian Paternalism idea popularised by Behavioural Economist Richard Thaler. The process should be a nudge towards better behavior rather than a dictatorial dictum. A process whose intention is to police people does not end up well.

A new process introduces some amount of friction, but this friction has to be local, not global. This friction should not slow down the task at a global level; instead, it should aid speed, agility, and stability.

Take the checklist process as an example. It nudges people towards being more aware and aids better behavior. It does introduce friction at the local level, but on the whole, globally, the task speeds up with a much better result on an average.

It always helps to think along these lines to figure out whether a new process is worth its salt. Instead of introducing a new process and then reneging, put in the effort to evaluate the efficacy of a process beforehand.

Checklist

Checklists have been in vogue for quite some time now. Probably Atul Gawde’s book The Checklist Manifesto kickstarted this. I have been late to the party but once I arrived, I never left. A checklist is an amazing tool to organize personal as well as professional life.

checklist-1266989_640

 

Hospitals have figured out that by following simple checklists they can reduce the surgical mortality rate by a big percentage. The airline industry, which is an epitome of the highest possible standard in safety and training, relies on checklists for fail-safeness.

Who does not forget daily chores? Who has not kicked themselves for being late on bill payments? A to-do list solves this problem. There are tons of to-do apps out there, just pick one to start with. Apart from solving daily trivial problems, a checklist is a great way to keep track of long-term goals too, be it saving more, losing weight or adopting a healthier lifestyle.

Professional life requires one to regularly follow-up. A checklist is a great way to list down the follow-ups needed. On the flip side, no one likes doing follow-ups. If you want to be one of those rare people who respond without requiring to follow up, use a timebound to-do app to keep track.

Checklist brings efficiency to project management. Having a checklist of all the tasks to be accomplished before taking a project live leaves little room for ambiguity, misses and last minute scurrying.

A short-term or throw away project may not justify the time spent in automating disparate tasks related to the project. In this scenario, a checklist is a great substitute.

automation

All organizations have an onboarding process. Make a checklist out of it and hand it over to employees on the day of joining. All software projects have some common alerts and metrics needed. Checklist them. Once you do this, you do not have to bother about this for every new project. View checklist as a temporary substitute while you scout for software to automate these.

In short, a checklist can be used as a Swiss Army knife to organize and automate life. A checklist institutes repeatability eliminates ambiguity and improves efficiency.

PS: Link for the above comic from XKCD.

Blogs Versus Books

Long time back, in one of the social gatherings, someone asked me what do you do in your pastime? I said I read a lot. That person asked – What was the last book you read? I stumbled a bit and took a name. I realized that it had been quite a while since I read a book. Unbeknownst, I had gotten into the habit of reading blogs and articles online with social media and messaging boards acting as the source. There is always more than you can chew with articles touching a wide variety of subjects. Also, it feels a bit like going down a rabbit hole; one blog/tweet leads to another which leads to another and so on until you lose track of time.

I have been a voracious reader of books since my childhood. I got hooked onto online articles and blogs only during the later part of my life; this got me thinking about the difference between reading blogs versus books.

book-1659717_640

Even though most books revolve around a core central idea, the author takes the pain to reinforce this with different thoughts and anecdotes. The author builds a structured case around the view and presents a lot of scenarios leading to the core idea. Reading blogs and articles in most cases feels like reading a summary of a concept or just one facet of it.

When you read a book, you are enjoying the journey whereas reading a blog feels more like focussing on the destination. Both have their place, but one should strike a balance between the two.

Naming Things

There are only two hard things in Computer Science: cache invalidation and naming things.

— Phil Karlton

Even though the above might have been in jest, naming variables while writing code is a head-scratching experience. Should I make it short? Should I make it descriptive? If descriptive, how descriptive? These thoughts keep running in one’s head.

tag-309129_640

A simple strategy is to keep the descriptiveness of a variable’s name in line with the reach of that variable. If the variable is short-lived i.e within a small block, stick to a short name as the cognitive load of the variable is negligible. If the variable’s reach is much larger, as in if it spans a large number of lines, make it as descriptive as possible.

Goes without saying that names should adhere to the conventions that your team has adopted.