free html hit counter
Posted on: Saturday, February 13, 2010 by Rajiv Popat

Leadership Tip: Encouraging Your Teams To Raise Red Flags.

I've always held the opinion that happy programmers are a true reflection of how well your project is going, how much adaption it will get and eventually how much money it will make. After all, it is the happiest programmers within your organization that often, show you the money.

If your programmers do not believe in what they are building and want to quit a project, your only chance of survival or getting that project close to any form of success is letting the unhappy individuals move to projects where they might be happier and getting people who might be more connected to the project, into the project.

If none of the programmers in your organization want to associate themselves with a project, it is high time you rethink what you are building. Maybe even consider closing down the project all together. Chances are, that a team working half heartedly on a project is just going to produce strong or mild variants of f@#k-you code and your project is not going to go anywhere anyways.

Having said that, citing 'Programmer Happiness' as a measure of how successful a project or an organization will be, often causes people to knit their brows and look at you like you just dropped a dead rat on the table.

People in general and organizations in particular that I have talked to, often tend to ask for slightly more objective measures and signs they can use to see if everything is fine at an organizational or a project level.

It is in the interest of a young and budding startups or relatively newer organizations that I present to you, dear reader, my very own personal guidelines on when you should be nudging your team members to raise a red flag, stop working like programmed robots and bring the issue up, even if it involves indulging in what I call a skip.

At an Organizational Or Team Level It Is Time To Raise RED flag If:

  1. Your daily meetings or daily project calls are consistently crossing thirty minutes and your team is getting addicted to meetings.
  2. Your team is consistently staying late without being particularly excited, happy or passionately connected to the project.
  3. Your team is consistently doing regular grunt work, like pushing a build or fixing bugs, even on weekends.
  4. Your team is not taking any happy hours.
  5. Your team is being constantly asked to build features which are not really needed.
  6. Your team or you are confused about where your role stops and where the role of your manager begins.
  7. Your team is facing constant intimidation from a client or a manager.
  8. Your team is allocated tasks with concrete timelines without having any involvement or say in those timelines.

At a Development Level It Is Time To Raise A RED flag if:

  1. Your team has parts of the project or the database which are not being checked into the source control system.
  2. Your team crosses more than a month and a half without shipping any new sprint or any new features.
  3. Your team works on and ships more than three sprints without any real feedback from a real beta user.
  4. Your team consistently writes functions that do not fit a screen. 
  5. Your list of 'Active Critical Bugs' consistently shows a scroll bar and does not fit in a screen.
  6. Your project requires a developer to carry out more than ten manual steps to get the source control system, set it up and fire a build.
  7. Your team tends to have an alpha-geek who often decides all critical design decisions with very little scope for discussion or argument.

The list of course is very basic and will grow over time. In fact, this is where I expect you, dear reader, to throw in some comments.  If you, are a manager running multiple projects or an entrepreneur running an organization which RED flags would you want your team members to bring to your notice as soon as they happen? If you are a developer which RED flags would you like to raise as soon as they happen?

Go ahead, drop in your comments. Discuss.

posted on Saturday, February 13, 2010 11:09:05 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Friday, February 12, 2010 by Rajiv Popat

Programmer Tip: Thinking About What Works For 'You' Or 'Your' Team.

In a blog-post on your your code being a one way time machine, David Robbins identifies a special enemy from the past that can do you more harm than anyone else: yourself.

David explains:

What type of duress are you under?  The unfortunate among us have been sentenced to slavery by our evil nemesis from the past.  We all have this enemy, and at one time or another have succumbed to the enemy’s evil plot.  The enemy from the past is 'you'.

A huge part of your life as a software development is all about making decisions. How much code do you really need, how much time are you spending on thinking about your functions, do you need to start extracting till you drop or for now are you just going to ship a shitty version with bugs and get better over time. Every decision that you take will define your relationship with the you-from-future.

To be honest, most of these decisions are simple pragmatic decisions based on common sense and yet year after year I see developers building software and projects which are nothing less than Frankensteins. I see young and budding developers letting their desire to flex their engineering mussels guide the platforms or technologies they pick and not even bothering to fix broken windows as the speed along their career highway.

You primary responsibility as a developer is not to build a highly scalable enterprise application or to work on that really complex software development project. Your only true moral responsibility as a developer is to be reasonably good to the you from future and not sentence him through a painful infinite loop of failure

The more time and effort you invest in being honestly nice to the-you-from-future, the more at peace you will be with your greatest enemy from the past when the future arrives. Now go spend time and conscious effort in being nice to the you from tomorrow. Try keeping that patterns and practices book or that coolest data access framework on the block aside for one moment and take a few pragmatic decisions that will work for 'you'.

The you-from-future might actually thank you for it.

I wish you good luck.

posted on Friday, February 12, 2010 7:21:00 PM UTC by Rajiv Popat  #    Comments [1]
Posted on: Sunday, February 7, 2010 by Rajiv Popat

Understanding The Significance Of Weak Ties In Your Professional Life.

If you worked with me years or even months ago, chances are that I have lost your phone number. Chances are also high that I have not kept in touch with you. Like most programmers, I knit closely with you when you are working with me and then when our ways part, I disconnect.

But then, I have nothing against you.

It is just that when you move on and do not connect on a daily basis, that familiar system of connection is gone. Conversations with you, have to begin with small talk again and like most programmers, I am not very comfortable with the idea of small talk. So, I tend to totally disconnect totally.

The paragraphs above pretty much sum up a huge part of my school life and a huge part of my early life as a young and budding programmer. Put simply, as a school student, a college graduate and a young programmer, I connected to a very small group of family members, friends and colleagues.

If you did not know me personally and if we did not spend hours having deep conversations every week, you would make me very nervous. What I, dear reader, as a youngster, failed to understand, was the power and value of keeping in touch and learning from acquaintances.

Put simply, as a youngster I did not 'get' the whole point of what Malcolm Gladwell, in his book, the tipping point, describes as 'weak ties'. Malcolm explains the power of 'weak ties' with a very simple example:

In his classic 1974 study Getting a job, Granovetter looked at several hundred professional and technical workers from the Boston suburb of Newton, interviewing them in some detail on their employment history. He found that 56 percent of those he talked to found their job through a
personal connection.

Another 18.8 percent used formal means — advertisements, head hunters — and roughly 20 percent applied directly. This much is not surprising; the best way to get in the door is through a personal contact.

But, curiously, Granovetter found that of those personal connections, the majority were "weak ties." Of those who used a contact to find a job, only 16.7 percent saw that contact "often" — as they would if the contact were a good friend — and 55.6 percent saw their contact only "occasionally." Twenty-eight percent saw the contact "rarely."

People weren't getting their jobs through their friends. They were getting them through their acquaintances.

Why is this? Granovetter argues that it is because when it comes to finding out about new jobs — or, for that matter, new information, or new ideas - "weak ties" are always more important than strong ties. Your friends, after all, occupy the same world that you do. They might work with you, or live near you, and go to the same churches, schools, or parties. How much, then, would they know that you wouldn't know?

Your acquaintances, on the other hand, by definition occupy a very different world than you.

They are much more likely to know something that you don't. To capture this apparent paradox, Granovetter coined a marvelous phrase: the strength of weak ties. Acquaintances, in short, represent a source of social power, and the more acquaintances you have the more powerful you are.

My first hand experience with the power of 'weak ties' came after about a year and a half of blogging when this blog landed me with my first job offer. Months later I received another. While I humbly declined both of them, what deeply moved me, was that I had touched and connected to a person who I hardly knew in real life and who, merely by the virtue of my writing was able to extend an offer to me.

But this isn't just about job offers or the power that 'weak ties' brings you.

After a while that bit, becomes boring.

It wears out.

What remains fascinating is just how much you can learn through some of these 'weak ties'.

This Saturday morning I made a new acquaintance with a hokey player who taught me something about perseverance. He talked at length about how, grace of god, luck and consistency have a great part to play in everything you take up. These two together, he believes, helped him get his Olympics gold medal.

The evening was spent, chatting with a school friend who had drifted into the finance world. He gave me a few tips on making some money in the stock exchange. We discussed investments and the possibility of my being able to help him in a small fun project that would help him build investment models using a SQL server backend and a decent enough front end.

Both conversations, somewhere deep down, inspired me to become a better developer, a better professional and above all a better human being in general.

While we as developers, often spend hours talking to the compiler and our evenings with friends and family, we often miss out of the importance of connecting to your acquaintances or even strangers every now and then. We miss out on the fun of striking meaningful conversations with them and we miss out on the opportunities of learning from these conversations.

Even today, as I reach out to countless 'weak ties' and acquaintances I have been guilty of not making myself accessible to and learning from countless others.

If my statistics serve me right, this blog alone, is visited by, a few acquaintances I can learn from. A few very bright minds I can connect to and have meaningful discussions with. It is in the spirit of learning, participating and sharing experiences that I am starting my very own little corner in facebook.

You, dear reader, are invited to join in.

I will be scribbling on the wall there every now and then, posting a question or a discussion when I need your advice on a specific problem and above all, I will be reaching out and connecting to anyone who wants to connect.

It is an open group so anyone can join in and if you are regular reader of this blog I hope to see you there.

Now, take a pause and go figure out your ways to connect to all your acquaintances or 'weak ties', start meaningful conversations with them and learn from them.

I wish you good luck.

posted on Sunday, February 7, 2010 11:42:47 PM UTC by Rajiv Popat  #    Comments [3]
Posted on: Saturday, February 6, 2010 by Rajiv Popat

Leadership Tip: Your Ideas Do Not Need Your Protection - They Need Your Commitment.

Fred is a young and budding engineers trying to start his new business venture with an idea that he believes will change the world. As he sits right across the table and talks, I can make out that he is attached and almost obsessed with the idea of protecting his idea like a baby:

Long story short, anyone talking to Fred can make out that he has spent weeks in:

  1. Cooking up an idea.
  2. Doing paperwork around the idea.
  3. Building PowerPoint presentations around the idea.
  4. Fantasying how he is going to become rich after the idea clicks.
  5. Making sure he can screw anyone who tries to steal his idea.

There is, however, just one little problem with his idea. It is not genuine, it has nothing new in it and it is not even worth spreading, leave aside stealing it. The success of this idea, like most others, is truly dependent on the implementation of the idea. Derek Sivers describes the concept much more articulately in his post on the topic. He explains:

It's so funny when I hear people being so protective of ideas. (People who want me to sign an NDA to tell me the simplest idea.)

To me, ideas are worth nothing unless executed. They are just a multiplier. Execution is worth millions.

Explanation:

AWFUL IDEA = -1
WEAK IDEA = 1
SO-SO IDEA = 5
GOOD IDEA = 10
GREAT IDEA = 15
BRILLIANT IDEA = 20

NO EXECUTION = $1
WEAK EXECUTION = $1000
SO-SO EXECUTION = $10,000
GOOD EXECUTION = $100,000
GREAT EXECUTION = $1,000,000
BRILLIANT EXECUTION = $10,000,000

To make a business, you need to multiply the two.

The most brilliant idea, with no execution, is worth $20.

The most brilliant idea takes great execution to be worth $20,000,000.

That's why I don't want to hear people's ideas.

I'm not interested until I see their execution.

Now there is reason why Fred has worked for hours on making PowerPoint presentations, word documents and dreams around how he will take the idea to the next level when the idea clicks, but he has not done a single screen to try and implement the idea or do a small prototype. The reason is simple - cooking up ideas and day dreaming is easy. Implementing those ideas and giving shape to those dreams or visions is hard.

Besides, somewhere deep down in his mind, Fred knows that doing an implementation and throwing his idea out in the hands of real people will most probably get his idea a reality check which is the last thing he needs right now.

Paul Buchheit describes his effort during his work during the early Gmail days. He explains:

We starting working on Gmail in August (or September?) 2001. For a long time, almost everyone disliked it. Some people used it anyway because of the search, but they had endless complaints.

Quite a few people thought that we should kill the project, or perhaps "reboot" it as an enterprise product with native client software, not this crazy Javascript stuff.

Even when we got to the point of launching it on April 1, 2004 (two and a half years after starting work on it), many people inside of Google were predicting doom. The product was too weird, and nobody wants to change email services. I was told that we would never get a million users.

Rolling your first prototypes out is usually something which requires nerves of steel. It means quite a few things.

  1. It means that you need to be serious and committed to  your idea - so much so that you are actually willing to slog midnights for it and you  are willing to do it consistently, for years.
  2. It means that you are capable of shaping the dream into something concrete - you are a doer not just a dreamer.
  3. It means that you have the thick skin to take those feedbacks and even at times, acts of bozoism with a grain of salt and continue working on your idea anyways.

All of the above three, tell us, your users, that you are serious about your idea. That your idea is not a quick gimmick to get our money. That your idea is not just a random distraction which you are going to dump tomorrow morning when you wake up and when your dream comes to an abrupt end.

Your ideas don't need you to protect them from getting stolen. They need your implementation, hard work and commitment. For years.

Now, stop discussing that PowerPoint presentation and stop talking about the business model around your idea. Show us a prototype. If you do not have that yet, figure out how you are going to build it. Go build something real and then show it to us.

I wish you good luck.

posted on Saturday, February 6, 2010 11:57:00 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Friday, February 5, 2010 by Rajiv Popat

Programmer Tip: Consider Looking For Your Own Sources Of Motivation.

You have just finished patting yourself on your back for getting a team of seriously kick ass developers up and running. The team has not just flocked together, they have actually proved to you that they actually have the secret sauce for success. Products are on time. Customers love your organization. The sky is blue and it is not even falling.

You think of giving yourself the liberty to feel really happy about the amazing work environment and the work culture of your organization.

That is when Jack walks into your cubical and tells you that he isn't feeling motivated enough.

Jack, dear reader, has a problem.

A problem that he himself, in his very own words, describes as - 'Too much freedom'.

You know where this is going.

You see is that of Morpheus from The Matrix holding up a battery and saying - "The Matrix is a computer-generated dream world built to keep us under control in order to change a human being into this.'

You cringe.

'Shut up and listen to him' - you tell yourself as you intently listen to Jack describing his problem.

Sitting right across the table, Jack, dear reader, is telling you that he needs more monitoring, stringent deadlines and above all what he calls a 'big hard push' so that he can get things done. Not everyone is self motivated - Jack tells you. Jack wraps the discussion by telling you that in the absence of artificial deadlines and constant monitoring he is not feeling motivated enough to get things done.

Then as you sit there and reflect really hard you realize that Jack is not looking for motivation. He is looking for fear. Fear that can drive him to get his job done. Fear that can force him to grow his branches far and wide even if he does not really feel motivated to grow deeper roots.

What Jack is trying to do, dear reader, has its root back in the pre-historic era and how the human race evolved. Dragos Roua describes this phenomenon much more articulately than me. He explains:

Our brain has a very deep connection with fear. Deep in our limbic brain (the oldest part of our brain, also called the “reptilian” brain) lies the centers of fear. On top of them other layers of our brain have grown. But the deeper core is still there and it can still be activated.

Whether we like it or not, we’re still conditioned to act on fear. Our limbic brain is still stimulated by a variety of factors.

We translated our old fears related to survival to our modern indicators of success: we’re afraid of being taken for less than we are or we’re afraid that somebody talks bad about us. We’re afraid that we’re going to lose something if we’re not talking “immediate and aggressive” action towards the potential danger.

What Jack, dear reader, is asking you to do, is basically stimulate his limbic brain. Put simply, Jack is asking for a shot of fear-based-steroids so that he can play a few power-shots in his professional life.

Dragos, in the same article, also describes why the basic approach can be fairly lethal in the long term. He explains:

Negativity is powerful.  Every time you’re afraid, you’re giving your focus and power to the potential danger. All your energy must be there, because your reptilian brain is telling you’ll have to survive. Doesn’t matter for that reptilian brain if the fear was socially induced, if you scream “fear” it will be activated.

The more fear factors you have, the more energy you’ll have to allocate. And you’re going to pay attention to a lot of potential dangers. Sooner than you think, you’ll measure your success by the rate of your survival actions. And you’re becoming accountable to your fear sources. You’ll be actually driven by your fear sources. This is why a fearful person is so easy to manipulate.

Turning human beings into batteries is what most software development shops around the world are so very good at. We tend to refer to people as 'resources' and use every arrow in our management quiver to strike terror in those 'resources' so that we can improve their productivity. You realize how bad things are when the best of your people come to you begging for shots of fear-based-steroids, under the excuse that not-everyone-is-self-motivated.

I leave you, dear reader, with one little thought worth harping on. You might not be self motivated. Motivation may not come from within, but that is not an excuse for not looking for your own motivation yourself; and while you are at it, you might want to look for it really hard; because if you do not look for your motivation, it will not come looking for you.

Take a few shots of fear-based-steroids and you might be a 'resource' that runs on a battery before you know it. And then when that happens do not crib about how big an ass-hole your manager is.

Now go read a few books, watch TED videos, play around with some seriously interesting technology you feel passionately about or find your own avenues of looking for getting constant motivation.

I wish you good luck.

posted on Friday, February 5, 2010 7:03:00 PM UTC by Rajiv Popat  #    Comments [2]
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]