Monday, June 27, 2011

The Firefox 5 Brouhaha: Why Version Numbers Don't Matter, and Why People Who Think They Do Need to Get Over It

Mozilla caused quite a stir in the "enterprise" (whatever that means) crowd recently with their oh-so-bold move of releasing an update to the Firefox web browser and calling it ... holy crap on a cracker ... version 5. Firefox 5 was released only three months after Firefox 4, to the great consternation of people who--judging by the alarmist articles on this subject at any rate--have the uniquely bad combination of lack of IT knowledge, fear of change, and positions of power in IT.

To people who are freaked out about this move, I have three words for you:

Get over it.

Here's the secret you fraidy-cat manager types need to know about version numbers: they're totally arbitrary. They don't imply the things you think they imply. Developers just make them up. No seriously, developers just make them up. Sure, certain loose rules apply that some people follow, but there's no science to any of this. The number of a release is whatever the people involved with the project decide it should be.

First off, in this particular case it's not as if Mozilla hasn't been telling people they were going this route for several months. They even made the very clear statement that the security update to Firefox 4 is--wait for it--Firefox 5, which of course only led to cries from people who don't know any better that Mozilla was "abandoning" Firefox 4.

Let's all take a deep breath and think through this logically, shall we?

First of all, how much development do you think actually happened on Firefox in the last 90 days? A fair amount, to be sure. (1000+ bug fixes in 90 days is awesome. Free software FTW.) But it's 90 days people. It's not the typical two year (yes, two year--look it up) cycle of Internet Explorer releases. And from my perspective as a web developer, where do these lengthy release cycles for IE get you? NOWHERE SLOW, thank you very much, Microsoft.

Still with me? It's OK if you continue to breathe into your paper bag to deal with the hyperventilation aftermath of the Firefox 5 release.

So, to those of you freaking out over all of this, forget about the actual version numbers for just a moment and ponder a more generic scenario. Regardless of what label gets arbitrarily slapped on a product, would you prefer ...

  1. A predictable, frequent release cycle that provides bug fixes and a manageable number of new features and changes, or

  2. A long, big-bang release cycle that is a major upheaval, perhaps even meaning you have to upgrade your entire operating system to get the latest browser. (I'm looking at you, XP users. Do the rest of the world a favor and upgrade already!)

When you look at things that way, the people who are most unsettled by Mozilla having the audacity to call the latest Firefox "Version 5" are precisely the people who should be happy about more frequent releases. More frequent releases on a relatively predictable schedule means fewer changes at a time, which means a much, much smoother upgrade experience over time. Think of it as the thousands of minor course corrections you make as you drive down a highway versus waiting until you're about to drive into a ditch and jerking your wheel hard right to correct your course.

To put it another way, would the people who are freaking out still be freaking out if they called Firefox 5 Firefox 4.1 instead? How about 4.0.00000001? A browser upgrade by any other name ...

Which leads me to my next point. This situation isn't unique to Firefox. Google Chrome has gone from version 6 to version 12 in about a year. That's a major version release every two months. (Get yourself a fresh pair of shorts. I'll wait.)

Heck some GNU/Linux distributions are even talking about moving to a rolling upgrade cycle, which would mean that everyone gets upgrades to everything as they happen, and maybe once every so often the developers bundle up whatever's current and slap an arbitrary version number on it.

There was also a great to do over a comment made by Firefox evangelist Asa Dotzler on some whiner's blog post, which I'll quote here:

Mike, you do realize that we get about 2 million Firefox downloads per day from regular user types, right? Your “big numbers” here are really just a drop in the bucket, fractions of fractions of a percent of our user base.

Enterprise has never been (and I’ll argue, shouldn’t be) a focus of ours. Until we run out of people who don’t have sysadmins and enterprise deployment teams looking out for them, I can’t imagine why we’d focus at all on the kinds of environments you care so much about.

Allow me to translate that since I think most people who are up in arms about that comment completely miss the point.

Think about things from Mozilla's perspective. They release a general purpose browser. For free. Anyone in the world who wants to use it, can.

Now let's think about who'd be whining about a simple version number. I'll tell you who: companies where environments are so incredibly fragile that something as tiny as a major version number change versus a minor one, even though it's nothing more than a label, causes mass panic.

This would be an absolute nightmare to deal with, particularly when you're releasing a free product designed for all-purpose use. You'd have company A wanting some specific tweak made to fix application A, and that would conflict with company B who needs exactly the opposite for application B, and then there's company C who simply can't upgrade until after this quarter's big sales push but needs the security fixes in Firefox 5 rolled back into Firefox 3.6 right away ...

How could Mozilla possibly manage that? Who'd pay for it? And don't overlook the comment about enterprise deployment teams and sysadmins. This isn't Mozilla's job. Their job is to make the best browser they can and do what they think is best for the product for all their users. They can't get sucked into the enterprise black hole and continue to innovate and please the vast majority of their other users, including all the ones who work places ("enterprises" if you will) where people don't lose their lunch over a label.

So while the whiners may see it as insensitive for Mozilla to be truthful and say, in the vastly oversimplified, un-nuanced summary version, that they don't care about "the enterprise," and while Microsoft, since they're on the ropes, will choose to capitalize on that statement ("Go with Microsoft! We give you stuff more slowly and make you pay for it!"), when you strip away all the rhetoric we're talking about a single number, arbitrarily applied, that's at the root of all this nonsense.

But let's get back to my main point here. Which release model should the risk averse suits prefer? Why, smaller changes more frequently of course. But to which release model do they tend to gravitate? It makes no logical sense. None.

Finally, if your business has a death grip on a particular version of a particular browser, you're doing it wrong.

When it comes to web development, and this includes whatever crap your vendors throw at you that you mindlessly pay for, you're doing it wrong if ...

  1. You panic when a new browser release is announced, and double panic when it's a (ZOMG) major version change

  2. You can't push a button to run a suite of tests to verify functionality in your mission-critical web applications in new versions of browsers

  3. You still have applications that require Internet Explorer (extra points if you have apps that require IE 6)

  4. You think thoroughly testing every version of every browser for weeks or months on end before releasing it to your users or allowing them to install it themselves is a reasonable way to do business

I could go on, but you get the picture.

This is the Internets, people. Stuff moves fast. Figure out how to deal and how to roll with it, "enterprise" or no, or go do something slower. Just don't expect the rest of us to put on the brakes because of your hangups.

Thursday, June 16, 2011

A Short Missive Concerning SQL Server, Named Instances, and JDBC

Since this seems to come up with some regularity on mailing lists and I happen to be in the midst of a massive SQL Server migration (lucky me) at the moment, I figured I'd set the record straight on this topic once and for all.

Named instances in SQL Server are not magic. Like everything else on servers, they run on a port. This named instance nonsense is simply Microsoft's way to get around expecting people to use a port number. (Because as we all know, having to deal with numbered ports is probably the biggest headache anyone in IT has to deal with. Yes, I'm being sarcastic.)

Anyway, even though the MS tools would like you to think this is all magic, not only do named instances run on a port, you actually pay a penalty by not referring to the port directly in your connection strings.

Why? Because again, there is no magic in IT, and the named instance doesn't mean squat to anything but SQL Server itself. So if you give SQL Server a named instance when trying to connect, there's an additional round trip to the server so SQL Server can translate that named instance you're asking for into a port number and return that to the thing connecting to it, at which point the connection is established using the port number. MS says so themselves here if you don't want to take my word for it.

Hope that settles it. Use the port numbers and forget about all this named instance voodoo, because that's all it is. Voodoo.