This OR That?

This OR That?

We are often faced with tough choices to make in life and at work. Some of the common questions we face in a software company are

  • Faster to Market OR Quality
  • Work on a completely new blank slate project OR Work on enhancements
  • Write Code OR Write design/code documentation

Since the question is about this OR that, our brain is tuned to pick one over the other. We debate the choices. There are healthy and strong arguments on both sides of the debate based on pros and cons. We end up being torn apart being unable to decide.

One of the common questions that I have seen being debated at work is

"When a Software Engineer is given a completely free choice to make, would he/she like to write code or would he/she like to write software documentation?"

The above question can be extended to other things such as reviews, unit tests, automated tests, bug fixes, etc.

We discussed the tradeoffs. We said that some of these choices are short-term pain for long-term gain etc. While the answers were not black-white but grey, it felt that the degrees to which everyone agreed to the answers were also shades of grey.

Turning to Nature which is much more complex

I thought that looking at nature may provide some clues to solving these perennial questions. If we were to ask the following questions, what would the answers be??

Given a completely free choice to make

Would the sun prefer to rise OR to set?

No alt text provided for this image

If I try to imagine being the Sun and answer this question, my brilliance shines during the day and hence I would prefer to showcase my brilliance and help the galaxy with it. Hence, sunrise would be the preference.

Would a skier prefer to ski downhill or go uphill to start skiing?

No alt text provided for this image

A skier skiing downhill is a wonderful sight. I had the fortune of trying it a few times and it was really exhilarating and fun. Soon after coming down though, I had to be in a queue to get into the ski lift to go back up. If I had to make a choice between the two, I would pick skiing down is what I want to do.

Would a living being prefer to be active or to rest?

No alt text provided for this image

When I am working and active, that is when I am able to put my abilities to use. It enables me to have a house, bed, and actually sleep on it. Hence, if I had to pick between the two, I would pick being active vs sleeping.

Would a living being prefer to breathe in breathe out?

No alt text provided for this image

Let’s come to the most basic thing about living. While I breathe in, there is some kind of reassurance on life. If you have tried Pranayama, and you have held your breath after exhaling, there is a huge relief when you are able to inhale. Hence, if I had to pick between the two, I will pick breathing in over breathing out.

Questioning the Questions

Now, let me question the questions and ask whether the above questions should be asked? Is there really a choice to be made in these matters?

  • While the sunrise is majestic, unless it sets, it cannot rise again the next day.?
  • While skiing downhill is fun, unless you take the ski lift (which is not as exciting) to go back up, you cannot ski downhill again
  • There is common sense as well as some scientific measurements done to prove that taking rest at night allows the brains to compress, thereby ejecting toxins out and becoming fresher the next day morning. Without resting, one cannot be active the next day.
  • While breathing in is reassuring, can I keep breathing in however much I love it? My lungs are going to be full sooner than later. Unless I breathe out and expunge the CO2 and other toxins, I cannot breathe in again.

The reverse is also true. In all cases, even if I chose the other option as my preference, I cannot do one without the other. E.g. Because I love CO2 getting expunged while exhaling, can I keep breathing out forever? No, I cannot. I have to breathe in, in order to breathe out, and vice-versa.

Hence, asking the question "this or that" in these situations is not going to help. In all these things, there is no choice, no preference. Both have to be done, and it is a cycle that repeats. The ending of one is the beginning of the next, and the cycle continues.

Choices in Software Engineering

Similarly, can we ask the question as to whether a software engineer will prefer to write code or write documentation? Or would he/she prefer to write automation tests or write code? Will these questions help??

The answer is similar to the examples we saw in nature. It is not a question that can be asked. Instead, it is a virtuous cycle. Only when you code, you can document. And only when you document, will you enable others to take it forward, and only then will you have time to code again.?

If we ask the question, then we are forced to think that there is a possibility to just do one of them. Then we debate which is better. As we have seen in nature, it is just a cycle, and both need to be done.

Once we realize this, then the debate ends. We start to focus instead on how to do it. Just like a skier going up the lift is not debating that and ending up at the foothill. He just goes up in order to come down again.

It is not OR, but AND. If we accept that it is AND, then we can focus on how to do both effectively.

(Those with an engineering background). Since it is an AND, according to the Truth table of the AND gate, if both are not done (0), the result is 0. Only when both are done (or 1), the result is positive (1).

Summary

After questioning the questions themselves, they lead me to conclude that we cannot ask these questions "This OR That" in these questions. Asking the question gives us an illusion that there is a choice when in reality there isn’t. Instead, we can focus our efforts on how to do both effectively and efficiently.

Happy cycling through these activities (not choices)!

Acknowledgments: These thoughts are related to things I have read or listened to in philosophy. I am not able to place my finger on an exact reference, but I acknowledge that these are only developed from there.

Ramkumar Venkatesan

CTO at Cashfree Payments

2 年

thanks Rajaraman Raghuramanthe benefits being delayed is one reason. another reason is that benefits may be less visible. thirdly, something prevented from happening is tough to comprehend unless we consciously value them.

Rajaraman Raghuraman

Engineering Manager at Gen (formerly NortonLifelock/Symantec)

2 年

Good article Ramkumar Venkatesan . I have often wondered why people don't give adequate importance to tech debts and give more importance to features even when knowing the fact that it will come back to bite them in the future. Thinking it of AND solution instead of OR solution is a great way to start.

回复

要查看或添加评论,请登录

社区洞察

其他会员也浏览了