Christian Heilmann

You are currently browsing the archives for the standards category.

Archive for the ‘standards’ Category

Oh look, using Ajax in a stupid way is not a good idea?

Tuesday, April 29th, 2008

It is quite fascinating to me that the newest article on dev.opera.com entitled ‘Stop using Ajax!’ is such a big thing right now. Tweets, shared bookmarks and Google Reader items are pouring in and people seem to consider it an amazingly daring article.

Here’s the truth: James is right. He also was right when he more or less gave the same information as a talk at Highland Fling last year following my presentation on progressive enhancement and JavaScript.

However, there is nothing shocking or daring or new about this. All he says is:

  • Don’t use any technology for the sake of using it
  • Consider the users you want to reach before using a technology that may not be appropriate
  • Make sure your solution is usable and accessible
  • Build your solution on stuff that works, then enhance it.

This is what I consider to be a normal practice when developing any software or web solution.

However, the real question is now why we are at this state – how come that we see this information as daring, shocking or controversial, and how come a lot of comments are still “I don’t care about accessibility because it is not needed for my users”? How come the assumptions and plain accessibility lies are prevailing while the good stuff remains unheard of?

Well, the truth is that we have been preaching far too long to the choir. I’ve been in the web accessibility and standards preaching community for a long time and whenever I asked what about enterprise development and CMS I was told that it is not worth fighting that fight as “We will never reach them”. Well, this is where the money and a lot of jobs are and it is a fact that both accessibility and standards activists in a lot of instances don’t even know the issues that keep the stakeholders in these areas busy. My Digital Web Article ‘10 reasons why clients don’t care about accessibility’ and the follow-up Seven Accessibility Mistakes Part One and Part 2 listed these issues and the wrong ways of how we try to tackle them 3 years ago. My talk at the AbilityNet conference last week Fencing-in the habitat also mentioned this attitude and problems.

Here’s where I am now: I am bored and tired of people fighting the good fight by blaming each other’s mistakes or pointing out problems on systems that are within reach. When people ask for accessibility or Ajax usability advice you’ll get a lot of bashing and “go validate then come back” answers but not much information that can be used immediately or even questions that ask what lead to the state of the product. You’d be surprised what you can find out by asking this simple question.

We have to understand that large systems, frameworks and companies do still run the show, even when we think that bloggers, books on webdesign and mashups push the envelope. They do, but so far they are a minor discomfort for companies that sell Ajax and other out-of-the-box solutions that are inaccessible and to larger parts unusable for humans. When was the last time you used a clever expense or time tracking system in companies that are not a startup or a small web agency? When I was at the AjaxWorld conference in NYC earlier this year I heard a lot about security, ease of deployment and scalability but only a little bit about accessibility (the Dojo talk and the YUI talk, actually). People are a lot more concerned about the cost of software and the speed of release than about the quality or maintainability. It is cheaper to buy a new system every few years than to build one that is properly tested and works for all users. Does your company still have systems or third party solutions that only work on IE/Windows? I am sure there is at least one, ask the HR or finance department.

It doesn’t help to coin another term and call an accessible and usable Ajax solution Hijax, either. As much as I like the idea of it I have to agree with James’ comment – we don’t need another word, we need a reason for people to not just use things out of the box without thinking about them or – even better – offer help to the companies that build the solutions on assumptions in the first place. When I ranted about a system by a large corporation some weeks ago on twitter their marketing manager for EMEA starting following me and I am starting some talks with them.

I have heard numerous times that my ideas about progressive enhancement and accessibility are just a “passing fad” and “that in the real software market you don’t have time for that”. Challenging this attitude is what makes a difference – by proving that by using the technologies we are given in a predictable and secure way does save you time and money. However, there are not many case studies on that…

I cannot change the world when I don’t know what obstacles people have to remove to do the right thing. Deep down every developer wants to do things right, in a clean and maintainable fashion and be proud of what they’ve done. Bad products happen because of rushed projects, bad management and developers getting so frustrated that they are OK with releasing sub-par just to get the money or finally get allocated to a different project.

This is the battle we need to fight – where do these problems come from? Not what technology to avoid. You can use any technology in a good way, you just need to be able to sell it past the hype and the assumption that software is developed as fast as it takes to write a cool press release about it.

The struggle for web standards – my presentation for Coder’s Saturday in Montreal

Saturday, March 22nd, 2008

This is the presentation I have just given at the Coder’s Saturday in Montreal, Canada. The theme revolves around the adoption of standards and why this is important not only in a technological sense but much more necessary to appear as a professional developer. Most standards we talk about are really recommendations and we need to find convincing arguments why people should follow them or even why they are important to us.

The joys and perils of working for a large corporation

Saturday, February 9th, 2008

This is not a technical post, but something that I’ve been pondering about for a while and it is related to a lot of comments and emails I get through here. I wanted to sum up some points what it is like to work for a large, very public corporation and what my points of view and my circle of influence are.
Lately I’ve been getting a lot of questions about this and instead of repeating myself over and over again, I take this as an opportunity to write a reference piece.

There comes a time in the career of a developer where you go up the hierarchy in your company. Most of the time this is because of your performance and dedication to the company but also to the wider market that you work in and due to the fact that you have proven to yourself that you are a good developer and team player.

Web Development is a very young profession and we do make all the mistakes that have been done in other professions before. One thing is for sure though: you need to keep your eyes open and roll with the changes of the market in order to succeed. If you take your job and the fact that the web is a new media really serious this means that you need to check out future technologies and ideas as much as delivering the current ones to full satisfaction.

If you’ve done this for several years and feel your forehead getting numb from running against walls trying to get this idea through to people whose main concern is to make enough money to be able to pay the wages and other company expenses you got two choices: start an own company, consult others or try to join one of the big players in the market.

The former two come with financial unknowns and a lot of stress. The second also comes with the decision to let go of some of your dedication as you cannot over-deliver. You consult, you invoice, you hope they get better and you leave for the next job. You know what to do right, but you hardly ever get the chance to really deliver it.

The latter – working for a future-facing, established corporation that is not in trouble – comes with a lot of positives:

  • You work for a company that has been around a while and knows how to treat employees so that they can deliver (this means HR issues are taken care of and the pay is no problem either)
  • You work for a company that already has a lot of developers working for it and doesn’t have to start understanding the value of good IT support. This includes getting adequate hardware, the right software and upgrades whenever they are necessary rather than when they fit the budget.
  • You get reach beyond your wildest dreams – millions of users – and learn about tricks of the trade you never thought necessary but that are when you want to deliver a great experience for all these people.
  • You get the chance to work with amazingly skilled people – those whose books you read and wondered how the hell they come up with great ideas like that.
  • You get to propose people you always wanted to work with to get hired – and find that there is a budget for that!
  • You find that there are departments in the company that research technologies and ideas that aren’t an immediate success but will be a great asset in the future. You even get kudos and maybe even more for proposing them some ideas.
  • You can learn from the massive experience of people that have been playing in this league for a long time.
  • You get company perks (free food, cheaper hardware, gym, health care and so on…)

All of this will make you happy but there is a flipside, too.

  • You are a geek, possibly even with a “scene” background and you “sell out to the man” in the eyes of a lot of people that saw you as an equal before.
  • People expect you to change drastically and you have to suffer many “tongue-in-cheek” comments about you “being assimilated”, “joining the mothership” and other “clever” remarks.
  • Whenever you talk about a product of your company, people will take it less serious than when you said the same prior joining the company. “Of course you say this is good, they pay you for it”.
  • You will be responsible for everything your company does, no matter how far removed from your area of expertise or even location it happens.
  • You will be judged not by the good stuff that happens but by the lower quality things the company produces – it is fun to poke the giant and show that you can do things better (whilst forgetting the dependencies the giant has to support that you don’t have to)
  • Naturally you will be considered to have insight into all the happenings in the company and probably can tell in detail whatever people might want to know.
  • It is expected that if somebody wants you to work for them (for example as a speaker at a conference) your company will gladly pay for your travel there and the accommodation and not the organization that wants you to work for them.
  • You are expected to be as rich as the richest director in the company, as all the goods are shared equally, right?
  • You will know what stocks to invest in as your company is big in Wall Street
  • You can get anyone a job in your company, even if they haven’t the faintest clue what they really want to do or what they can bring to the table.

Each of these is no biggie and you can shrug them off, but it is amazing how many of these happen day in and day out.

So here is what I do and know about my company and its future:

  • I work as a web architect, giving advice on frontend web development matters to the people who build the internal tools that we build our web sites with.
  • I am part of a team whose job it is to define the standards frontend web matters are delivered to.
  • I am working on internal tools to make it easier to re-use code and components across different products.
  • I propose people to hire and interview others for positions in web development
  • I am an external European arm of our development library and can offer information and talks about that
  • I am a speaker that can talk about all the public facing APIs, libraries and components we offer for outside developers
  • I am an internal trainer on all matters web development and human interaction (accessibility, writing for the web…)
  • I am reviewing internal code and products of Europe, Asia and sometimes the US
  • I talk a lot to teams in the US to make sure our standards tie in with their ideas and will become global standards
  • I talk to universities about hack days, challenges and other academic happenings.
  • I keep an eye on the team in Europe and around the globe to make sure that developers are happy and can do a good job – removing obstacles for them and talking people out of ideas that would mean a lot of work for the web developers without much gain.
  • I liaise with other people in the same positions and HR and PR to make sure we have some processes in place that will ensure that we can hire good people in the future and give potential new developers an insight into what it means to be a developer for a large site like ours.
  • I speak to the backend teams to ensure we work together smoothly and have methodologies that work hand-in-hand.

This is a lot, and it keeps me busy with the things I care about the most – cool technology that benefits web surfers and empowering people who want to build this technology.

In short, I talk a lot to developers, their managers and outside people about our technologies to make sure that we can deliver good products and have fun experimenting with new ideas.

And that is all that I know about in my company. Anything else, I’d venture to guess that you know more than I do!

IE8 – Would somebody please think of the childrenthe broken web?

Thursday, January 24th, 2008

Ok, as several people wondered (in tweets and emails) what my stance on the whole IE8 malarkey is, first of all an explanation why I didn’t bother to blog about it yet:

  • I was busy with more immediate concerns about my professional future
  • Far too many people already blog about it, speculating this or that way and cross-link the same speculative articles over and over again. This will make it hard to find real information once we know the outcome of the dispute (and it is still a dispute as the rendering issues are only the tip of the iceberg). But hey, hits for their blogs = teh win!
  • I am lucky to be on a mailing list consisting of a lot of very clever people who are involved in the development of a lot of the big JS libraries and are part of companies that will have an impact on Microsoft’s decision and there is a full out email avalanche going on there.
  • It will be damn hard to beat Katemonkey’s explanation of IE8 and lemurs anyways

Now, to sum it up in some short words: Microsoft is in a pickle, or let’s say in between the devil and the deep blue see

The Devil – all the old badly developed sites

The biggest issue for Microsoft is that they “don’t want to break the web” – or in reality all the web sites that were built believing in the promise that Microsoft or WYSIWYG products create future-proof code. These are a part of the web – in a lot of cases the part that is behind a firewall and start with “intranet.company”

The Deep Blue Sea – standard aware web developers

The other big party Microsoft tries to make happy are the standard aware web developers. You might now say freaks and why bother when the enterprise market works happily without it but let’s remember what the benefits of working with standards is:

  • interoperability
  • option to convert to different formats in the future
  • making web development a more mature job, and not something anyone can hack together – which also makes it easier to assess the quality of applicants and hire them faster
  • ease of bug tracking and QA (you know how it should work and can find out what caused it not to)
  • ease of maintenance, as developers see what is going on and don’t have to try to understand what the earlier developer has done, fail in doing so and just slap some more code on at the end to make the product work.

Microsoft’s relationship with these people has never been easy but improved a lot in the recent months. The IE team took research found on the web to fix CSS problems of IE6 in IE7 and have invited experts to help them make IE better. The problem that still persists is history. Let’s do a quick time travel:

Pitch situation (around 2003)

Freaky, border-line hippie small agency: Hello Mr. Moneybags, you asked us for an offer for a web portal for your company that covers both the outside world and your employees’ needs. Here’s what we came up with. You might see that we did some extra time padding to make sure we follow web development standards and test on different platforms to ensure that everybody in and outside the company can use the system.

Man in suit: Hello Mr.Moneybags and thank you for asking us to provide you with a new e-portal covering intranet and internet with CMS and customer care features. Well, you are in luck! We will be using industry leading systems by Microsoft and Oracle to give you a system that ties in seamlessly with your current infrastructure needs. Let me see that computer, ah! Internet Explorer. You’ll be happy to know that what we give you will work with this and with your Outlook solutions! And the best is – we have fixed prices for initial delivery and a very good customer care program (but that is an agenda for another meeting in the future).

What did you think Mr.Moneybags went for?

OK, so let’s help Microsoft with their problem

Now we have a situation where the proposal is to add another META element to ensure that these problems don’t happen. This doesn’t seem much, but it is once again delivering extra work to please one browser on the internet and follow the standards other vendors have much less problem adhering to. Let’s not forget that we already did that when the other MSIE’s came out:

  • We do use DOCTYPE switching and don’t use an XML prologue for XHTML (oh, wait, we don’t do XHTML as MSIE doesn’t support it)
  • We grumbled but we agreed to use conditional comments as the most useful way to patch for MSIE
  • other browser vendors started supporting MSIE-only solutions like innerHTML and clientWidth not to break sites that were built for IE only. Isn’t that enough good will?

Then we got the carrot of “IE8 supports Acid2” and went “Wahey! No more hacking for IE in the future” and got the cold shower of this proposal. Again we were let down.

But what about the broken web?

The broken web is there because salesmen and product descriptions promised something they cannot deliver – that by sticking to a monoculture you can save time and money. History proved that the brave new world of interoperability of products from one single company does not happen. People have the choice of different operating systems and browsers and they should have that. Many councils and schools in Germany for example completely moved to Linux solutions in order to save money – and it works.

I get the distinct impression that the broken web is not as big as we make it to be and if it is then it really is broken because it was built on wrong assumptions and developed with shortcut after shortcut sacrificing maintainability and interoperability.

How many intranets, expense systems and room booking software did we have to use that did not only work in IE exclusively but also were borderline unusable as they considered options a nice to have rather than a decision to make? How many intranet systems are inaccesible to non-JavaScript users, keyboard users or blind people? Yes, it is hard to make a company change these systems, but for Pete’s sake, let’s get rid of this cruft!

Web-Appers and Microsoft unite

And this is what I think is the main step forward: instead of trying to accommodate for a broken web that should have been ditched years ago we should offer patches, tutorials, coaching and mentoring for maintainers how to upgrade these systems.

As most are built with frameworks and CMS and one of the main selling points of these was that the outcome can be easily changed in the future, how about proving that now? In the last few years we shifted more and more away from web site development to web app development and I have yet to see a big impact on the enterprise market. I see a lot of cool RoR tools for the lower and middle market, but nobody takes on Mr.Moneybags and counteracts the promised of the men in suits.

So please, Microsoft, launch a “make your systems more secure, future proof and available” campaign with fixes, patches and good information and I am happy to chip in. I am much less reluctant to cover your butt once again though just to prevent you from having to admit that things change. You ditched all DOS applications when you simulated it in more modern windows than 95, why not show the same power of decision making now?