free html hit counter
Posted on: Monday, 17 March 2008 by Rajiv Popat

The folks at 37signals are not particularly worried about sounding opinionated when accused of taking a black and white view:

If our tone seems too know-it-all'ish, bear with us. We think it's better to present ideas in bold strokes than to be wishy-washy about it. If that comes off as cocky or arrogant, so be it. We'd rather be provocative than water everything down with "it depends..."

With BaseCamp they have indeed proved the rest of the conventional world wrong by presenting their ideas using rather bold strokes.

If RoR is often referred to as opinionated software, it's because it was meant to be that way:

Some people argue software should be agnostic. They say it's arrogant for developers to limit features or ignore feature requests. They say software should always be as flexible as possible.

We think that's bullshit. The best software has a vision. The best software takes sides. When someone uses software, they're not just looking for features, they're looking for an approach. They're looking for a vision. Decide what your vision is and run with it.

And remember, if they don't like your vision there are plenty of other visions out there for people. Don't go chasing people you'll never make happy.

The same tone also resonates in the ASP.NET MVC team and Scott Hanselman's post which talks about ASP.NET MVC framework:

This is a not just a different tune, but a whole different band playing all new music. Not everyone will like the music, and that's why the world has more than one band. This is a Good Thing.

Clearly, this team is not trying to please everyone with the same stereotype music. They're targeting a specific audience that cares about writing quality code, taking pragmatic decisions and keeping things simple.

When you think of opinionated bloggers, Rory and Steve Yegge come to mind. Both of these guys are loud, direct and completely arrogant. Which by the way, is exactly what I love about their blogs.

Rory's site for example has a footer which reads - "I *own* this site, you loser" and Steve Yegge criticizes all development processes including agile when the rest of the world is going gaga over these methodologies.

Opinionated individuals causing serious damage and making big (or even small) dents in the universe are much more interesting than the usual flock of sheep grazing harmlessly in the fields primarily because these opinionated trouble makers tend to stand out and shine amongst the flock of sheep.

Contrary to the traditional belief, being opinionated and having that reflect on your life, your software or your blog is not a bad thing. In fact your opinions are what set you apart and help you stand out from the crowd.

Throughout my career I've worked with numerous junior engineers and a lot of programmers fresh out of college. Of them the ones that have stood out the most are not the ones who have the highest rank. The ones who usually stand out the most, invariably seem to have at-least two particularly common characteristics:

  1. They have an opinion.
  2. They are unafraid to express it.

My lamest work experiences have been with folks who tended to agree with everything I had to say, offered no arguments what-so-ever and then chickened out when it came to execution of ideas. Having said that for the most part I've been plain and outright lucky to have worked with folks who I can 'agree to disagree' with.

If I tend to insist that young and budding programmers develop their own opinions, it's purely because I have my own shellfish interest in pushing young and budding developers on the path of thick skinned shamelessness and turning them to the idea of having their own opinions and expressing them fearlessly. Ravi Mohan in his blog post explains mistakes most people make by not associating themselves with opinionated folks. He uses words which are much more articulate than mine:

Many people make the mistake of surrounding themselves with people who think exactly like them and reinforce every idea or prejudice they have. This is a bad mistake and will often end up distorting the reality you see. One needs the corrective bucket of cold water in one's face once every so often.

The only problem with surrounding yourself with bright people who think differently is that you may occasionally find that one of your ideas isn't as hot as you think it was or that one of your deeply held convictions is just plain wrong. This is difficult for some people because they make the rightness of their ideas a validation of their worth as persons. 

When given the choice of picking between a flock of sheep who agree with everything I say vs. picking opinionated troublemakers who think differently than I do and are willing to discuss, brainstorm and argue, I would pick the opinionated troublemakers any day.

When following people, I would rather follow folks who have their opinions and are willing to discuss, brainstorm and argue with me when my opinions are different than theirs, over folks who expect me to follow orders blindly.

Some of my favorite authors are opinionated. Even some of my favorite books are highly opinionated.

If you think having opinions and expressing them loudly and boldly is a bad thing, the green pastures are waiting for you. Happy grazing.

If you have strong opinions on programming, programming languages, design, user interface, how software aught to be built, or anything to do with programming or the craft of building software, and are unashamed to express them; you've already joined an elite group. Congratulations!

On the other hand, If you have opinions but haven't started expressing your opinions loudly and boldly, may I suggest that you start now! Having your own opinions and expressing them isn't easy; but the effort is worth it. It's better than joining the flock of sheep grazing harmlessly on the safe green pastures day after day.

posted on Monday, 17 March 2008 12:43:29 UTC by Rajiv Popat  #    Comments [1] Trackback
Related posts:
Are We Really Overworked? Or Just Not Enjoying What We Do?
Managers And Their Self-Fulfilling Prophecies.
Fake It Till You Become It.
Cookie Cutter Vs. Improvised Support
The Real Story Of Passionate Success.
Feeling Like A Phony Is Fine. Not Showing Up Isn't.
Tracked by:
"Cross-Platform Development for OS X, Windows, and Linux with RealBasic" (Rory -... [Trackback]
"The War, The Angel, The Devil And The Programmer" (ThousandtyOne! - .NET, Life ... [Trackback]
"CMM, RUP and Gant charts don't build Successful Software. Kick Ass Programmers ... [Trackback]
"Stop Being A Leecher. Participate. Contribute." (ThousandtyOne! - .NET, Life an... [Trackback] [Pingback]
"It's Not About Google. It's About You." (ThousandtyOne! - .NET, Life and Logica... [Trackback]
"You Don't Ask Why, You Don't Get Innovation." (ThousandtyOne! - .NET, Life and ... [Trackback]
"You Don't Ask Why, You Don't Get Innovation (Comment Reply)" (ThousandtyOne! - ... [Trackback]
"CMM, RUP and Gantt Charts Don't Build Successful Software. Kick Ass Programmers... [Trackback]
"That's Not An Office. They Just Want You To Think It Is." (ThousandtyOne! - .NE... [Trackback]
"That's Not An Office. Software Shops Around The World Just Want You To Think It... [Trackback]
"Why Project Managers Should Have Short Memories" (ThousandtyOne! - .NET, Life a... [Trackback]
"Why Project Managers And Team Leaders Should Have Short Memories." (ThousandtyO... [Trackback]
"Why People Who Lead Teams Should Have Short Memories." (ThousandtyOne! - .NET, ... [Trackback]
"Conviction And A Strong Spine - Two Qualities To Look For In People You Work Wi... [Trackback]
"The Perils Of Mitigated Speech In Software Development" (ThousandtyOne! - .NET,... [Trackback]
"Contributing Through Your Blog – What Goes Around Comes Around" (Thousand... [Trackback]
"Passionate Blogging And Contributing Through Your Blog – What Goes Around... [Trackback]
"Contributing Through Your Blog - What Goes Around Comes Around." (ThousandtyOne... [Trackback]
"Why Really Good Developers Should Become Managers - If You Don't Step Up 'They'... [Trackback]
"Why Really Good Developers Should Become Managers - If You Don't Run Your Proje... [Trackback]
"Why Kick-Ass Developers Should Become Managers - If You Don't Run Your Projects... [Trackback]
"You Could Be A Micro-Manager Or A Prick - And You May Not Even Know It." (Thous... [Trackback]
"Building A Better 'Transactive Memory' - Relying On Mavens Vs. Going By Expert ... [Trackback]
"Cloud Computing Is Highly Overrated." (ThousandtyOne! - .NET, Life and Logical ... [Trackback]
"Safe Is Risky. 'Remarkable' Is Fun." (ThousandtyOne! - .NET, Life and Logical T... [Trackback]
"Measuring Your Project Health With The F-Word." (ThousandtyOne! - .NET, Life an... [Trackback]
"The F-Word In Software Development." (ThousandtyOne! - .NET, Life and Logical T... [Trackback]
"Transparency - You Can Have All Of It Or None Of It." (ThousandtyOne! - .NET, L... [Trackback]
"Transparent Work Cultures And Aiming For 'No Secrets'." (ThousandtyOne! - .NET,... [Trackback]
"Striving For Transparent Work Cultures With 'No Secrets'." (ThousandtyOne! - .N... [Trackback]
"Have You Found Your Arch Enemy Yet?" (ThousandtyOne! - .NET, Life and Logical T... [Trackback]
"The Importance Of Finding Your Arch Enemy." (ThousandtyOne! - .NET, Life and Lo... [Trackback]
"Picking Up Fights With Your Arch Enemy." (ThousandtyOne! - .NET, Life and Logic... [Trackback]
"My First E-Book And Your Chance To Boo At A Bathroom Singer In A Live Concert."... [Trackback]
"About This Blog." (ThousandtyOne (CodePersona). ) [Trackback]
"Glitches With Working To Make Your Managers Happy." (ThousandtyOne! - .NET, Lif... [Trackback]
"Drawbacks With Working To Make Your Managers Happy." (ThousandtyOne! - .NET, Li... [Trackback]
"Different Modes Of Working - Part 1." (ThousandtyOne! - .NET, Life and Logical ... [Trackback]
"Issues With Working To Please Your Managers." (ThousandtyOne! - .NET, Life and ... [Trackback]