Tuesday 13 March 2007

Changing (or rather re-educating) The Old Guard

I read an article today from the latest edition of A List Apart talking about web standards, their importance, and different approaches to them. The article, entitled Where Our Standards Went Wrong, talks about these two opposing mentalities about web standards:


  • Standards must be adhered to rigidly. If you don't, then its just wrong.
  • Standards are there as a guideline, and can be a barrier to commercial development. Be pragmatic and break them if you feel it necessary.

The article makes for a good read, and the inevitable battle of opinions that follow in the comments is equally enjoyable, and does seem to split developers into those two ranks. However, as I posted in my comment on the subject, I think we need to add another category to the mix - And this is a category that needs to disappear over time:


  • Web standards should be followed. We know this because we are told so, but we are used to developing from our days before the semantic web, and so don't really understand the spirit of a great deal of it.

I happen to work with some people with this problem. They have been in the web development game for many years, and they keep up on what they need to in order to get work (as contractors, freelancers, or permanent staff). They haven't, however, really paid attention to the logic behind the rules. They have not adapted their methods of working from the days of table-based designs. Sure, the tags they use are different now... But that's about it; They have simply replaced trs and tds with divs and spans.


Symptoms of an old-guard coder should be fairly easy to spot mostly - Heavy, "tag-soup" style, non-semantic xhtml code and huge css documents are generally a giveaway. As someone being pulled onto a project half way through, and having to deal with this, it can make things slow and painful. It makes their pages heavy and slow, and eat up more bandwidth than they need to, too... But they don't know that they are doing anything wrong - Because the code validates.


It can be very hard to tell these "old-guard" developers that what they are doing is wrong. Often, they cling to the rules which they follow as an illustration that their practises are perfectly appropriate. They seem to struggle to understand that validation is not, in fact, the be-all and end-all that it can often be made out to be by "standardista evangelistas". In this sense, I feel that there being so much preaching about standards compliance has in fact harmed the quality of development from some of these individuals. It has made them short-sighted, and given them a set of rules to cleave to whilst they happily ignore the guiding principles that surround them.


Unfortunately, unless they are shown the errors of their ways, they will never change. They need re-educating in order to see what they have been doing wrong. But how?


Personally, I would start by sitting down and talking about semantics and their importance to us as web designers and developers. I am, in fact, hoping to run a series of "workshops" where I work to accomplish this goal, and this is where I intend to start. Using practical examples works well, too... If you can. I am in the (un)lucky position that I was handed a poorly coded UI and told to re-build it from the ground up as one of my first jobs when I got here... So I already have a "before and after" example that I can use to illustrate my points. Above all, I believe you have to be prepared for some level of resistance when trying to accomplish something like this - No one reacts well when they are told that they have been working the wrong way for the past 2 years, particularly when they firmly believe they have been following all the rules, and were doing just fine.


So from the old problem of "How do you sell standards to a business?", we now have a new problem: "How do you re-sell standards to the (badly) converted?" Again, it has to be about selling benefits - Both to the business (which is, after all, who they are working for, and who they have a duty to produce the best work possible for), and to them, as well.


For those of you who are reading this post and are feeling somewhat bemused as to the real nature of the problem (After all, they are following the rules, right?), then allow me to explain. This situation is quite similar to the old "letter of the law vs spirit of the law" argument: It is possible to follow all the rules to the letter, but completely ignore the reason those rules were set in place, and the intended effect. One of the primary goals of the xhtml standard was to separate content from presentation - Previously a page's content was surrounded by presentational markup: In-line styling, table rows and cells to dictate positioning etc. With xhtml the intention is to keep these things separate: The xhtml page should define the content, the sections that content falls into, what each section does etc, while the css that relates to those sections should define the look and feel of the page. When you start adding span tags all over the place to change the look of a link, and start naming classes "redtext" etc, you are destroying those boundaries. You are again putting presentation back into the html page.


Again, some people reading this may say "Why is that a problem?". Well, it's not... Unless you ever want to update the look of your site, make changes to layout or content, add or remove items - Basically do anything with the page once it is "finished". All the extra markup makes it much harder to find what you are looking for when wading through the html code, and classes and IDs that reflect the presentation of an item rather than its function can be extremely confusing if the style is changed later (Think of a class called "redtext" where the text is actually blue!).


On top of this, the extra code makes for extra data, and extra data makes for extra bandwidth costs. Businesses generally don't like to spend more than they have to. It isn't just the html that suffers from bloat with this antiquated approach, either - Usually you will find that you end up with massive CSS files, with several classes doing the same thing and no inheritance being made use of, making for heaps of redundant code. Once again, this will increase bandwidth, and also make the files harder to navigate (Trust me... I've had to work through a 4,000 + line css file before!).


There are other business benefits most of us know about, too, such as better accessibility, SEO (although this is far from clear-cut), future-proofing, more reliable rendering, device independence.... The list goes on and on. I won't go into these things here, because this post is already rather too large, I feel. Needless to say that if you look, you can find any number of articles talking about these important issues - And they are important. I'm just saying that they probably won't be quite as important to the developers in question as the direct benefits to themselves.


This is an important issue... No matter what you think, and it happens more than you might expect, too. It's something that needs addressing soon, as well, as every day these developers continue down this road, they are costing people money. Designers and developers need to know that whilst web standards are very important, it is the spirit of these standards that is most important. There is no point in producing valid code if you are not addressing any of the issues you are supposed to be.

technorati tags:, , , , , , , , ,

Monday 12 March 2007

Concerning customers: New vs. Old

Every business, whether operating on the internet, or out in the 'real world', should want to gain new customers. For already very successful companies who are market leaders in particular fields, this often means diversifying, or expanding their target market. This is actually the case where I work at the moment - My employers are a very successful, very large travel company. They are the market leader in the UK by quite some way. However the travel industry is such that they need to expand their target market, and try and attract more customers to be able to make the profits they need - The costs of the holiday business are so high at the moment that they need as many customers as possible, and traditional 'package' holidays just aren't sexy any more to the new generation of young, internet savvy holiday buyers.


All of this means that there is a lot going on here at web HQ - We have a number of projects going on to enable this diversification of markets, and to allow the business to attract these new customers which, until now, have been an un-tapped market for them. Today though I ran into something of a conundrum - If you're not going to use an entirely new brand to reach these new customers, how do you balance the need to attract new customers, with the risk of alienating old ones? The answer, in this case, came to me from the top of the tree - And it wasn't exactly an answer I was overly enthused with.


Allow me to give you a specific example - Take a look at some of the websites we are looking to compete with and draw these 'new' customers away from: expedia, lastminute, opodo. These are all sites used by the young, internet savvy generation of holiday goers with disposable cash to burn, and an eye for a deal. Opodo is a relative newcomer to the market, but has already started making waves, and we like it here, too. Expedia, we have to admit, are the best at what they do - Their advertising and marketing machine makes the whole experience of booking a holiday with them look positively pleasurable - Never mind the holiday itself! They want the user to feel that booking a holiday with them is part of the whole holiday experience, and to an extent, it is. We don't really do any of this as well as any of the above companies yet, but we are working on hauling ourselves into line with them, in order that we might be able to compete - Enter the problem.


If we as a company want to compete with these businesses already established in their market (Which is different to ours... We are traditionally seen as a package holiday company), we need any new visitors we get to feel instantly at home. We need to give them the things they expect from these sites. Now, on the whole, we aren't doing a bad job at this - We offer a huge amount of content and information - Resort photos, accommodation photos and videos, resort information etc. We offer them the same flexibility, too... They can select a flight and hotel combination to suit their needs.


I have some problem with our presentation of this flexibility, though. This problem has come up because the powers that be in the business have decided that it is important to them that we not alienate our traditional 'package' customers. Remember that much of our revenue comes from this market, and we need to keep this custom after we open up our target markets to include the new customers. I have no problem with this - It makes perfect sense. However, when they turn round and say "We want to have people search for 'holidays' as opposed to 'flight and hotel'", I baulk a bit.


I realise that previous customers are important to the business. Some of these customers have been coming to us for years, and we cannot afford to lose their custom (read: money). However I also realise that 'Flight and Hotel' is what every other company in the Dynamic Packaging (Expedia etc) business is calling it. The term 'Holiday' works great for our existing package holiday business... But when you present this to the aforementioned young, internet-savvy audience we are looking to attract, they will simply assume our business has not in fact changed, that we are not the holiday company for them, and they will go back to their old favorites. So it would seem that we try to attract a new audience, but in terms of actually giving them what they are looking for, we may well fall at the first hurdle.


There are ways of dealing with this new vs. old customers problem, too. As I have already said, I fully realise the need to look after existing customers who we have a relationship with already. They are a major source of income for us, and we cannot afford to lose them by alienation. One thing that the business does not seem to have thought about, though, is that we already have brand preference with these customers - Certainly those who have been coming to us for each of their holidays for years on end. New advertising campaigns and a flash new website can raise our brand awareness amongst this 'new' crowd, but versus brand preference, that counts for nothing.


The great thing about brand preference is that it means that customers want to came back to you. That means that they are (generally) willing to put in that little bit extra effort to get what they want from your business, as opposed to someone else. Customers with brand preference are generally open to re-education, and this is how I personally would have dealt with this conundrum.


If we were to put the search terms back to 'Flight & Hotel' instead of 'Holiday', it might, for a very short time, confuse our existing customers. They might look for the traditional 'Holiday' radio button on the search panel and feel confused, maybe disheartened when they did not see it. However if we took a little time to re-educate them in this new system, they would quickly understand what has changed for them is actually very little, and before long they would feel back at home again. This can all be accomplished relatively easily. A simple text link saying "Looking for holidays?" with a popup layer explaining the changeover would be highly visible, as those who do look for the radio button (Not many, according to research - Around 40% of visitors to our website actually just click 'Search' without changing any information on the search panel) would be scanning for the word 'Holiday' anyway, and our new generation of visitors would see the same thing they expect when they visit any of the other holiday sites in their favorites list.


I asked the question to a couple of colleagues, saying "Why hasn't this been done?", and the response was generally "We tried but they don't listen". It is frustrating when those people in a company making major decisions refuse to take advantage of the expertise in their staff. When user interface, usability and business experts all say that something is a crazy idea, and they are all ignored, isn't something fundamentally wrong with the decision making process?


So, to summarise - Yes, by all means, look after your 'old' customers... But don't ignore the needs of a new market you are trying to break into in preference to them. If you have a strong brand, and a good market position with your existing customers, they can be re-educated. Generally people can manage a small change in terminology if you only give them a little help through, especially when you know that they actually want to shop with you as opposed to one of your competitors. New customers, on the other hand, have no loyalty to you - In fact, you may be fighting an up-hill battle from the start, if they are already loyal to another brand. If you don't deliver what they are expecting, they will leave you as quickly as they came to you, and this is especially important on the internet.

technorati tags:, , , , , , ,

The inevitable first post...

Well, this is my blog and welcome to it. I promised myself for quite some time now (Over 2 years now, in fact), that I wouldn't do this, but I finally feel that I have something useful to offer, and thus this blog was created.


Over the course of the coming days, weeks, months (years?!) etc, I will add my "musings" on a number of topics, but mostly to do with my work as a Web User Interface Designer for a certain very large travel company. It is likely that many of my posts will be lead by my experiences at work, and current developments in web technologies and standards. I am hoping that through writing all of this down, it will eventually become quite a useful resource... If not to anyone else, then at least to me.


So, on with the show, I suppose... And back to work.