free html hit counter
Posted on: Tuesday, July 28, 2009 by Rajiv Popat

Random Thoughts On Builders At Work - Part 2.

Stupidity Is Not Always Loud And Clear.

Of all the seemingly harmless things that destroy projects in general and organizations in particular; thoughtless optimism mixed with wishful thinking is one of the items that tops the chart. Every year countless startups fall flat on their face and every year new startups with more thoughtless optimism replace them.

The amazing story of the shut-down of fly-clear by Joel Spolsky is a classic tale of thoughtless optimism gone wrong. The story is Intriguing of multiple fronts. The first front is the actual service that fly-clear was providing; which Joel describes rather well. He explains:

Here's how it worked while it was in business. You paid $200 for a one-year membership. You underwent a big, complicated background check to prove that you were extra-super-trustworthy.

In exchange, in a few big airports, you got to skip to the front of the TSA line for screening.

Now, you didn't skip the screening itself. You still went through the X-ray machine and had to remove your shoes, belt, pocket contents, laptops, and plastic quart zip-lock bag of toiletries.

You just got to cut to the front of the line.

A few people signed up. In certain airports, it was, indeed, worth actual money to cut to the front of the line.

This wasn't Clear's actual business plan. The actual business plan was that Clear would do detailed background checks on travelers, who would then be trusted to bypass security completely because they were extra-super-trustworthy

When TSA rejected the whole idea of skipping the security check and only allowed fly-clear users to just move to the front of the security check line; still leaving the requirement of a security check mandatory; Clear continued with their initial plan --- which was to charge money for their service and continue to do detailed background checks on all their users before they registered them.

Joel describes the stupidity rather articulately:

At this point, and here's the interesting part, at this point, a rational businessperson would say, "Well, does the Clear idea still make sense if we can’t actually let you skip the screening?"

OK, maybe it still makes sense to charge to skip to the front of the line. Maybe there's a business model in that.

In that case, though, why did they still do background checks? It doesn't make any sense.

The environment changed. It turns out that Clear's business model of prescreening wasn't going to be possible. But they kept doing it anyway. What kind of organizational dysfunction does it take to completely ignore the changed circumstances and keep at a money-losing business?

Joel ends the post with a note of wisdom and sarcasm:

What's even funnier is that Clear could probably have been profitable if they had just skipped the one unnecessarily stupid part of their business model: the detailed background checks on all their customers.

Nobody at Clear did any thinking.

They had a business model, the business model wasn't actually possible, everybody knew it, and they still plugged away at it. Thoughtless optimism. I don't know whether to salute them or laugh.

I find these stories really fascinating because based on the little facts that we as outsiders are privy to; these stories allow us to do black-box-investigations into huge colossal fu@#kups-ups orchestrated by smart people who had the means and the measures to organize fu@#kups of this magnitude.

Joel does his fascinating and thought provoking analysis of the story and comes to a simple logical conclusion --- Nobody at clear did any thinking.

Take that analysis one step forward and you realize that thoughtless optimism in real life; isn't as simple as a team of lousy-thoughtless-bozos coming together; moving into a dark cave and writing random software after they have lost all touch with reality.

Put simply; thought-less optimism is a slow process that happens over time; and by the time it takes it's toll on your organization; your organization; in all probabilities; has already lost the sight of the stupidity that surrounds it.

While it is easy to conclude that everyone working at Fly-Clear was a bozo indulging in thoughtless optimism; my guess; is that like any other typical startup out there Fly-Clear had its bunch of builders, story-tellers and whiners.

Now; if you assume that Fly-Clear was a decent startup like any others with an idea and an implementation --- it makes you wonder what got them from the great-fun-filled-start-up days to a miserable shutdown.

Multiple possibilities exist.

Maybe the leadership at Fly-Clear was too arrogant to consider the idea of surrendering; giving-up and starting something else.

Maybe they started off with smart and talented employees who lacked the spine to come out and announce that the king was in fact, naked.

Maybe the young and smart employees in the corridors of Fly-Clear spoke their mind but then decided to hibernate while the folks higher up in the pecking order could not care less.

Maybe just one senior vice-president high up in the pecking order at Fly-Clear believed that he could still get TSA to agree at skipping the security checks and then all those background checks they did would suddenly become appropriate.

Sometimes you need a team of monkeys to turn a project into a failure or shut-down an organization; sometimes; just one monkey left un-sedated is enough to bring an organization to a shut-down.

Maybe it was just mitigated speech and complete in-ability to accept; that the whole idea of continuing background checks; even after TSA refusing to skip the security check; was; as a matter of fact; fu@#ked up that brought them where they are today.

Maybe; and here is the creepy part; maybe it was all of the above in small dozes which were barely noticeable.

While it is easy to read stories of failure and discard them as --- Oh-they-were-stupid-we-are-not --- why these stories of failure with very little forensic evidence to base your analysis on; are still useful --- is because they show the level of fu@#kup-ups some decently intelligent teams; sometimes even having a few really smart people; are capable of orchestrating.

Remember; the problems that eventually cause your project or your organization to fail are much more subtle than we think.

Every time you read a story of failure; take a deep hard look at your organization; your team and your project.

Random acts of stupidity might be happening; really slowly; around you; right now as you read this.

Being consciously aware of the fact and knowing that a fu@#kup as big as some of these glamorous fu@#kups could be cooking right in the corridors of your organization is your only chance at avoiding these fu@#kups.

When you are on the look-out for stupidity in your very own project, team or organization; keep your eyes open dear reader; because total random stupidity is not usually very loud and clear.

It all begins with one isolated act; and then it grows from there --- usually in small doses and unannounced till it becomes big enough to cause your entire organization to go-down; without any prior warning.

Next time you look around you and see what is going on in your project, team or organization; keep your eyes open; really wide.

I wish you good luck.

Note: This article is a part of a Work In Progress Book. To Read connected articles read the Builders At Work category of this blog.

posted on Tuesday, July 28, 2009 10:01:03 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Friday, July 24, 2009 by Rajiv Popat

Stitch And Use Approach To Developing Intellectual Property Is Highly Overrated.

Years ago at Multiplitaxion Inc, I witnessed a project which was a collection of multiple source frameworks out there; that were somehow held together with band-aids. When the final product evolved by the virtue of hooking up random open source frameworks; we called it our 'Intellectual Property'.

Soon the band-aid wore off and our product crumbled to pieces before moving to a stable production environment.

Any engineer with an eye and taste for genuine software would clearly seen the different components oddly stitched together by interns fresh out of college and laughed at the idea of calling it our Intellectual Property.

Here is the tragic truth however; we were neither able to sense the oddness in the whole design nor question how you can create intellectual property by hooking up five open source components out there together with weak a band-aid. Anyone who was intelligent enough to understand the oddness of the design decided to keep their gob-shut and tactfully disassociated themselves with the project. 

After multiple man-months of efforts; a huge team slogging away trying to contain and control components which were like beasts running in different direction; started facing and ignoring small broken windows which soon snowballed into an explosion that destroyed the project.

The stitch-and-go approach to intellectual property destroyed the project.

Years later; at work; in my current organization; I was asked to build a system which would allow us to build applications for our clients who had a lot of long-running workflows and wanted to take these workflows online. That is when Crux was born.

Even today; I am viewed with paranoid eyes of capable programmers when I tell them that Crux includes a custom-made application framework along with a light-weight, open source workflow engine that I wrote using new language features of C#.

'But Pops, why didn't you just use windows workflow foundation' --- is one of the most common question that comes up during training session for Crux.

A part of me; which is a pragmatic programmer answers this question with logic and reason --- we have used Windows Workflow Foundation for months; found it to be a decently good workflow engine but it is way too complicated for the kind of long running workflow requirements most of our clients were are going to have. Besides the learning curve associated with it is steep and the benefits gained out of using it for what we were trying to do; aren't high enough.

The real answer however is deeper than that. The real reason for not using Windows-Workflow-Foundation in Crux was the fact; that Windows-Workflow-Foundation in it's current version needs 'stitches' and 'compromises' all over the place to be hooked on to anything.

Put simply; Windows Workflow Foundation; in it's current version; is a beast in itself which requires feeding or caring and that feeding or caring; dear reader; was too much of a price to pay for the simple web based long running workflow systems we were trying to build.

This post dear reader; is not about me trying to illustrate how a product that tried to hook on multiple components out there failed and how me deciding to not use Windows-Workflow-Foundation in Crux ultimately gave us multiple successful client implementations.

This post; dear reader; on the other hand addresses an aspect of software development that is much larger than the two examples I talked about.

Talk to most CTOs, Vice Presidents and even consultants around the world and it is not un-common to come across words like 'leverage and re-use of components out there'. Talk about building something which sounds a little off-track; in-house and it is not un-common to hear the sound of fifty thousand heads of programmers exploding all at once.

While I am all for the idea that we as developers are code addicts who are constantly wanting to bull-doze what exist and start from scratch; it is also important to realize and stop; particularly when your desire to 'leverage' the components starts taking you down the slippery slope of creating Software that can be best described as Frankenstein's monster. A monster that will eventually chase it's developer and make his life miserable.

As a general rule; if you are trying to roll out something that is going to be your core-intellectual-property you are better off building the stuff yourself; or at-least working at a level of abstraction where you can control and tweak every minor detail; rather than trying to hook up multiple ready made components out there in to get something out quick and dirty.

The Stitch And Use approach to building intellectual property is highly overrated.

On the other hand if you are just trying to get a processes automated or get a solution implemented that does not involve your core intellectual property you might be better off buying the stuff that's already out there. When it comes to tools; which allow you sufficient level of abstraction that you need; again; you are better of buying than building.

Either way; always remember - if buying is an option; building is an option too --- even if your Vice President looks at you like you just dropped a filthy rat on his table when you utter the words 'build'.

The next time you are faced with the question of building vs buying or using something already available; keep your biases aside and take a pragmatic decision based on your past experience; logic and your very own gut-feeling.

I wish you good luck.

posted on Friday, July 24, 2009 10:44:30 PM UTC by Rajiv Popat  #    Comments [2]
Posted on: Thursday, July 23, 2009 by Rajiv Popat

Random Thoughts On Builders At Work - Part 1.

As I continue to struggle mulishly towards writing the book I started to set out months ago I am starting to realize that there is a lot more to be read; researched and said on the topic of how genuine builders and storytellers function. The 'Random Thoughts On Builders At Work' series of posts is supposed to help me organize of some my random thoughts for inclusion in the book without feeling the urgent need to organize them sequentially.

All of these posts; will be eventually added to the book; but for now; dear reader; you can read them as isolated blog posts without any direct sequential connection with the post that came before it or the one that will follow.

So; dear reader; here is one such random thought of genuine builders.

Why We Build Stuff Decides How Long We Continue Doing It.

Early on; in my post on consistency; I announced that consistency is one quality present in all genuine builders and storytellers. Having said that I continue to be disappointed by the lack of overall consistency in the world of software development in general.

You don't have to take my word for it; dear reader. Go look for:

  1. The number of abandoned blogs on word-press or blog-spot that never crossed the post count of ten.
  2. The number of abandoned open source projects on source-forge.
  3. The number of software programmers who upload and update their resume on a job portal every year.
  4. Number of startups that come to an end each year.
  5. Number of ideas on which work is started and then abandoned each year.

Somewhere deep down inside;  the question that really kept bothering me was this --- Does this mean that we are all quitters and whiners who start things which we neither want to finish nor support; in the long run.

After a decent bit of soul searching; reading; and one flash of lightning later; I figured out that the answer to these questions; dear reader; really lies in 'why we indulge in the act of building stuff'.

As it turns out; most people; indulge in the all of the acts mentioned above; starting from launching their blog to signing up for an open source project; for the same reasons that crack dealers indulge in the risky business of selling crack.

Steven D. Levitt and Stephen J. Dubner explain the phenomenon in their book; Freakonomics. They explain:

A 1-in-4 chance of being killed! Compare these odds to being a timber cutter, which the Bureau of Labor Statistics calls the most dangerous job in the United States. Over four years’ time, a timber cutter would stand only a 1-in-200 chance of being killed.

Or compare the crack dealer’s odds to those of a death row inmate in Texas, which executes more prisoners than any other state. In 2003, Texas put to death twenty-four inmates—or just 5 percent of the nearly 500 inmates on its death row during that time.

Which means that you stand a greater chance of dying while dealing crack in a Chicago housing project than you do while sitting on death row in Texas. 

So if crack dealing is the most dangerous job in America, and if the salary is only $3.30 an hour, why on earth would anyone take such a job?

Well, for the same reason that a pretty Wisconsin farm girl moves to Hollywood; for the same reason that a high-school quarterback wakes up at 5 a.m. to lift weights. They all want to succeed in an extremely competitive field in which, if you reach the top, you are paid a fortune; to say nothing of the attendant glory and power.

Analyze the life cycle of a typical young and budding blogger bubbling with enthusiasm about to sign up for a free word-press or blog-spot account and you will realize the similarities. You will also realize this is why a huge number of bloggers never cross the three post count. Here is pretty much how the life of a typical blog works:

  1. Bubbling with enthusiasm and encouragement Fred starts a blog; which he believes will make him rich, famous and so-very-sensational.
  2. Fred does three posts in a month; only to discover that no-one cares about him, his blog or his product.
  3. Fred silently and subconsciously decides that the world doesn't deserve his blog and quits; till he finds something else which seems amusing and exciting.

If this describes your mental process as you sign up for a blog; do your first open source check-in or share your idea with your friend; it just means that you may have striking similarities with the Wisconsin farm girl who moves to Hollywood or the drug paddler who risks his life at only $3.30 an hour.

The problem with that sort of motivation; is that; it doesn't last very long. Once you realize that getting to the top is painstakingly hard and there is nothing much to be obtained by staying at the bottom or in the middle; you are left with no other option but to quit.

Conan O'Brien describes how he avoids this risk very articulately in his interview with the A.V. Club. He explains:

There's a temptation to over-think the whole thing. I've had a Field Of Dreams philosophy to this: If you build it, they will come. I still have no idea.

I don't look at research. I don't look at who's watching, or when they're watching. I've never been interested in any of that. I'm interested in doing what I think is funny.

For the last 13 years, that seems to have worked for me.

If I go to 11:30 and do what I think is funny, and someone comes and tells me it isn't getting enough people in the tent, I'd say, "Well, that's all I can do." If I'm looking at spreadsheets and time-lapse studies of viewing patterns, I think I'm wasting my time.

What I should be worried about the first night I host The Tonight Show is, "How can I make this a funny show?"

The second night, "All right, let's make another funny show doing some different stuff." You do it one show at a time.

And if you're lucky, eight years later, you've alienated a nation.

Whether it is your blog; your open source project or your next big idea; if you have the slightest element of Hollywood-Baby-Dream about the fame and money that is going to come out of all your efforts; chances are that your efforts are going to have take a nose-dive on the path of failure and you are going to quit; whatever-it-is-that-you-are-starting; in the next few days.

On the other hand; if you realize up-front that your blog, open source project or your ideas are not going to make you rich or famous; and decide to do is anyways; for the pleasure of doing it; chances are that you will find it that much more easier to survive as a low maintenance software terror cell and continue doing what you love doing; for a very long time --- consistently.

Remember; why you start something often governs how long you continue doing it.

So before you start; answer the why; very carefully.

Remove the Hollywood element of success out of your idea; right upfront; before you even start.

Stop fooling yourself.

Ask yourself if you will genuinely; truly still love the idea after the money, fame or other Hollywood-Dreams contained in the idea are shattered and removed.

If the answer is 'no' --- drop the distraction and go find something that you genuinely love doing.

If the answer is 'yes' --- start slogging on your idea now.

Either ways; I wish you good luck.

Note: This article is a part of a Work In Progress Book. To Read connected articles read the Builders At Work category of this blog.

posted on Thursday, July 23, 2009 9:52:26 PM UTC by Rajiv Popat  #    Comments [2]
Posted on: Tuesday, July 21, 2009 by Rajiv Popat

Measuring Your Twitter Power Using Number-Of-Followers Is Highly Overrated.

Honest confession: I love twitter.

Having said that; twitter is by far the loudest when it comes to flaunting your so-called-social-networking-mussel-power on the web. Placed smack in the middle of every user's home page is what I like to call the 'Twitter Power' Dashboard.

As humble and low profile as this dashboard looks; it is one of the features that drives countless users to twitter and keeps them motivated for months as they work hard to 'collect' what twitter calls their 'followers'.

Put simply; the concept of 'followers' and the idea of flaunting the number of followers that follow you on your twitter-home-page is by far one of the biggest psychological gimmicks that I have witnessed in my entire online life till date; and guess what --- it works really well for twitter.

The reasons why it works are pretty obvious.

Joshua Porter in his blog-post on the topic; describes rather articulately why Twitter strikes a note with a huge audience and how it en-cashes on simple fundamental human nature; big time. He explains:

Here’s a question: how would Twitter change for you if you didn’t know how many followers you have? What if the designers at Twitter removed the number from all screens/APIs and forced you to rely on replies or re-tweets to let you know what was going on? Would that be OK with you? How would it change your behavior?

Humans are hard-wired for attention. My newborn girl, for example, cries when she’s not getting attention. My 3 year old, who isn’t used to not having attention, is going through a major psychological shift in her life because she’s realizing that she isn’t the only child in the universe... she now has a sister who will be getting attention as well. Attention is a core human issue for all of us. As designers we need to keep this in mind.

What is actually scary about a feature of this sort is that even someone like Joshua; who is smart enough to understand the whole point cannot help but use the meta-data on every user that twitter flaunts on their twitter-home-page to come to his conclusions about the person. He explains:

I use follower numbers in several ways to judge the type of person who is on the other end. If I’m followed by someone who has very low following/follower numbers, then I know they’re probably new to Twitter.

If someone has really high following/follower numbers, then I know they’re probably an auto-follower, which suggests they might not focus on quality conversation as much as attention.

If someone has high follower numbers and low following numbers, then I know they have an audience for some reason (it might not be a good reason). Obviously, these numbers don’t tell you everything… but I use them to give me an idea. When metadata is available… humans will look at it.

While the analysis seems reasonable enough at the first glance; the fundamental issue here is realizing why twitter decided to throw the Twitter-Power dashboard on your face in the first place.

It was a design decision.

One that benefits Twitter tremendously.

The real question; that you; dear reader; need to ask yourself now is this --- how does it benefit you?

Does it nudge you to go out there and push meaningful content or does it nudge you to increase your follower-count by indulging in the You-Follow-Me-I-Follow-You funny dance that a huge percentage of twitter users dance?

As anyone who has run a blog for more than a year and has had more than a handful of subscribers will tell you; constantly peeking at your traffic and writing with the sole purpose of increasing it; is highly overrated.

Jeff Atwood describes this much more articulately than me:

There's certainly value in audience metrics. But it's easy to overanalyze, too. Instead of obsessing over who does and doesn't link to you, concentrate on writing a blog entry you'd like to read. Instead of worrying about audience feedback, focus on delivering a presentation you'd like to attend.

You should trust your gut more than any metrics. Build it, and they will come.

With it's one-forty-one character limit; twitter makes writing something you would yourself like to read later really hard; With it's constant display of your statistics or traffic-meta-data; it makes worrying about the number of followers you have really easy.

If you; dear reader are on twitter; the real challenge is not how to increase your follower count.

The real challenge; dear reader; is in-fact; to turn a blind eye to your 'twitter-power' dashboard and focus on adding content that your readers and you yourself will love reading.

Now; go visit your twitter home page.

This time; try not to look at your follower count.

Focus on your past tweets section instead.

See if you can read through your very own twitter home page; read it; not get bored and get some genuine value out of it.

If you can't --- the number of followers you have; is just meta-data that doesn't mean a thing.

The whole idea of measuring 'Twitter Power' through number of followers is highly overrated.

Now go find meaningful ways to participate and contribute using that small one-forty-one-character text-box.

I wish you good luck.

posted on Tuesday, July 21, 2009 10:52:20 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Friday, July 17, 2009 by Rajiv Popat

Building Remarkable Work And Play Environments - Part 6.

Let Your Corridors Carry Your Stories.

During the early days of my career as a programmer; I was hired at Multiplitaxion Inc; where; besides doing my job as a programmer; I was given random chores that other 'respectable-programmers' of the organization found too insulting to take up. The chores ranged from formatting documents; cleaning up HTML; uploading build files on production servers; to ordering food for programmers who were going to work late and fixing lose network cables for people.

Chores that laid the foundation for; and helped me understand the importance of becoming a one man army.

Time moved forward; one day at a time and I found myself working on these chores besides honing my programming skills.

Then one fine morning; years later; I found myself leading a team.

This was soon followed by leading multiple teams.

It was on another fine morning; that I was told that I someone who was very 'senior' and then a quite few people at work started listening to me.

Years later; every time I discussed those early painful times; what I learnt from those times and how those times changed Multiplitaxion Inc; forever; with young and bugging engineers; I started getting funny glances from senior-programmers and managers alike.

Some mildly hinted that the young-and-budding-developers working in teams that report to me might start respecting me lesser if they came to know of my humble starting; stupid failures and the deep scars I had received early on in my career.

Others felt it might have an impact on the overall organizational image.

'Why share stories of your or your organization's humble past with someone who is reporting to you?' --- some wondered.

Rosa Say describes the idea of sharing your own and your organization's past through stories much more articulately than I will be able to describe it. She explains:

Every company has a storied past. Are you aware what yours is?

More importantly, do you know why your stories are so important?

When old timers tell the newbies stories about “the good old days,” or “how it used to be here,” or “the first time we ever did this” what are they so fondly recollecting? Why in the world do they keep talking about past events, often making the retelling far more wonderful sounding than you remember actually living the experience of them?

Is there any value in this memorable nostalgia?

When stories are told in the spirit of retelling your company history, your storytellers are often capturing the memorable parts; what they remember is largely what they want to keep alive because it felt very good to them at one time.

Stories of what had been give us a look back at those things we once believed in, and want to keep believing in. They reveal the values which had bound us together and still do, and why in the aftermath of the story’s events we kept pushing upward and onward.

They often chronicle successes and achievements, and tell of what people feel was a victory, because by nature we want our stories to be good ones; no one likes to recount their failures.

However whether victory, mistake, or outright failure, our stories undoubtedly recount lessons-learned too important to be forgotten. We feel we can keep learning from them, and we tell the story to re-teach the lesson.

Stories from your organizations past and sometimes your professional past can be humbling and painful. When you lead a team and find a few people listening to you; it's easy to put yourself in an ivory tower; shit-can; hide and never talk about all those humbling experiences from the past that taught you so much or made your organization or your team what it is today.

Not sharing these stories; is safe.

Not sharing these stories ensures that everyone in your team continues to respect you and your organization.

Not sharing these stories allows you to continue depicting yourself as this super-successful-guy-who-never-gets-anything-wrong and your organization as the-place-that-was-always-perfect.

This approach; dear reader; has just one problem however --- it is your first step to becoming a genuine prick who is always busy protecting his and his organization's so-called-always-successful-image.

Accept it or not; every organization has stories --- stories of success; stories of pathetic failures; stories of things done right; stories of things done wrong; stories of victories; stories of failures; stories of shipping crap; stories of not shipping crap and sometimes even stories of colossal fu@#kups or total disasters.

How many of these stories make it to the corridors of your organization and flow through them; letting your builders; learn from your organization's past?

Accept it or not; every manager has stories from his professional life --- stories of doing a few things right; stories of doing a few things wrong; stories of heroism; stories of pathetic failures and even stories of colossal fu@#kups orchestrated by his very own self.  

Look around you.

How many of these stories about your organization, your team or your managers are you aware of?

If you answered 'none' you might be working with a bunch of pricks trying to protect their 'so-called-successful-image'  by shit-caning their failures.

Remember; management is all about no secrets and an environment where stories don't flow through the corridors; cannot be a fun filled environment for genuine builders.  

Which stories about your organization and your managers are you aware of?

Do these stories give you a clear picture of your organization's and manager's professional past?

Do these stories tell you about organizations culture chart?

How many stories of your own professional successes and fu@#kups that happened in the past; are you comfortable telling people who work with you?

What's your story; dear reader?


Note: This article is a part of a Work In Progress Book. To Read connected articles read the Builders At Work category of this blog.

posted on Friday, July 17, 2009 10:19:00 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Thursday, July 16, 2009 by Rajiv Popat

Trying To Publish Posts With No Typing Errors Can Make Your Blog Safe-And-Boring.

Honest confession: I am not exactly a rock star when it comes to spelling.

To be honest; I suck at spellings and I make random typos all the time.

The very idea of writing a post without a decent spell-checker makes me cringe.


Because I hate typos; specially when I am the one who is making them.

Spell-checker for me are a profoundly important.

I consider spell-checkers to be an invaluable tool for both amateur and veteran writers.

Having said that; anyone who writes; knows that spell-checkers are far from perfect. Which is probably why; every post I write; goes through more than one round of editing followed by a huge deal of proof reading. Typically; the branding; formatting; editing and proof reading of each post on this blog takes as much time as the process of writing the post itself takes.

While all veteran bloggers will tell you that spell-checking and proof reading everything you post; meticulously; is hugely important; after a point of time in your life when ideas start torturing you till you set them on a concrete post you begin to wonder just how much effort should you be putting into proof reading of each post when the same time could have been used writing about new ideas that will not let you go till you turn them into a fresh posts.

Long story short; publishing a post is pretty similar to shipping software. You have to walk the fine line between quality and shipping. Of-course your posts are shitty; but if they sit on your hard-disk gathering dust waiting to become perfect 'one day' they are worse than shitty.

Penelope Trunk describes this much more articulately than me in her post on typos while writing blog posts. She explains:

Will everyone please shut up about the typos on blogs? Show me someone who is blogging every day and also complains about someone's typos. Just try. See? You can't. Because anyone who is trying to come up with fresh ideas, and convey them in an intelligent, organized way, on a daily basis, has way too many things on their plate to complain about other peoples' typos.

Penelope's argument against spending time on spell-checks and countless rounds of proof reading stands around five simple pillars:

  1. Spellchecker isn't perfect.
  2. Spelling has nothing to do with intelligence.
  3. You don't have unlimited time, so spend it on ideas, not hyphens.
  4. Perfectionism is a disease.
  5. Use the comments section for what matters: Intelligent discourse (not parsing grammar).

If you are someone who posts using a WYSIWYG editor and doesn't even bother finding a decent blog writing tool; the discussion on Penelope's post or this post is clearly not for you.

On the other hand if you are someone who spends a huge deal of time worrying about typos on his blog posts and does multiple rounds of proof reading followed by editing; I would highly recommend Penelope's Post on this topic.

It is worth a read.

Shipping regularly; whether it is in your project, code or blog-posts; is a rewarding and fun filled exercise.

Much more rewarding than constantly worrying about perfection and playing it safe by writing less and writing perfect.

Remember; 'Don't-Worry. Be-Crappy'.

Put a decent bit of effort behind editing, proof reading and spell-checks; but don't be obsessed with these.

After all; your participation and contribution is much more important.

Besides; once you have shipped; you can always Rinse and Repeat.

If you have posts sitting on your hard-disk gathering dust because you are going to 'make-them-better', proof reader them, or spell-check them 'someday'; may I suggest; dear reader; that you ask yourself if they represent an idea worth sharing; and if the answer is yes; consider posting them out.

Not doing so can make your blog safe-and-boring.

Then continue to fix your posts as you move forward.

I do it all the time; and if people complain about their RSS Readers showing an old post as un-read when I fix it later it's easy to blame it all on Pops.

On a side note dear reader; if you find a typo on this post or anywhere on this blog; please do continue leave me a generous comment or email just like some of you have done in the past. I assure you; that the typos will be fixed and you will be thanked sincerely.

After-all; I hate typos; as much as you do.


posted on Thursday, July 16, 2009 10:59:45 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Tuesday, July 14, 2009 by Rajiv Popat

Building Remarkable Work And Play Environments - Part 5.

Software Terror Cells.

Jeff Atwood at Coding Horror had a hard time understanding how open source projects work when he found out that the five thousand dollars he donated to ScrewTurn Wiki was lying idle and unused in the bank; while Dario Solera; the product owner couldn't think of one way to spend money in over four months.

John Galloway elaborates this phenomenon using a unique perspective on open source software development. John explains:

Open Source is to Traditional Software as Terror Cells are to Large Standing Armies. if you gave a terrorist group a fighter jet, they wouldn't know what to do with it. Open source teams, and culture, have been developed such that they're almost money-agnostic. Open source projects run on time, not money. So, the way to convert that currency is through bounties and funded internships. Unfortunately, setting those up takes time, and since that's the element that's in short supply, we're back to square one.

What's interesting; however; is the fact that these 'software-terror-cells' are now rapidly becoming a part of everyday life; and that dear reader; is a good thing.

The idea of guerilla warfare isn't something that is now isolated to open source. It is rapidly becoming; and to a large extent; has already become a part of everyday organizational life.

One 37Signals

It amuses me to just count the number of discussions revolving around 'how-does-37-Signals-make money' that I have with folks from multiple organizations around the world. As much as I enjoy these conversations; there are three things that are really amusing about these conversations.

  1. On one hand you have the whole wide world of software development and the organizations in it wondering how 37Signals is making money.
  2. On the other hand you have 37Signals who with their team of eight developers doesn't really 'have to' to make millions in order to survive.
  3. Every 'enterprise' out there; that needs a couple of million each year just to keep it's payroll moving; wants to be the next 37Signals.

What is amusing is that while the rest of the software development business world is busy trying to figure out the business model of 37Signals and how 37Signals makes millions; the guys at 37Signals are; maybe not through a deliberate strategy; engaging in what Joel Spolsky calls Fire and Motion. Joel talks about the basic idea using his experience as a Israeli Paratrooper. He explains:

When I was an Israeli paratrooper a general stopped by to give us a little speech about strategy. In infantry battles, he told us, there is only one strategy: Fire and Motion. You move towards the enemy while firing your weapon. The firing forces him to keep his head down so he can't fire at you. (That's what the soldiers mean when they shout "cover me." It means, "fire at our enemy so he has to duck and can't fire at me while I run across this street, here." It works.)  The motion allows you to conquer territory and get closer to your enemy, where your shots are much more likely to hit their target. If you're not moving, the enemy gets to decide what happens, which is not a good thing. If you're not firing, the enemy will fire at you, pinning you down.

Clearly; 37Signals is pretty much electing to be a software-terror-cell by choosing to grow by not growing. If you gave 37Signals a hundred programmers they probably wouldn't know what to do with them. Put simply; 37Signals is a self sustaining team of seriously kick-ass programmers or genuine builders and story-tellers rolled into one; who can organize themselves and function as a software-terror-cell. A software-terror-cell.

A terror cell that continues to confuse the rest of the world in general and their competition in particular by constantly engaging in fire-and-motion.

Six Thousand Microsofts

Early on in my career we did some work at the Microsoft silicon valley campus. During my short stay at Microsoft I learnt something which was later articulated by another Microsoft employee. The statement was profound and left a deep impact on me --- Microsoft isn't one company. It is just a collection of six thousand Microsofts; and a majority of these Microsofts happen to be successful.

How Many Terror Cells Does Your Organization Have?

Once you've gone out there and hired some seriously kick-ass programmers; your job as a CTO; Vice President; Manager or whatever fancy designation you hold; dear reader; is to get out of their way and let them form self-sustaining-terror-cells which can continue to fire-and-motion day after day.

Try to organize your genuine builder in large standing armies and chances are; you lose.

I don't care how big your organization is; how big your team is; or what 'vertical' of enterprise software development your organization deals with - if you aren't letting your builders organize themselves into small; low maintenance software-terror-cells specializing in genuine innovation with constant fire-and-motion; chances are that there is a huge body shop out there somewhere in India which can take your organization and all it's jobs sitting ducks.

Not to mention of-course that every time you try to organize a large standing army; you screw up your chances of building a remarkable work and fun environment; just a little bit more.

Now go hire some seriously genuine builders and story-tellers. Then once you've hired them go form your own software development terror cells and learn how to fire-and-motion.

I wish you good luck.

How many successful self-sustained software-terror-cells does your organization have?

How many large standing armies is your organization feeding?

Are you indulging in fire-and-motion on your competition or are you being taken down by your competition sitting ducks; dear reader?


Note: This article is a part of a Work In Progress Book. To Read connected articles read the Builders At Work category of this blog.

posted on Tuesday, July 14, 2009 9:08:23 PM UTC by Rajiv Popat  #    Comments [0]
Posted on: Friday, July 10, 2009 by Rajiv Popat

Building Remarkable Work And Play Environments - Part 4.

Criterias For Hiring Genuine Builders Who Can Create Remarkable Environments If Left Alone.

Recruiting individuals for your team and organization is an art. An art at which I've seen so many different Vice Presidents, Senior Managers, Directors, Team Leaders and Developers suck that you begin to wonder if we are basically an industry of the incompetent recruiting the incompetent.

With this post my intent and attempt; dear reader; is not to teach you how to hire better people for the job. That; is a topic that can cover a book in itself.

What I intend on doing with this post however; is giving you a few qualities you need to look out for in your candidates while you are interviewing them. Keep these qualities in mind and work hard to develop your very own personal litmus tests around these basic qualities. Do this and you should have a good shot at eliminating most programmers-who-cannot-program; whiners and the fake rock-stars before it is too late.

Ready for some qualities you need to look out for in the candidates you interview?


Let's begin.

Thick skinned and down-right shameless.

Qualities of shamelessness and thin-skinned-approach-to-professional-life are things which usually take less than a few minutes to figure out.

As you talk to candidates try to drive the discussion to a point where they need to talk about a couple of failed projects from their career. How does the candidate talk about failures; is he objective about what went wrong; is he pointing fingers; did he learn something from his colossal failures; does he seem interested in sharing what he learnt or is he just interested in shit-canning his failures and hiding them from you.

Most great builders are down right thick-skinned and they fail often. They are often completely shameless about their failure and carry it with a sense of humor. After technical competence; this is the first quality that I tend to look for in people I hire.

Genuine Builders Are Nice When The Sky Is Falling

Ever been late to an interview? I've been there; you know the typical bad day where you are running late by a few minutes and you start the interview with an apology for being late. I stared in awe as the candidate; with multiple years of development experience; reminded me thrice that I was late and continued to give me a rather intimidating look.

If you cannot be nice to me when I start the interview five minutes late; it is safe for me to assume that you cannot be nice when the project is running late by a couple of weeks. 

I'm not saying that you go in five minutes late during every interview; but figure out a litmus test that tells you if a person is just nice; or he is also nice to work with and nice when the sky breaks lose.

Genuine Builder Know Not; And They Know That They Know Not.

Ask difficult questions. See how frequently you hear the words 'I do not know' during the interview. Most candidates find it difficult to even utter these words once during an interview. Others utter these once or twice but start lying and bitching the third time on.

Remember; genuine builders don't know a lot of things and they are rather well aware of their own weaknesses or limitations.

One of their major strength is that they know that they know not. 

Body Language

The art of observing candidates using thin-slicing is a technique described in books like Blink. Of-course you don't have to make split second decisions but anyone who he constantly avoiding eye contact; giving you shitty indignant looks when you correct them at their answers or looking at the cell phone screen as you speak to them in an interview is clearly not someone you want on your team. 

Agree To Disagree 

During every interview I try to make it a point to play the devil's advocate and disagree to the candidate on at-least one technical or design related topic. Disagree; then observe how the candidate handles disagreement.

Does he argue objectively; are there elements of contempt in his expressions as the disagreement continues.

If you were to hire him; there are going to be many heated arguments which are work-related. At the end of the day you want to hire people who have strong opinions weakly held; people who can agree to disagree and people who do not indulge in acts of bozoism.

Critical and Open but Not an Asshole

People who can provide constructive criticism are rather rare. Assholes who randomly criticize things without rhyme-or-reason are a dime a dozen. Unfortunately there is a very thin line that differentiates builders who can provide constructive criticism or whiners who specialize in de-motivating and shattering individuals.

Drive the discussion around the candidate's current project. Try to find out what he feels about the implementation. Anyone who feels that they are doing everything correct is a blatant-compulsive-liar. Anyone who provides random criticism without also mentioning what could have been done to avoid or fix what is wrong; is a down right whiner.

Anyone who is overly critical and wants to change everything in one day is a whiner too.

Track Record

I continue to be amazed at just how many companies ignore this. When one of my bosses told me a deep dark secret of figuring out a candidates possible duration in the organization if you were to hire him; the idea sounded absurd. Like all good ideas; it was absurd but true.

"Anyone who has changed a job each year; for the past three years is not going to stay in your organization for more than a year." --- I was told.

As stupid as it sounds; look at most resumes and you'll see patterns around how frequently people leave jobs. How frequently they hop from one project to another. Unless you are a one in a million example; chances are that you are not going to be able to change this track record. So; if you are looking for a candidate who can be seriously committed; anyone who has changed three jobs in last three years; at the rate of a job a year; is out.

Reason For Leaving

This is one thing that says a lot about the person you are interviewing. I continue to be amazed at just how many candidates lie blatantly when it comes to their reasons for leaving their past job. I also continue to be amazed at how easily they get caught.

I'd have a lot of respect for anyone who leaves a job because of difference of opinion. Much more respect than I can have for someone who leaves for a slightly higher paycheck and does that year-after-year. Build some simple litmus tests around reasons for leaving and you'll discover that finding out true reasons for leaving is not hard.

Passionate About Something

As they say --- passion is something that cannot be faked. You either have it or you don't. Ask the candidate which technology does he absolutely love working on. Then let him speak about it and hear him speak.

Passion is easy to detect. Having said that; the paradox of detecting passion is simple --- it takes a passionate programmer to detect and understand passion in another programmer.

If you are yourself a pay-check-programmer whose resume is floating in job portals around the year; and you believe in 501 programming spotting passion is going to be very difficult.

Genuinely Interested And Connected

Most programmers don't read books. Having said that; when I come across a programmer who hasn't read a single book on programming in his entire life; do I really want him on my team?

A programmer who doesn't read programming books is much like a movie actor who doesn't like watching movies. Disconnected and Disinterested.

Does your candidate have a favorite author? Does he work for an open source project? Does he read technical books? Does he have an active blog that he updates regularly with meaningful content? Does he answer forums?

If the answer to most of these is no; he's probably not genuinely interested or connected to programming.

You'd actually do him a favor by gently nudging him out of your office and if possible; nudge him to a different profession.

How much time has the candidate spent on your corporate website? That tells you something about his interest level in the organization. Even today; I continue to be amazed by the number of people who come down for an interview without even taking a quick glance at the company's website.

Both of these are clear examples of the candidate not being genuinely interested in programming in general and your organization in particular.

Weird But Acceptable

Genuine creativity is un-conventional; sometimes even ugly and down right weird. During my course of interviewing career I've interviewed and hired candidates ranging from folks who could barely speak English to folks who were so disappointed with BDUF approaches to software development they just couldn't stop talking.

If there is something weird or unconventional you can spot in a candidate during the small duration of an interview and it is not a harmful weirdness; embrace it. People who get into office at nine and have utmost respect for all the rules; do not know how to bend them and make small or big dents in the universe.

My work experience ranges from working with people who talk about drinking "one gigabyte of alcohol" in an office party to poets who are passionately inspired by other poets. I've always embraced weirdness and have considered it a part of the whole creative process.

Of-course; I've seen a couple of managers have their share of one or two isolated bad experiences where they landed with a kleptomaniac; without knowing they were hiring one; but then that doesn't make all forms of make diversity or even weirdness --- bad.

Wearing slippers to office is acceptable; stealing client's headphones is not.

Unless the weirdness is bad; harmful or un-acceptable --- embrace it.

Nothing Beats A Genuine Builders Recommendation

With all these criteria I might have already started sounding like someone who has years of wisdom at the whole recruitment process. But clearly all this wisdom doesn't work all the time. Which is why; when a candidate referred by one of the top-most-builders in my team fails my interview criteria; but the genuine-builder who referred him has worked with him in the past and is willing to vouch for him; here is what I do --- I shut up and recruit him.

Remember the good old saying that they used to teach you in junior school - 'birds of a feather flock together' --- Your hugely underpaid school teachers knew nothing about the importance; what they were teaching you; would have in your professional life.

If there is something that I've learnt about recruitment after being involved in recruitment for years; it is that idiots usually tend work with idiots and idiots to have friends outside work who are also idiots and they tend to refer these idiots for interviews.

Having said that the same lesson also applies to genuine builders. Builders; usually tend to hang out with other genuine builders. When wondering what you should do with a candidate one of your best builder worked with in a previous organization and has recommended --- remember --- chances are that the seriously kick ass builder who recommended him probably enjoyed working with the candidate because the candidate in question was a seriously kick-ass builder too.

You are never going to find out enough about a candidate during an interview.

When your top most performers refer someone and are willing to vouch for them; shut up; and hire them.

I do not claim of this list being an extensive list of 'all' the qualities you need to look out for; but look out for candidates who do not have most of these qualities and you've filtered a huge part of shitty-whiners out which just makes your chance of recruiting genuine builders that much better.

What are things; besides technical competence; that you look for in a candidate before you bring them on to your team?

How many of these criteria were you actively monitoring or trying to access during interviews you conducted in the past?

Which other criteria do you look for in your candidates, dear reader?


Note: This article is a part of a Work In Progress Book. To Read connected articles read the Builders At Work category of this blog.

posted on Friday, July 10, 2009 10:58:12 PM UTC by Rajiv Popat  #    Comments [0]