Thursday, 13 March 2014

Company, Politics and The Human Body

Swami Gulagulaananda said:
"You can't negotiate with, threaten or blackmail a person who has nothing to lose"

If you observe, you'll see several similarities between a company and the human body. Just like organ systems, you have teams. And just like complicated interactions among organ systems, you have interactions among teams. All these interactions need to happen very smoothly. The final objective is the survival and growth of the overall entity - The company or the body.

I remember an old story, perhaps from Aesop's Fables - Where all the organs fight among themselves. The heart says it is the greatest, for it helps pump blood all over the place. Without blood, what can you do? The stomach says that it is the greatest, for it digests food and gives energy. Without energy, the heart cannot pump. The limbs say they are the greatest, for they get food - without which you can't digest. The brain says that it is the greatest for making all of this possible, and so on. They all get angry and decide to stop working. The man dies... And along with him, they all do too. The moral of the story is simple. Every one of those organs are important, and every one of those organs are interdependent. Even if one fails, the major entity fails.

Companies are exactly like that - Every team is equally important for the smooth working of the organisation. If one of them fails, then the major entity works. Therefore, it becomes important that everybody works for the success of the entity.

You are often asked not to exercise after eating food. Why do you think that is? Blood is an important resource, but the body has only a certain amount of blood. When you run, your muscles need blood to be supplied to it. When your food is getting digested, blood needs to be supplied to it. If you have two operations at the same time, and a limited resource, one of the two systems will fail - Either you get muscle cramps or you will vomit. Either case, there is damage. It is the same with companies - You cannot drive resources beyond a certain point - It leads to issues.

Another point about companies that everyone needs to remember, is that it is nobody's personal fiefdom. Everybody's goal should be similar, betterment of the organisation, for only that will improve everyone's position even within. The same is the case about a country. If politicians treat their areas as their personal fiefdom, the country will never prosper.

All employees work for one or more of the following

  • Salary - obvious reason, and want it to grow continuously
  • Position - so that there is a sense of growth
  • Self worth - They appreciate themselves and feel they are contributing
  • Recognition - They feel good when others appreciate them
A person who does not get at least one of the above four will start showing tendencies of changing jobs. A person who doesn't get any of the above four will definitely quit.

If you make a person do something against his will, he will begin to treat his work like a job - where it simply becomes a task for him to complete and get done with. He will stop being passionate and you will notice a growing sense of frustration in him. This is especially true with creative teams where any attempts to stifle creativity will result in absurdly poor outputs.

If clear lines of hierarchy are not marked, there is a tendency for interference. Imagine the lungs digesting food. You instinctively know that it will not result in anything good. If these things are not clearly defined, especially at times when there is a growing sense of resentment, things will begin to snowball. These are all subtle things that are happening around you all the time, and you will begin to see them clearly with every passing day if you stop and pay some attention.

I believe that start ups should etch these thoughts into their core. Start ups are organisations where teams should work smoothly together. If at any point of time people forget that and try to intimidate others by marking people in "cc" and think that this is going to get things done, they ought to be thoroughly reprimanded for these actions, for it is against the very principle of a start up - A start up is an organisation where people will work very hard to get things done because they want to do a good job at the end of the day, not because they are scared.

To summarise, the more ego you have, lesser the respect you get. People might smile on your face, but all that is just that - smile in front of you. Don't take bullshit and don't give bullshit. Work to deliver the best possible output. And mind your business. Do this well, and you will be rewarded. You should... Otherwise, there are plenty of other companies out there and plenty of other people out there. Good luck...

You might also like to read:

Monday, 10 March 2014

Of approach to problems

Swami Gulagulaananda said:
"Think like a child"

The problem with most techies is that we tend to seek out tech solutions for all problems. I don't blame technologists for this - I think this is a general problem. Just to explain in a clearer fashion, here is an old story I had read a long time back.

There was a soap factory that had large machines that would do everything end to end - from manufacturing soaps, to making bars of them and putting them in boxes. They would run over conveyor belts. Now it so happened that occasionally there would be one empty box that would slip into the lot and that would create problems - You can't sell an empty box. Now where was this error? And how would you exactly debug and fix this? I actually asked this question to a bunch of people and typically you would approach this like a tech issue - Probably some counter was wrong, or try to figure out and see if there is a pattern in the empty boxes - that would give you a clue. How did the company resolve this? They kept a table fan close to the conveyor belt - All the empty boxes would get blown away by the wind and the boxes with soap were too heavy to get blown away...

I am sure you would appreciate the simplicity of the solution. Surely some of you might scoff at it saying that it is not really resolving the "main issue" - But I would like to ask you - is solving the original bug really the main issue? Of course, this solution looks like a hack - But it is effectively solving the problem and at the end of the day, that's what we want. The empty soap boxes are not really a waste. It's cheaper and faster. I think that's what we should try to aim at rather than being purists of sorts.

I was thinking of this lately because of what happened at work recently. We have a bunch of barcode readers which are attached to tablets. It so happens that tablets work with one input device at a time. That means, if you have a barcode reader attached, your native keyboard gets disabled. Which is fine, you might think - the problem is, at times, some barcodes don't get scanned. So if that happens, you have to type it manually. But there's no keyboard remember? So what do you do? You detach the scanner, type in manually and reattach the scanner. But when this happens once in every few minutes, the performance drops greatly. Plus, you risk ruining your USB to micro USB adapter.

What's the solution to this problem? My approach to this problem was to create our own keyboard as a replacement. Next to the textbox, a small keyboard icon is placed. You scan normally - and in the event your barcode doesn't get read, you tap on the icon and our own keyboard appears instead of the custom keyboard. You type in and voila! You are done!

As part of this idea, I wrote a small piece of code called ngKeyboard that you can check out here.

When I told this to my boss, he said that the problem could have been resolved by making barcodes bigger. Now this is where the difference in thought comes - You see, in my approach, the problem statement of the barcode being of a particular size was frozen and I was trying to bring about a solution to fix  the issue. The barcode size could have been altered as well - but I didn't think in that direction. This is what happens to most of us. We assume many things.

In fact, my friend was trying to automate a printer setting to make something appear a certain size. He was trying to figure out how to get around browser settings. The solution finally was to adjust our own data instead. We forget the simplest solutions because we tend to apply tech all the time.

And this happens all the time - In fact, my car keeps losing air in the two tyres on the left. The right ones are about 30 (max being 32) but the left ones reach 17-18 all the time. I wondered why that happens. I thought, do I try to avoid potholes and don't let my end go over them while not caring much about the other side because it doesn't affect anyone that much? I was talking about this to my colleague and he asked me - What if someone is releasing air from the tyres? It so happens that there are some miscreants who are letting air out of tyres near my office. Data insufficiency?

The more we learn, the more we try to fit something that we see around around things that we already know. If I ask you why something happened, you will try to explain it with things that you already know. It's great that way - If you don't know something for a fact, you will still try to explain it by extrapolating, maybe... But, in a way, that limits our abilities to think in a radically different way. The other day, I was talking to my friend about how creative children are, because  they don't care about feasibility. How do you fix parking problems? Tie them to floating balloons and they will float in the air - This way of thinking will be completely disregarded by adults. Not feasible, you would say. Too expensive, you would say or anything else. The more you learn, the more experience you gain, the less willing you will be to venture out into the unknown. Our approaches begin to show heavy bias - Like tech people tend to think everything in terms of tech. I am reminded of Bohr's barometer story in this regard.

To summarise, before solving a problem, make sure you think more widely than the problem statement itself - because very often, a solution can be much simpler if you look at it from a little further behind. And don't get biased by technology or any other field - That will help you think in a much clearer way. Lastly, think like a child - You will see that your imagination will let you come up with more awesome things than you think you are capable of.