Ben McCormick

Reflections on Web Development

How I Use Stack Overflow

The problem with self directed learning is that our ability to learn is often constrained by the very problem we are trying to solve, our limited knowledge of a field.

One of the first things I learned as I began to work in the software industry was that self driven learning is necessary for staying relevant. Especially when working on evolving platforms like the web and mobile, things change fast. The web frameworks of 2005 have little direct relevance to web development in 2013, and mobile development in its current form was a category that didn’t even exist in 2005. If you want to be at the top of your field, or even anywhere close, learning and growing independently of whatever your current task happens to be is incredibly important. But it can be hard to put into practice.

Evergreen Browsers

Tom Dale on Evergreen Browsers:

If you’re like me, when you’re developing a new web application, you put features into mental buckets. There’s the “works in IE7″ bucket, the “works in IE8″ bucket, “(I think) works in IE9,” and of course, “works in MobileSafari.”

The one bucket I don’t have is the “works in Chrome” bucket. That’s too much mental overhead. Instead, if I want to test whether something works in Chrome, I just pop open a new JS Bin and try it out. I don’t worry about which version they’re on—I assume that by the time my code makes it to production, my users will be on more-or-less the same version as me.

What would the web platform look like if every browser with significant market share updated itself at the same pace—and lack of user intervention—as Chrome?

I’m excited for this to happen. Browser diversity is a good thing and worth the pain because it pushes things forward, but the advantages are lost when users aren’t moving forward along with the innovations that diversity and competition bring. Having an up to date browser shouldn’t be a user concern 1. Here’s to a web that moves at the pace of the leaders, rather than being paced by the least common denominator.

  1. Unless they want it to be. Obviously there are use cases for things like long term support releases for businesses, though this has diminished as browsers have generally become more standard compliant

90% Done, Halfway There

There’s a running joke on my team at work when somebody asks about progress on another engineers bug.

“I’ve done 90% of the work, so I am about halfway there!”

It’s really hard to estimate software development times. I would in fact say that from a project planning perspective, that may be THE hardest problem when planning a big project. Its certainly a question that engineers are asked all the time, and not one that is usually easy to answer even on an individual level.

Customer Culture Revisited

Marco Arment back in 2011:

For Windows 8 to succeed, especially for its tablets to compete well against the iPad, it will need to adopt a more Apple-like confidence to say “no” to its customers when they ask for everything under the sun. And, surprisingly, they might be doing exactly that.

One of the reasons Metro is interesting to people like me who usually ignore Microsoft is that it’s full of very un-Microsoft-like decisions, generally for the better.

The question isn’t whether Metro will be good: it probably will be. And that’s a huge accomplishment for Microsoft that they should be commended for.

But how will their customers react?

Will Metro be meaningfully adopted by PC users? Or will it be a layer that most users disable immediately or use briefly and then forget about, like Mac OS X’s Dashboard, in which case they’ll deride the Metro-only tablets as “useless” and keep using Windows like they always have?

Almost 2 years later, this is looking extremely prescient. I like what Microsoft was attempting to create with Windows 8, and love the Metro/Modern/Whatever style in general, but 8.1 seems to signal most of the effort since has been spent hedging on it instead of doubling down, and I can’t see how its going to get where it needs to go like that.