Rahul, a programmer, started his journey in the software industry just like anybody else. He wrote a piece of code, compiled it, and then looked at the compiler output. It reported some syntax errors, and he them and recompiled the program. He repeated this until he got no errors. Then he ran it, and got runtime errors which he again corrected iteratively until the output was as expected.

There are some programmers who do this day after day, year after year.

Rahul however tried consciously to reduce the compiler error output and reduce blindly typing the code depending on the compiler to show them the typos later. He still got errors, but less than the previous attempt. He continued this endeavor until he come to a point when he could write a new complex piece of code, and get “0 errors 0 warnings” the first time he compiled it. He felt exhilarated that this was possible at all. He had reached the first level of perfection.

When he ran this program, he was disappointed that it crashed straightaway. He debugged it to discover the error and thought “oh how could I have made such a silly mistake and not checked if that pointer was not null!” Then he repeated the same process for runtime errors… trying to get the program passing the smoke test the first time it was executed.

He realized that he had to control his impulse to type in code straightaway, and first get his ideas clear. He got into the habit of first taking a piece of paper and writing a rough algorithm or just an abstract mind map kind of thing … to get the design right before going in front of the computer.

Program after program, he kept trying, when finally he was able to get another breakthrough… a new piece of code written such that it compiled with no errors at all; and which ran perfectly the first time.

He didn’t stop here… he kept working… kept trying to make the success rate more consistent, with every new program he wrote.

As time passed by, Rahul realized that he was generating far more output having much higher quality than his peers. He tried to help them whenever they got stuck and learnt more in the process.

Then the first terrible thing happened… he was given a promotion with a salary raise. The terrible thing was not the promotion or the raise itself, but Rahul’s perception of himself after it. He had no clue that his ego had increased. It was an achievement… no doubt, but the problem was that the pride did not dissipate but remained at the back of his head most of the time.

He still continued his endeavor to learn and get better and better at software development. He read more books on design, and started seeing patterns common to different unrelated projects. He eventually came across the famous design patterns book by the GOF. Here was a whole book on the chapter written by people far more advanced than him. He felt proud that he already thought of a few of the ideas they were presenting in the book.

As he climbed higher and higher up the corporate ladder, getting better and better paid, his ego kept on increasing. Unknown to him, complacency had started creeping in.

Until one day, when a calamity struck.

The previous evening had been just another typical family evening after he returned from home… ate some nice payasa made by his mother, had dinner with everyone, quarreled over TV channels, listened to L. Subramanyam’s violin which was a common favorite to himself and his father… and then slept peacefully after everybody had wished each other goodnight.

And the next morning his father died, expired due to a massive cardiac failure.

The suddenness of it left him numb; it took quite some time for him to get over it.

Eventually, time heals all wounds.

The scientist in him prompted him to objectively retrospect about what had actually happened.

The truth dawned on him that all the money he was earning had done nothing to save his Dad who had been so precious to him.

He suddenly saw the world in a new light… he wondered why people were fighting with each other… saying angry things to each other when none of them had any clue if they would see each other again the next day. He could see that they were all under the assumption that whatever they were fighting about was far more important then themselves. In fact he could see through how many assumptions his own life had unquestionably been based on and was almost amused at his own ignorance.
He developed the habit of first of all becoming aware of these assumptions, and then questioning them, finding out which of them were valid, and which did not hold weight. Questioning never meant rejection, it only meant reconsideration from a fresh perspective instead of blind acceptance.

Years rolled by, and Rahul came across the Bhagavad Gita. He questioned the assumption that it was a book full of impractical theory, so idealistic it was only fit for saints and would make very boring reading. However he still gave it a shot, and was stunned to see that it made a great deal of sense even to his own software profession. He later came across the book Jonathan Livingston Seagull, which greatly renewed his quest towards perfection in software development. He could see a close relationship to the Karma yoga of the Bhagavad Gita, which says “pal… you better work without bothering about the rewards, your work itself is a reward”. This had seemed to be so impractical earlier, the immediate retort would be “would you work without a salary huh!? …what nonsense!” Now the answer was clear… obviously any employer would pay salary for work well done, and work would surely be well done when it is done with the intent of Perfection. Perks and tokens of appreciation are needed, by people who don’t know who they really are… who need somebody else to tell them “good job” to give them a sense of security and well-being. Rahul felt liberated from such needs… and once he was liberated he immediately realized they had been acting as unseen barriers to his true potential.

Appreciation had its importance, serving as an acknowledgement that he was on the right track; just like a mark on tree in a dense forest to indicate that one was going in the right direction. He recollected his earlier days of typing in code consciously to make sure it worked, the first time, every time. He understood the concept of “Being there”.

He was greatly influenced by the movie the Gladiator, where the gladiator rises up from the ranks of a slave to a leader, just by the perfection in his skills – without anybody giving him the designation of “Leader”, without the need for any external person praising him and motivating him.

He kept trying to improve; this time with a difference… he stopped tying his designation to his job. He could see that many people held various beliefs, such as that a C++ programmer should condemn everything about Java and vice versa, and it is wrong for a Microsoft technologist to appreciate anything in the Java world, and vice versa. Some believed that testing is not part of the job and its something that some testing team has to do. Some others felt a business sense is needed only by managers and businessmen, and is something totally irrelevant to a purely technical person.

He could see great brilliance and creativity in many people around him, yet how such beliefs limited their capacities. Many of them, including some senior to him, were limited by their designation and their role. They were caught up in their own closed shells, making sure that they were saving their own skin by ensuring that their own role was being played properly. Very few people were thinking about the company’s point of view and what would improve the bigger picture. There was a lot of hesitation in questioning any decisions which they felt might not be better for the company, at the same time the decision makers were so used to the lack of questioning, that they often considered silence as consent.

One particular common assumption was that once a person has done programming for x years, he should stop coding and become a manager. Rahul questioned this in his mind, because he could see a whole new range of possibilities. He could see that it was perfectly fine for a programmer with the right aspirations and skills to evolve into a manager, but did not think that the same shoe fit him. He started imagining alternatives, and one of the possibilities was to remain technical, to stay in touch with programming and at the same time learn about architecting software systems. He could sense that it was possible for a true professional to look at a problem and understand it in great depth, ask a lot of questions such that every single aspect of the problem is understood. And he should be able to intuitively visualize many solutions, and know the pros and cons of each. He should be able to visualize in his minds eye the whole system running end to end before even beginning the implementation. He learnt later that the title called Technical Architect matched closely with what he had in mind. It involved several other aspects such as developing a keen business sense and being a mediator between the end customer and the development team.

His peers had developed so much of attachment to what they knew that they considered it “their” domain and had so much of hesitation to learn anything new. Rahul learnt that the industry changes so rapidly that at times, when circumstances demand it, it is important to “let go” of some concepts dear to him, which he had mastered with so many years of experience, to learn totally new, apparently unrelated concepts. The mighty oak is broken in a fierce storm, but what survives is the slender grass which bends according to the winds.
He sometimes would get a false sense of being overwhelmed by all that he knew. He eventually realized that such impressions about him being so knowledgeable already would only serve as a barrier towards further progress. There was so much to learn, often even from people much younger and inexperienced than him, that he needed to break such barriers. He learnt the technique of “emptying himself” to be more receptive to new ideas; as Socrates had said “All that I know is that I know nothing”.

All his life, he had made many enemies, who were always acting as obstacles to his path. He had frequent battles with them, and won sometimes, lost at other times. All of these enemies were within him, the most formidable ones being his laziness and lack of discipline. These enemies formed a huge gap between his ideals and his actions. Walking the path he believed in would mean bridging this gap. Now he could clearly see these enemies, and recognize that they were not part of his nature, and stopped believing that “I am like this only”.

It was a slow transformation, but an interesting one nevertheless. No action is more fascinating than the action of self-transformation. Nothing on earth can compare with its drama or its value. In Athens, one day, Diogenes was asked whether he was going to attend the athletic contests at the local arena. Diogenes replied that his favorite contest was to wrestle with and to win over his own nature.”

He watched the movie Beautiful Mind, and was impressed by the way the mathematician copes up with the creations of his own mind. He says “you feed the past and it becomes your present”. In the movie, he ignores the imaginary people no matter how much they convince him to get him to talk to them… esp. that sweet little girl with a cute smile and her arms open … or that military guy who shouts at him to convince him. Rahul felt that everybody is a schizophrenic in some way or the other. The difference is that a schizophrenic sees imaginary people. For the others, the objects are not always people but something else, some notion that they’ve fed for many years and cannot get rid of it overnight when they realize it is baseless.

He remembered the earlier days wasted in cribbing for an endless number of reasons. He came across a story told by a wise man, which he wished he had seen at that time:

“There are two Goddesses that reside in the heart of every human being. Everybody is deeply in love with these supreme beings. But there is a certain secret that you need to know, and I will tell you what it is.

“Although you love both Goddesses, you must pay more attention to one of them. She is the Goddess of Knowledge, Sarasvati. Pursue her, love her, and give her your attention. The other Goddess, Lakshmi, is the Goddess of Wealth. When you pay more attention to Sarasvati, Lakshmi will become extremely jealous and pay more attention to you. The more you seek the Goddess of Knowledge, the more the Goddess of Wealth will seek you. She will follow you wherever you go and never leave you.”

He dreamt of a future of the company he worked in; that it would be like a university, where there was free flow of knowledge regardless of project groups or sections. Every single person would find out for himself what he was best at, and take responsibility for gaining expertise in one particular skill; at the same time being open minded about learning and exchanging information and opinions about others. Buddha’s words “Your work is to discover your work and then with all your heart to give yourself to it” made a lot of sense.

In his dream, every senior expert such as a technical lead or architect would take it upon himself (or herself) to mentor younger members of the group. They would identify and empower them to build upon their strengths. They would effectively work towards bringing the younger members up to their level, so that they themselves would become redundant and would be in a position to take on greater responsibilities. He dreamt of a sound knowledge management infrastructure in place, with people needing no encouragement to go ahead and participate and share their knowledge. There would be well attended technical seminars at a company-wide level, as well as frequent discussions and presentations at individual project group levels.

What a powerful company it would be!

He’d seen sevral of these things already around him, for example in some recent KM initiatives. He guessed it might only be a matter of time that the others fall into place, and felt like contributing his own mite towards it.

He eagerly described these ideas to his friend Naren. Naren replied “What?! You want everybody to become geeks!! Forget it pal… no way am I going to be a 24 by 7 bookworm”.

Rahul replied “no no… you’re missing the point here…! If people are totally knowledge oriented… the chances of them getting stuck in a project at a critical time would reduce drastically… the need to spend hours working overtime would reduce… their productivity would shoot up… and they would be able to be more happy overall… have less worries at work… and so more cheerful when they would go home every day.”

Naren waited for Rahul to catch his breath… and admitted that he was more confused than impressed with Rahul’s ideas.

Rahul repeated it again… this time more slowly… and added “Just imagine… you would actually look forward to come to work everyday, and be happier when you go home.” Naren thought about it and said “hmm… maybe it makes sense”.

Rahul replied “dosent matter if it makes sense or not, unless we actually try it out”.

Naren said “what makes you think there already aren’t people thinking along the same lines?? There are plenty”. Rahul replied… “true, but they only form the minority, they are sparsely distributed, and don’t know about each other much. For something like this to click, it must work on a larger scale… you know, like radioactivity… there has to be a critical mass for something worthwhile to happen… or else it just becomes a fad which dies out in no time”.

And Naren asked “and how do you imagine this critical mass will get started?”. Rahul was silent, he had no answer. Eventually he confessed “Actually… I don’t know… first of all I have my own problems… I’m such a lazy guy that I keep thinking of so many things but never end up doing anything… I must work on myself first”.

Naren replied… “ha, you do that first… then think of advising other people!” Rahul was surprised “look up pal, there’s a difference between advising people and sharing one’s thoughts. If one can advise people only when one is perfect, we know that nobody is perfect and that will never happen. When one is only sharing one’s ideas, the people who listen are free to question what I say or reject it. Because by the time I ever actually win all my inner battles and come close to becoming a real expert, others would be losing invaluable time. On the other hand, if I were to only put all my energy into telling people what I believe, nobody would take my words seriously since I myself wouldn’t be in a position to prove their value by example. So the only way out is the middle way… to maintain a balance.”