The Internet Explorer 8 web developer’s dilemma

September 16, 2013 | Leave a comment

This post originally appeared on werd.io.

Google Analytics has announced it will end IE8 support by the end of the year, following Google Apps, which ended support for the browser last November.

Legacy browser support remains one of the hardest problems in web development. For years, Internet Explorer 6 was a bugbear, because enterprise applications were written with it in mind. Sadly, the same is true of its descendent: nobody uses IE8 on the weekend, which means that it’s probably forcibly installed on enterprise networks, where users aren’t allowed to install their own software.

Internet Explorer lock-in is rife in the enterprise, because of the browser’s non-standard web support and ubiquity on Windows computers. Faced with supporting IE8 or web standards as they were actually specified, many enterprise vendors went with IE8, because that’s where the customers were.

Compounding the problem, IE8 is the last browser in its line that will run on Windows XP, which is still prevalent in enterprise environments (even if users are slowly making the migration to Windows 7). In other words, to run a better version of Internet Explorer, enterprise IT departments don’t just have to give permission for it to be installed; they must upgrade their computers from another operating system first. This is a significant expense.

In the web development community, it’s easy to be dismissive and say that these organizations should be running Linux, and shouldn’t have got themselves into this situation to begin with. (I’ve heard this attitude a lot.) That ignores the much broader context that Windows enterprise computing sits in, including the software ecosystem and the support infrastructure that’s grown up around it. Most importantly, though, if we want to sell to a customer, it’s probably a good idea to support the platforms that they actually use. The larger and more security-conscious the customer, the more reticent they may be to upgrade their platform software more regularly.

So how do you balance the fact that so many customers are on Windows XP with the fact that Internet Explorer 8 is a hideous, insecure platform that must be developed for separately?

One option is to gently suggest Firefox or Chrome, which both work with Windows XP SP2. At latakoo, we’ll be doing that increasingly less gently; we’ve already communicated to our customers that we’ll be slowly phasing out support, and we’ll soon be adding some visible messaging urging them to switch browsers. However, the pragmatic reality is that many users can’t switch, because of their IT rules, and often because of the IE8-specific in-house apps they’re running, so we can’t simply turn off support, even though maintaining IE8-only code costs us extra.

Moving away from IE8 will be more secure for every organization. (Microsoft is ending support for Windows XP in 2014.) Until then, if you’re an enterprise IT manager, I recommend encouraging a two-browser solution: IE8 for the apps that really need it, and a secure, modern browser for everything else (including latakoo).

For developers, there’s a lot to be said for increasingly less-subtle messaging explaining why Internet Explorer 8 is a bad choice. You’re providing useful advice, while also encouraging your customers to get better value for money out of your service (because more developer time can go into new and more resilient features rather then legacy browser support). But don’t switch off support completely – not quite yet at least – lest you leave some of your most important customers out in the cold.

What’s the best way to give developers space?

August 13, 2013 | 1 comment

Like all my new posts and articles, this piece originally appeared on werd.io.

Software developers are not technicians. Whereas technicians are employed to do practical work involving technical equipment, the development process is more akin to writing. Paul Graham was absolutely right when he pointed out that:

[...] Of all the different types of people I’ve known, hackers and painters are among the most alike.

What hackers and painters have in common is that they’re both makers. Along with composers, architects, and writers, what hackers and painters are trying to do is make good things. They’re not doing research per se, though if in the course of trying to make good things they discover some new technique, so much the better.

Making requires concentration, creativity and skills. In turn, those things require the right environment, talent and practice. All three can be cultivated.

As a CTO (and, in effect, product manager), part of my role is to protect the team I work with and ensure that they have the right environment to do their creative work. Depending on the startup, the resources and the context, how well this works is a mixed bag.

Most developers I know work with great big headphones on. This isn’t an accident; think of all those scenes in The Social Network where someone can’t be interrupted because they’re “in the zone”. It’s a great big social signal that says, “I’m working”. Completely understandable: regaining your concentration after an interruption can take a very long time.

More than a set of kick-ass headphones, though, a productive environment needs to be cultivated. Here, asynchronous communication becomes important – developers tend to prefer communicating by email because they can do it in a natural break, without replying right this second. Similarly, meetings need to be scheduled carefully. Non-developers sometimes have trouble with this, and perhaps see it as an anti-social trait. It’s not: you’ve got to leave people alone to work. If you’re looking for a frenetic pace and for something to always be going on, I’d hazard to say that a software company shouldn’t be your first port of call.

(The flipside of this is that developers have to remember to send those emails and be communicative. Nobody likes a black hole in their team.)

I’ve been thinking a lot about this lately, and would love to hear your thoughts:

If you’re a developer, what do you do to maintain your concentration?

If you’re a CTO or a product manager, what do you do to help ensure that your team has the creative space to do their work?

If you’re a non-technical manager, how do you prefer to interact with your technical teams?

#productivity #productmanagement #development

The IndieWeb as a minimum viable social web ecosystem

July 9, 2013 | 1 comment

I wrote a post as a submission for the W3C’s upcoming Workshop on Social Standards: The Future of Business.

Although there have been significant advances in the field over the last five years, there remains a need to prove the business value of decentralized web technologies. To many of us involved in both the industry and the movement, this seems silly: after all, the business value of other decentralized technologies, like email and the phone system, are hardly questioned. Nonetheless, in a world where centralized data siloes regularly receive multi-billion-dollar valuations, the onus is on those of us who are building more open technologies to demonstrate their worth. Note, it is not enough to argue their worth: we must build, ship, and actively demonstrate a profitable product or service with a business model where the decentralized social web is an inextricable component.

I believe that these compelling business models exist, and that they are most easily discoverable in the enterprise. However, belief is not demonstration: we must continue to test and iterate them. During this exploration phase, this means that, our software and underlying protocols must be easy to write, adapt and change. Ease of development is more important than sophistication; we must not create our own technical lock-in before we even ship.

I posted the whole piece on Werd.io, and it also made it to the front page of Hacker News.

werd.io and idno

May 31, 2013 | 1 comment

werd.io publishing screenI’m posting over at werd.io, a site I’ve set up based on my idno software.

I wrote a short technical introduction to the platform:

idno is a personal attempt at building a publishing platform that adheres to IndieWeb principles: own your own data, publish on your own site, use existing social websites for dissemination but not as an origin. I’ve also tried to use microformats where possible, allowing every page to contain lightweight semantic information, as well as making it skinnable, extensible, and social.

Right now I’m using it as a blog, but the intention is that it could power a whole community, or set of communities. It certainly has the back-end functionality and APIs to do so, and I’ll be writing more about those as time goes on. It’s not immediately obvious unless you’re logged in, but idno has a full plugin system, which allows anyone to write new content types, and syndicate to new sites. (For example, two existing non-core plugins push to Twitter and Facebook, depending on the Activity Streams object type of the content you’re posting.) Access permissions are also baked right into the data model, so you’ll be able to keep non-public content, and share it in a federated way.

I’m pretty excited about it – but I’m also just enjoying posting to it. It’s a breeze. I’ll be opening a community site based on the platform soon, so stay tuned – or take a peek at the GitHub repository.

Next Page »