free html hit counter
Posted on: Sunday, January 31, 2010 by Rajiv Popat

Programmer Tip: Consider Taking A Couple Of Happy Hours Each Day Of Your Life.

On a typical day that looks like any other, for anything between three to ten hours, I am an employee.

Most of that time, I spend firefighting.

Fred wants to a discussion regarding his salary, Jack is having a problem with the data-access layer, somewhere the sky is falling. I'm adapting, prioritizing, talking, taking decisions and above all I am reacting to random uncertainty as it rolls my way.

Then there are days at a stretch when I cannot seem to get much done.

Seventeen emails I have not responded to sitting in my inbox. I just missed a status call. Last I checked I was going to get back to Jack in the couple of minutes. It's been two hours since I told him that.

FU@#K!

Then the magical time of the day happens. Usually, this is late evening for me. When the cubical farm is quite. When I am not speeding. When I am not cruising on employee-auto-pilot-reactive-mode. This is when I am not assertive. I am not running around solving problems. I am not in meeting rooms. I am not scribbling things desperately on the whiteboard trying to make a point. This is when I am not ATL+Tabbing between applications.

Late evenings, for me dear reader, are my happy hours.

This is the time, when I set those crazy baby neurons free and let them wander where they feel like wandering. I give these neurons the liberty to fail; even make a fool of myself.

Sometimes, it is a new idea for a blog post. Sometimes, it is a new technology that I am trying to dissect and understand which will later turn into a training session for my team. Sometimes, it's an open source framework I am playing with which I will later release.

Sometimes, it is just a few webcasts or just a few videos containing deeper insights into the human mind. Sometimes it will just be playing with new ideas that will not let go till they become product features or new products.

Put simply, my happy hours are the time when I am working, sometimes even for my organization, but I am doing so without wearing my employee cap. This is when I am going slow. Without trying to prove a point. Without desperately trying to get things done. Not just enjoying, but actually loving, whatever it is that I am working on. This is my disconnect from a system that is designed to turn you into a robot.

I love my happy hours.

Most organizations around the world feel hugely insecure with employees spending happy-hours. I had my share of these organizations until I stumbled upon my current organization, where happy hours were not just acceptable, they were actually encouraged. Today happy hours are an integral part of our leadership.

So much so that every once in a while I find myself giving appraisal feedback to individuals I am promoting: You are way too strongly attached to the organization. You need to detach for a couple of hours, look outside and bring the learning back into the organization. You need your happy-hours.

Its your happy hours that will make you much more valuable as an employee. It is what you learn in these happy hours, that will become your long term investment for your career in your organization. It is your happy hours that will empower you to steer your organization or your team members in directions that they never thought of taking while they were busy fire-fighting or doing what they were told to do.

So the next time you have the outlook window blinking with seven follow up icons, code waiting to be written, problems dying to be solved - ask yourself if you are completely ignoring your happy hours in the midst of blinking meeting reminders, pending email responses and long To-do lists.

The employee mode won't take you far, not even as an employee.

Go ahead. When you get a chance, disconnect and take your happy hours. You will be doing yourself and your organization a favor.

I wish you good luck.

posted on Sunday, January 31, 2010 8:53:00 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Saturday, January 30, 2010 by Rajiv Popat

Programmer Tip: No One Really Cares About Your Failures.

Jack, a young and capable developer is starting out his development blog by hiding behind the mask of anonymity.

He is concerned that his blog posts are not mature enough and that he still hasn't found his style of writing. He prefers writing anonymously because it allows him to learn how to write without his friends, family or juniors finding out how much he sucks at it.

When I hear Jack mention this over a conversation at a friendly neighborhood food joint, I cringe.

There is nothing wrong with anonymity. Which name a man writes under, is every man's own choice.

What irks me however, is an overly conscious attitude towards failure and the active effort being put behind hiding how much you suck.

In the world where I live, spending time and effort behind shit-canning how much you suck seems like an utter waste of time. Everyone successful at what they do, that I know of, is often rather open and candid about how much he sucks.

Steve Yegge for example, in his classic post on Languages, makes a rather honest, open and direct confession followed by his attempt at sucking less each year. He explains:

When I started at Amazon, I could recite for you all the incantations, psalms, and voodoo chants that I'd learned, all in lieu of intelligence or experience, the ones that told me Multiple Inheritance is Evil 'cuz Everyone Says So, and Operator Overloading Is Evil, and so on. I even vaguely sort of knew why, but not really.

Since then I've come to realize that it's not MI that sucks, it's developers who suck.

I sucked, and I still do, although hopefully less every year.

Legendary author Steve McConnell describe the idea of accepting how much you suck rather articulately in his classic book Code Complete. He explains:

What? You don’t have to be super intelligent?

No, you don’t. Nobody is really smart enough to program computers. Fully understanding an average program requires an almost limitless capacity to absorb details and an equal capacity to comprehend them all at the same time.

The way you focus your intelligence is more important than how much intelligence you have. At the 1972 Turing Award Lecture, Edsger Dijkstra delivered a paper titled “The Humble Programmer.” He argued that most of programming is an attempt to compensate for the strictly limited size of our skulls. The people who are best at programming are the people who realize how small their brains are.

They are humble.

The people who are the worst at programming are the people who refuse to accept the fact that their brains aren’t equal to the task.

Their egos keep them from being great programmers. The more you learn to compensate for your small brain, the better a programmer you’ll be. The more humble you are, the faster you’ll improve.

In one of my earlier post, I describe how no one cares about you and while a couple of people were really angry at the post, the bright side of no-one caring about you, is the fact that they do not even care about failures.

Mark Cuban describes the idea of using this could-not-care-less attitude of the world around you to your advantage using a single quote. He explains:

It doesn’t matter how many times you fail. It doesn’t matter how many times you almost get it right. No one is going to know or care about your failures, and neither should you. All you have to do is learn from them and those around you because... All that matters in business is that you get it right once. Then everyone can tell you how lucky you are.

A good way to start wrapping this post up, would be with an inspirational ad from Nike, where Michael Jordon is heard speaking the words of wisdom:

I've missed more than 9000 shots in my career. I've lost almost 300 games. Twenty-six times I've been trusted to take the game winning shot and missed. I've failed over and over and over again in my life. And that is why I succeed.

Today, I leave you, dear reader, with a word of advice: stop taking yourself seriously. Start flaunting your failures, accepting how much you suck and above all start sucking less each year. And no, you don't have to worry about the whole world finding out, because no-one is watching. They just don't care. Remember?

Now, stop shit-canning your failures and fail in remarkable new ways like a baby.

I wish you good luck.

posted on Saturday, January 30, 2010 11:05:22 PM UTC by Rajiv Popat  #    Comments [6]
Posted on: Friday, January 29, 2010 by Rajiv Popat

Programmer Tip: Consider Coding In Silence Or Switching To Pair Of Head Phones.

Jack codes quietly during the day. He is a seriously kick-ass programmer at work. Later during the evening, as the number of people in the cubical farm go down, Jack transforms into a musical rock-star dying to share his musical taste and collection to the whole wide world.

I cringe as I listen to the speakers of Jack's laptop buzzing away to glory.

"Headphones people. Use a freaking set of headphones." --- I think.

Then quietly, I grab my laptop and head in search of a quite conference room that will allow me to work.

Demarco and Lister in their legendary book, the Peopleware discuss issues associated with programming while listening to music:

During the 1960s, researchers at Cornell University conducted a series of tests on the effects of working with music. They polled a group of computer science students and divided the students into two groups, those who liked to have music in the background while they worked (studied) and those who did not. Then they put half of each group together in a silent room, and the other half of each group in a different room equipped with earphones and a musical selection.

Participants in both rooms were given a Fortran programming problem to work out from specification. To no one's surprise, participants in the two rooms performed about the same in speed and accuracy of programming. As any kid who does his arithmetic homework with the music on knows, the part of the brain required for arithmetic and related logic is unbothered by music—there's another brain center that listens to the music.

The Cornell experiment, however, contained a hidden wild card. The specification required that an output data stream be formed through a series of manipulations on numbers in the input data stream. For example, participants had to shift each number two digits to the left and then divide by one hundred and so on, perhaps completing a dozen operations in total.

Although the specification never said it, the net effect of all the operations was that each output number was necessarily equal to its input number. Some people realized this and others did not. Of those who figured it out, the overwhelming majority came from the quiet room.

Many of the everyday tasks performed by professional workers are done in the serial processing center of the left brain. Music will not interfere particularly with this work, since it's the brain's holistic right side that digests music.

But not all of the work is centered in the left brain. There is that occasional breakthrough that makes you say "Ahah!" and steers you toward an ingenious bypass
that may save months or years of work. The creative leap involves right-brain function. If the right brain, is busy listening to 1001 Strings on Muzak, the opportunity for a creative leap is lost. The creativity penalty exacted by the environment is insidious.

Since creativity is a sometime thing anyway, we often don't notice when there is less of it. People don't have a quota for creative thoughts. The effect of reduced creativity is cumulative over a long period. The organization is less effective, people grind out the work without a spark of excitement, and the best people leave.

The whole left-brain-right-brain argument has been a question of argument amongst neuroscientists for years and I don't know if there is such clear demarcation between left-brain and right-brain. Having said that, the fact that your brain is just not designed to multitask is rather well known.

Quite work environments are so important that I have often gone ahead and proposed a silence room for every office in planet earth. Silence and quite working environments are so important to most kick ass developers that Jeff Atwood has decided to make it a part of his Programmer Bill Of Rights. He explains:

Programming requires focused mental concentration. Programmers cannot work effectively in an interrupt-driven environment. Make sure your working environment protects your programmers' flow state, otherwise they'll waste most of their time bouncing back and forth between distractions.

True, music serves as a nice distraction from other conversations, noises and crazy distractions that you might come across in a typical cubical farm; but when picking between music or silence while programming I would pick silence any day.

You, dear reader, are free to pick music, if you are still not convinced, but if you do pick music over silence, do me a favor. Be a nice citizen of the developer community, think about being considerate to your fellow developers who may not share the same opinion as you. You are not a radio station and unless we tell  you so, we are not interested in listening to songs you want to make us listen today.

Now, if you must listen to music as you code, grab a pair of head phones and use them. Do not make us listen to your collection of songs. Seriously.

posted on Friday, January 29, 2010 9:05:00 PM UTC by Rajiv Popat  #    Comments [4]
Posted on: Sunday, January 24, 2010 by Rajiv Popat

Understanding A Simple Fact Of Life - Basic Traits Of People Usually Do Not Change Easily.

As managers, leaders or whatever it is that we like to call ourselves, we have a tendency to think of ourselves as mentors, helpers and protectors of people who work with us.

As a part of this tendency, it is but natural to get tempted to help your team member change himself every time you see a fault or a weakness in the person. After all, if you can push hard enough the person might change, improve and grow to be a better individual.

If you are a young and budding manager, chances are that every once in a while you find yourself spending time in a one-on-one with a person in your team. You  find yourself trying to mentor him, help him give up a weakness or fix a basic problem in his character.

Then as months go by, you learn that all you did with the person in that one on one was that you wasted his time and you wasted your own time.

As you grow older, you tend to implicitly and unknowingly learn the cardinal rule of management - people do not change their basic traits and character over time.

Markus Buckingham and Curt Coffman, describe this basic rule of management in their book First break all the rules, using a simple research on neuroscience:

At birth the child's brain contains one hundred billion neurons, more brain cells then there are stars on the Milky Way. These cells will grow and die regularly throughout the child's life, but their number will remain roughly the same. These cells are the raw material of the mind. But they are not the mind. The mind of the child lives between these cells. In the connections between the cells. In the synapses.

During the first fifteen years of life, the carving of these synaptic connections is where the drama unfolds.

From the day she was born, the child's mind begins to reach out, aggressively, exuberantly. Beginning at the center of the brain, every neuron sends out thousands and thousands of signals.

They are trying to talk to one another, to communicate, to make a connection. Imagine everyone that is alive today simultaneously trying to  get in touch with 150,000 other people and you will get some idea of the wonderful scale, complexity, and vitality of the young mind.

By the time the child reaches her third birthday the number of connections made is colossal - up to fifteen thousand synaptic connections for each of it's one hundred billion neurons. 

But this is too many. She is overloaded with the volume whirling around inside her head. She needs to make sense of it all. Her sense. So during the next ten years or so, her brain refines and focuses on its network of connections. The stronger synaptic connections become stronger still. The weaker ones wither away.

Dr. Harry Chugani, professor of neurology at Wayne State University Medical School, likens the pruning process to a highway system:

"Roads with the most traffic get widened. The ones that re rarely used fall into disrepair."

If she ends up with a four-lane highway for empathy, she will feel every emotion around her as though it were her own. By contrast, if she has a wasteland for empathy, she will be emotionally blind, forever saying the wrong thing at the wrong time to the wrong person - not out of malice, but simply out of an inability to pick up the frequency of the emotional signals being sent.

The carving for these pathways is the carving of her character. Neuroscience is telling us that beyond her mid-teens, there is a limit to how much of her character she can recarve.

Neuroscience confirms what great managers know. Her filter, and the recurring patterns of behavior that it creates, is enduring. In the most important ways she is permanently, wonderfully, unique.

So are you. And, of course, so are the people you hire.

Your job as a leader is to best utilize the strengths and if possible even harness the weaknesses of your team members. It is not to try to fix every single weaknesses or to eradicate every fault out in your team. People with high degree of emotional attachment being moved over to PR departments and flourishing there is one simple and classic example. Keep your eyes open and you will find multiple others.

You might be able to teach people new skills and technology, but if you are trying to teach someone how he can feel empathy towards others, or why he should be lying less, you are probably wasting his time and your time.

Every time you find an issue with the basic trait or character of a particular individual, trying to fix the issue is a waste of everyone's time. Hoping that you will be able to fix the weakness is hoping for too much. If glaring issues exist with an individuals personality, character or basic trait and you believe that these issues will be a problem in letting him flourish in his work, you might want to:

  1. Consider not hiring the individual if you can (unless of-course you can find a different role where he fits really well).
  2. If you are stuck with an individual, you have spent umpteen numbers of hours trying to fix a problem and your organization lacks another role where he fits, asking a person to leave your organization might be an option. It is hard, but most veteran managers will tell you that you are a management virgin till you have done this at-least once.
  3. Finding him a role where he can utilize his weaknesses and turn those into his strengths - if you can do this, you can pat yourself on your back, because this dear reader, is the biggest 'help' you can extend to someone. This is what leadership is all about.

Remember, next time you see someone in your team with a weakness in one or more of his basic traits, do not focus on trying to fix the weakness. Instead, focus on finding him a role where he can utilize his weaknesses and turn those into his strengths.

I wish you good luck.

posted on Sunday, January 24, 2010 10:43:30 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Saturday, January 23, 2010 by Rajiv Popat

Understanding And Avoiding The Serious Perils Of F-You-Code.

During its early days Multiplitaxion Inc, was a dramatic company with equally dramatic projects, every single one of which could have been quite literally turned into a small documentary or a movie. Of those projects a particular one, which for the purposes of this post, we shall refer to as 'Project-Rocket-Science' introduced me to, what I later started referring to as F@#K-YOU-Code.

The story started out with Fred intimidating a team member to write a piece of code that would transmit a file over a message queue which would then, at a later stage, transmit the file over to the client. The message queue was locked down there were serious issues with submitting requests to it.

Both pressure and intimidation on the developer were increased to get the job done on time so much so that we could see the tension in the developer's eye. He was quite literally working sixteen hours a day and was getting seriously nervous about the fact that he was facing a problem and no-one cared to help. Every time he went to Fred seeking help he returned, with his hands full of insulting remarks.

Then one fine morning it happened. The Breakthrough. Clicking the 'transmit' button on the screen showed the message 'file transmitted' and the entire team rejoiced. Soon multiple other complicated problems in the project started getting solved almost magically. The project was back on time, and the pressure and intimidation-levels came down.

A couple weeks later, as the project started nearing the testing phase, two of the best developers, including the developer who was working on the file transmission piece resigned and left the organization. Then others started following.

The couple of guys that remained in the team continued with the project.

A few days later, as the project moved into the testing phase, a tiny little bug appeared on the bug tracking system which was titled --- 'File is not getting transmitted when the transmit button is clicked'.

When Jack, who was a young and budding developer was brought over to the project and assigned this bug; he decided to study the code and get to the root cause of the bug. It took him less than ten minutes to get to the root cause and when he showed us what he had found, every single one of us laughed inwardly and at the same time we felt a chill run down our spines.

Embedded behind the click event of the button were two lines of code which read:

// No immediate fix was found for the file transmission issue. Will be fixed later.
Response.Write("File Transmitted.");

Jack, said in a as-a-matter-of-fact, cold blooded tone - 'it is not a bug. The code never did anything other than display a message of successful transmission'

Then after a long pause, he remarked, 'why would anyone do something like this?'

My response was rather spontaneous and unplanned --- It's F@#K-YOU-Code. That is what he wanted to say when he was writing this.

The person who wrote the two lines wanted to send a very clear message to Fred through these two lines of code, before he got sick and tired of the insults, the intimidation and the pressure. Before he resigned, he had cracked the biggest practical joke that I ever saw in my career and it took us two weeks and a QA cycle to catch his practical joke. By the time we did, he was gone.

But the dramatic twists of this real life story do not end here.

When Jack went back to Fred, and tried to explain to Fred how what he was trying to fix was not just-a-bug. It was functionality that he would implement and that it would take time, Fred pretended like he was not hearing English but a totally different language.

Jack was now under the intimidation and intense pressure spotlight. Jack worked for two weekends and spent more than sixteen hours a day trying to replace the two lines of practical joke with genuine code that actually transmitted the file. Then on a Friday Jack was told that he was causing the project to stall and the fact that he was not being able to resolve a simple bug, was causing serious doubts on his competence.

The following Monday, we heard about Jack's resignation. This bit was expected.

What was not expected however, was that, on his last day, Jack logged into the bug tracking system and marked the bug as 'Resolved' and in the comment field added a line - 'resolved using the same approach of original implementation'.

As you would expect, the bug of course, was not resolved.

When we asked Jack what he meant by what he wrote in the comment field of the bug tracker he responded with a rather sarcastic smile. We knew what it meant - 'F@#K-YOU-Code, F@#K-YOU-Resolution' - the bug was quite literally 'resolved' using the exact same approach of the original implementation. Jack did not do a thing to fix the code. He just went to the bug tracker and marked it as resolved on his last day at work.

Three weeks after Jack resigned, the organization discovered that all the other complicated problems in the project that had started getting fixed were also fixed using F@#K-YOU-Code, written by people who had planned their resignation and left before they were caught.

The project went into a nose dive.

As someone who was not directly connected to the project, I saw the team members who were directly connected run for cover.  As for Fred, no-one did a root cause analysis of why the project failed and Fred was moved to manage another project.

Of-course, no-one in the 'upper management' could have even thought about developers writing F@#K-YOU-Code as a symptom and intimidation as a root cause for a project failure.

They were busy looking for more complicated reasons like - The-Requirements-Were-Not-Clearly-Defined or The-Scope-Was-Not-Correctly-Measured.

Even though this was a hugely dramatic, one in a million example of F@#K-YOU-Code that you get to see in your professional life, even today, every once in a while I see developers write subtle examples of F@#K-YOU-Code every time they are cornered using tools like insult and intimidation. Of-course they don't plan their resignations and crack practical jokes as huge as the one I witnessed, but every time they are cornered, chances are that they will litter the codebase.

They will leave a broken window with a F@#K-YOU-FOR-CORNERING-ME message silently and subtly embedded in the codebase without even knowing or fully realizing that they are doing so.

F@#K-YOU-Code might be causing your project to fail right now and you may not even know it.

Talk to your developers, make them feel at home, do not (and I cannot emphasize this enough) use an intimidating or a condescending tone while talking to them. Encourage them to bring problems out in the open and when they do, stop playing the blame game and help them fix the issues.

I wish you good luck.

posted on Saturday, January 23, 2010 10:29:51 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Friday, January 22, 2010 by Rajiv Popat

Management By Intimidation Is Downright Stupid And Risky.

Fred sits high up on the pecking order of Multiplitaxion Inc. He is notoriously famous for meticulously planning his projects by the man-hour and maintaining hugely elaborate Gantt Charts which he uses to track people by-the-day.

He is in control.

When did Jack the developer come in today morning. How many hours of work did he do today. What did Jack do yesterday.

Fred knows it all.

Panic buttons, artificial deadlines, pressure techniques - Fred has has all the arrows in his management quiver.

Arrows which he fires from time to time.

And then there is a secret arrow which never misses its target, even if all the other arrows do not work.

Intimidation.

The use of I-am-highly-disappointed-in-you line of conversation is just for starters. Fred can go far in this line of discussion and he can seriously make you hate yourself after just thirty minutes with him in a meeting room.

Fred is young. Fred is taking his first steps of professional management. Fred is ambitious and merciless. Fred, dear reader, is getting things done.

Fred has tasted success with Management-by-intimidation and he has no intentions of stopping.

I see Fred function and I cringe.

More than I feel sorry for the people that work with Fred, I feel sorry for Fred himself.

What Fred is doing, dear reader, is pretty similar to drunk driving. You feel the rush of adrenalin in your nerves, you feel like the top of the world and you keep moving faster till you crash your way into a sudden accident.

With Management-By-Intimidation the sudden accidents happen when you forget:

  1. There are people sitting higher up than you in pecking order.
  2. Even though some of them are really nice-to-work-with-even-when-the-sky-is-falling they can be really big a@#holes when they spot a@#holes and have to deal with them.
  3. Just when you think that no one is watching you intimidate young engineers fresh out of college, someone who is higher up in the pecking order and can be a bigger a@#hole than you if he wants to be, is either watching you or will find out.

Monica Burns-Capers describes this in her article on Management by intimidation. She explains:

Managing by intimidation is never the right way in any organization. If it has worked for you now or in the past, you’ll soon regret it. While you are busy intimidating your staff, someone in a higher position is paying attention. You think you are getting away with it because nobody has said anything. You’re not. It’s only a matter of time now. The higher-ups are waiting on you to hang yourself. And you will. You can’t possibly think that your intimidation will go on forever. When you hang yourself, watch how far down the hill your career starts to plummet. It’ll go so far down, you won’t be able to see it anymore.

So if you want longevity in your career and you want to gain the respect of your subordinates and your colleagues, learn to give them respect first. Tell them that they are doing a good job sometimes. Reward them for their work.

Manage your staff by the knowledge and people skills that you posses. Besides, isn’t that what got you the position in the first place.

Even in the most bureaucratic of organizations, if you work hard at making yourself hated and disliked, you will eventually be hated and disliked, consistently across the organization.

When you play around with intimidation as a tool, you typically get a lot more attention as a manager and you create huge ripples (sometimes even waves) in the organizational pond.

If you ask me personally, I have seen more than a dozen managers who believed in the idea of intimidation get fired and yet, every year, I bump into at-least one or two managers who tend to practice the art of management-by-intimidation, within closed doors of meeting room. Every single one of them seem to believe that no-one in the pecking order above them will find out and as long as things get done.

Almost invariably, every single one of them tend to become insanely famous as a@#holes and end up collecting dislike and hatred enough to get them fired.

Remember, management by intimidation is pretty much like drunk driving. It is not just a stupid thing to do, it is actually pretty risky.

I leave you, dear reader, with a word of advice: even if you are having a bad day or you are getting a strong urge to shout at someone, be nice. It helps you much more than the person you are being nice to.

Empathy happens to be much more powerful arrow to have in your quicker and it is just as accurate when it comes to hitting the bulls-eye. Go ahead, and replace intimidation with empathy and you just might see some serious magic in your work life.

I wish you good luck.

posted on Friday, January 22, 2010 10:41:46 PM UTC by Rajiv Popat  #    Comments [3]
Posted on: Sunday, January 17, 2010 by Rajiv Popat

Avoiding The Typical Software Development World Stereotypes - Part 2.

Your Geek Isn't Shy. He Is Just Not 'At Home' Yet.

Even though I cannot describe my school life in the friendly neighborhood Indian school as traumatic, but I often use the word 'painful' to describe it rather accurately. From arguments with teachers, to being yelled at by the principal for not getting insanely short haircuts, if there is one thing school did in my life, it is that it left painful scars on my personality that took years of passionate software development to wipe out.

Through the twelve years of schooling I was labeled multiple times.

Here is a short and non-extensive list of labels I received in the twelve years of schooling:

  1. Introvert.
  2. Shy.
  3. Complicated.
  4. Pull-through (I was fairly skinny back then).
  5. Trouble maker.
  6. Not a gamer.
  7. A vice captain (amongst sixteen other captains and vice captains).
  8. A very good student.
  9. A geek.

The list is endless and the labels changed every other day based on every single act that I indulged in, the teachers mood, the teachers interaction with his wife the night before and a gazillion other factors which were beyond my comprehension as a teenager.

To put it mildly, I was totally confused about the role of people like me, who had opinions about everything and people who begged to differ on most things, played in an environment which was supposed to be factory for churning out 'responsible citizens' with shinning white uniforms and really short haircuts.

Long story short, I spent years, feeling that there was 'something missing' or more specifically - 'something wrong' with our so-called education system.

Then, school ended.

Of course there were moments to treasure, but basically, I heaved a sigh of relief that it was over and other than keeping in touch with a few friends and having a couple of really bad dreams about exams during my school life, I never made a conscious effort to look back.

Work life for me was a different experience all together. On the very first day at work, I introduced myself with a rather interesting improvised speech and bagged the most interesting introduction prize. From the very first day at work, one message was loud and clear - be a purple cow - and you can actually get rewarded for being different.

A job later, there were tons of realizations I had experienced that I never had during twelve years of schooling:

  1. If you did not feel like reading books, there were tons of podcasts and webcasts you could just watch or listen to, in order to pick things up.
  2. If you did not agree to what your boss was saying, it was ok to interrupt and question him.
  3. If you did not like the idea of going out to a loud party and dancing all night, you could have some serious fun getting together with a bunch of friends and having conversations on technology, life and management.
  4. If you did not like the idea of wearing a tie to office, you could wear jeans and T-Shirts.
  5. If you were late at office, you could work late and still get your work done.

Of all the realizations that I had, here is the most important one: If you did not like things, you were both empowered and free to change them.

Years after school, when I look back to reflect on where my school went utterly wrong and where most organizations that I worked in utterly succeeded at getting the most out of the geek in me, it was all about - making me feel - at home.

What You Need To Know While Working With Geeks.

While schools are busy stereotyping, putting human beings in buckets of categories and labeling them they often tend to miss out of making folks feel 'at home' when they are sitting in a class room listening to a lecture or for that matter, when they are being asked to have 'fun' at school party with loud music.

The thing with the geek within you, is that it likes to live in a nice dark homely cave.

Michael Lopp in his essay on the Nerd Handbook, explains how you can make a nerd venture out of that cave and do something different, like going out on a vacation. He explains how you can get the nerd in you to do new and interesting things:

Map the things he’s bad at to the things he loves. You love to travel, but your nerd would prefer to hide in his cave for hours on end chasing The High. You need to convince him of two things.

First, you need to convince him that you’re going to do your best to recreate his cave in his new surrounding. You’re going to create a quiet, dark place here he can orient himself and figure out which way the water flushes down the toilet. Traveling internationally? Carve out three days somewhere quiet at the beginning of the trip.

Traveling across the US?

How about letting him chill on the bed for a half-day before you drag him out to see the Golden Gate Bridge?

Second, and more importantly, you need to remind him about his insatiable appetite for information. You need to appeal to his deep love of discovering new content and help him understand that there may be no greater content fire hose than waking up in a hotel overlooking the Grand Canal in Venice where you don’t speak a word of Italian.

Today, the once shy geek from high-school interacts with over a hundred people every week, communicates with dozens others. The same shy nerd deeply believes in and nudges other nerds to go out of their way to connect to other human beings.

I enjoy games ranging from ping-pong to ice-skating and the pull-through has been putting on enough weight that he is now thinking of excising to keep his weight under control.

The point here, dear reader, is not to demonstrate how much I have changed over time, but to illustrate how every label that you put on geeks come off, the moment you give the geeks their dark little corner where they feel at home and them allow him to grow from there.

Next time you bump into a geek, and you find yourself attaching labels to the geek, remember, your geek is not shy - he is just not 'at home' yet. Before you label him as shy, introvert, complicated or anything else - try making him feel at home and he just might surprise you.

Something my school never understood, but every organization that employed me, understood rather well.

Something you try spending time to understand as well. Specially If you are a young and budding manager, working with a team of geeks. Go make them feel at home and reap the benefits of having them on your side.

I wish you good luck.

posted on Sunday, January 17, 2010 8:03:17 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Saturday, January 16, 2010 by Rajiv Popat

Programmer Tip: Have The Spine To Question Authority (And Your Manager).

Jack has been going around in circles. He is asking me about how I designed that logger in a project that I worked on two years ago. His team is working on a logger and he seems to need some advice. The programmer in me is alive, jumping at the whiteboard and drawing lines with wild vigor explaining the design that was used a couple of years ago and did wonders for us. After listening for sometime Jack breaks the news.

The design I am explaining on the whiteboard is pretty similar to what Jack already had in mind.

But then, there seems to be a problem.

His manager, is going a different route. An approach that Jack knows will not work. Things are bad. The team has already started working using the manager's approach. Jack, is not seeking the programmer in me for help, he is seeking the bullshit buster in me to chime in and talk to his manager. Jack is seeking my help to stop the entire team from moving in the wrong direction.

What started as a discussion around angular brackets of XML has turned into a discussion of confronting the issue and saying 'no' to things that you do not agree to.

My advice to Jack is simple. Instead of talking to his manager, I gently nudge Jack to have that conversation. I nudge Jack to tell his manager that his manager's decision is not correct.

The advice is supposed to have to good effects.

First thing it is supposed to do is help Jack develop a stronger spine and become an individual who is not just capable of having an opinion but standing by it too.

The other really important thing that the advice is supposed to do, is to help Jack's manager from, as Michael Lopp, in his book, Managing Humans, would say, 'Losing it'.  Michael  uses his book to explain:

Losing It.

Managers don’t lose it simply because the pixies showed up with the top hat, they lose it because those they work with forget to look at the back of the hat.

Remember:
Front: I'm the boss.
Back: ... For now.

Management is a myth, just like the top hat. We, as employees, believe it’s there, so we treat these management types differently. We operate under the assumption that they are the ones who can make decisions.

When the team is stuck on a hard problem, we gather in our manager’s office, present our case, and then the manager nods and says, “Go that way!” More often than not, we’re so happy to be past the hard problem, we don’t even question whether it’s the right decision or not. “He’s got the top hat, so he must be right!”

No no no no. Also? No.

Managers lose it when they are no longer questioned in their decisions. When the team stops questioning authority, the manager slowly starts to believe that his decisions are always good, and while it feels great to be right all the time, it’s statistically impossible.

The most experienced managers in the world make horribly bad decisions all the time. The good ones have learned how to recover from their decisions with dignity, but more importantly, with
help from the team.

Saying no forces an idea to defend itself with facts. It forces a manager under the influence of his top hat to stop and think. Yes, I know that top hat can be intimidating, and yeah, he’s the guy who signs the checks, but each time you allow your manager to charge forward with unchecked blind enthusiasm, you only reinforce his perception that he’s never wrong. That’s a ticket straight to Crazy Town.

If you are a young and budding engineer reading this and if there is one advice I can give you today, it is that you develop a strong spine to constantly ask - why -  and question authority. Even if that means questioning decisions your manager might be taking.

If you believe your manager is taking a wrong decision, go take him for a cup of coffee and ask him to explain his rationale behind his decision.

If his explanations do not make sense, have the spine to say 'no'.

I wrap this post up, dear reader, with an answer to the question Jack asks me when I give him the advice of directly talking to his manager instead of routing it through me. 'What if he feels bad about me questioning him?' - Jack asks.

My answer to the question, dear reader, is a rather simple and direct response- 'That is his problem, not yours'.

What I want you to do dear reader, is look around you. Do you see something wrong? Something that you are doing just because someone higher up in the pecking order or your manager asked you to do it and doing it does not make any sense to you?

Maybe it is time to question authority - not just for your own sake but even for the sake of helping your manager from 'losing it'.

Now give up your mitigated speech and go have that direct discussion that you were so scared to have. Go and gently remind your manager that you think he is taking a wrong decision, and do not stop nudging him gently till either you are convinced he is right or till he changes his decision.

I wish you good luck.

posted on Saturday, January 16, 2010 10:27:15 PM UTC by Rajiv Popat  #    Comments [2]