Wednesday, October 05, 2011

Steve Jobs

By all accounts, Steve Jobs was the kind of guy who you didn't want to work with. To put it bluntly, he was a perfectionistic pain in the butt, the Boss from Hell for whom good was never good enough. Yet that intensity was driven by a vision that has transformed technology in the past decade.

Many successful businesses make their fortune by carefully calculating how much people can spend and squeezing every bit from them via tricks, gimmicks, and sometimes even outright lies. Advertising and marketing create demand for a product that is often much different than it appears to be. When people find out that the reality doesn't match what they were promised, the outcome is bitterness and anger towards the company that deceived them.

Jobs was different in that he figured out what people really wanted--so often in sync with what he really wanted--and gave it to them. He seemed to figure it out not by focus groups or statistical analysis of consumer trends, but by a gut feeling that was in tune with the public's inner desires. For Apple the product itself, not the advertising, inspired good feelings. Those products are often defined by what they don't have, a Zen simplicity that lets their essential qualities shine through.

Plenty of companies take one idea and ride it for years, making only small tweaks to the formula. Not so with Jobs. He had no problem branching out from Apple's core business of personal computers. First with the iPod, then the iPhone and iPad, Jobs put his company into markets against established players and blew them out of the water. He dived headlong into markets left for dead after multiple attempts by competitors who had nothing to show but a crimson balance sheet. He reminded us that a great product is the best foundation for a great business strategy.

Clearly, Jobs was not the only one responsible for Apple's past decade of incredible success. To his credit, he never claimed he was. In a "60 Minutes" interview, Jobs said, "Great things in business are not done by one person, they are done by a team of people." Yet he provided a successful vision the company could follow, and--to their credit--one they did follow.

Jobs passionately knew what he wanted, and wasn't happy with the people around him delivering anything less. Yet passion by itself isn't a recipe for success, especially when it creates such tension in the organization. Jobs was effective not just because he was passionate, but because the ideas behind his passion were so often proven right. No doubt there were stressful times inside Apple given Steve's style. In the end, however, everyone must be deeply satisfied with the success of the products they created under his leadership.

Running out of Lipstick

Over the past several months, I've spent some time fixing lots of jQuery event bugs related to Internet Explorer 6, 7, and 8 in preparation for the upcoming jQuery 1.7 release. Most of these were jQuery bugs in the sense that we didn't put enough extra lipstick on the pig to make it seem as attractive and standards-compatible as modern browsers. One phenomenon that interested me about these bugs was that they had all been reported in the past 18 months, but had been in jQuery for several years. So if that is the case, why were they just being reported now? I have a theory.

If you were a web developer five years ago, you had to really know the quirks and inconsistencies of the major browsers of the day, primarily Internet Explorer 6/7, Firefox 2/3, and Safari 2/3. Libraries like jQuery were created to help developers deal with those problems, but nearly all developers were well aware of the issues that were being normalized within the library. That usually meant their own battle scars prevented them from going into territories where they'd been burned before, so jQuery's valiant-yet-imperfect attempts to fix IE were good enough in most cases.

Today we're seeing a whole new generation of web developers. They write standard HTML, jQuery, and JavaScript with an expectation that all browsers obey the standards. They're developing complex pages and even full-blown applications using Chrome Developer Tools and Firefox with Firebug, often on their Macbooks. Late in the process they spin up a VM with Windows to test in IE6/7/8 and find that something breaks due to subtle differences in the way those older versions of IE disregard the standards. So they file a bug with jQuery, and we add more lipstick.

As the older IEs become less mainstream yet still important, it's probable that IE-related jQuery bugs will continue to come in as developers discover more ways that their standards-based hopes are dashed. If it's feasible we'll fix them, but that doesn't excuse any web developer from having a basic understanding of the quirks and pitfalls of IE. There will always be things that jQuery can't fix--eventually we're going to run out of lipstick.

The good news is that the rewritten IE event support in jQuery 1.7 closed many bugs and actually reduced the size of that code by nearly half, so the world is paying a much lower price for it. Only time will tell if that code meets the expectations of developers who expect strict standards compliance, even from browsers released in 2001.