Archive for July, 2009

Aspects of great web sites

Friday, July 10th, 2009

Web developers and web product designers should continuously be considering all of the following aspects of web sites and web applications at every stage of their work if they are aiming to produce high quality web presences.

Semantic

Be as meaningful as possible, utilising and leveraging all relevant aspects of semantic web as outlined in this resource and many others.

Standards compliant

Comply with the relevant W3C standards in order to meet the internationally recognised best coding practices, which work well across many different browsers.

Accessibility

Your solution will need to work on devices with minimal technological support, including screen readers and mobile devices.

If your main solution does not work with these devices, you should provide alternative solutions which do.

Aesthetic

Good looking and easy to use from the aesthetic point of view.

Well designed and well laid out for optimal visual impact and influence.

Functional

The solution should fulfill a particular purpose or functional for which it has been created.

There is nothing worse in the world than an unnecessary web site or something that duplicates already existing provision.

User centric

Every solution should be built based on well identified user needs and requirements.

Since users are those who ultimately use the web, their needs and wants need to be addressed with the solution.

Take all aspects of User Centered Design into account when trying to achieve this aspect.

Relevant to business

Businesses have their own, often opposing, processes compared to users’ needs.

These need to be addressed as well as users’ requirements, since without them, business processes will not be fulfilled and catered for properly.

Getting the right balance between user experience and business needs is often one of the sticking points when developing any web presence.

Maintainable

If the created solution is not maintainable, it will not be able to keep up with the inevitable on-going changes which happen in the world of Internet all the time.

MySpace.com is a great example of how a non-maintainable solution, which initially was a relative success, turned into the ultimate unmaintainable mess, which is now heading towards a total failure.

Maintenance is the aspect of Internet solutions which also tends to waste the highest amount of resources and this is the case with maintenance of any product of any type.

Inter-compatible

Increasingly it is becoming a common requirement that any web site or web application needs to work seamlessly in context of another web site or application.

This can on some level be achieved through use of RSS feeds, but on some deeper levels it can be achieved through APIs and to greater or lesser extent with proper, semantic code.

Future proof

A solution which only works for the given time it is written in is no good.

Good Internet resources ought to reside on-line forever and be easily accessible and usable non-stop.

If a solution needs a major re-work every time an upgrade is required, it is not considered to be future proof.

In front end coding terms, proper standards compliant, semantic user interfaces usually ensure that  the end solution will be future proof.

Usability

A solution can be accessible, but not necessarily usable.

In terms of usability, a solution can be barely usable or highly usable.

One needs to ensure that a web site or a web application can be used with a mouse, on a mobile device, using a keyboard only, when the interface size is increased by the user and so on.

Search Engine Optimised

Once again, following best practices for user interface development, should ensure high level of Search Engine Optimisation (SEO).

However, SEO is an aspect which ought to be addressed as a stand-alone issue too, as it is somewhat a subject to high levels of competition in many industries, so semantic coding will usually not be enough to achieve high SEO impact.

One of the subtle aspects of SEO which are related to this resource is the matter of URL structures, which can somewhat make or break an SEO strategy.

Relevant and useful content

Writing for web is somewhat of an art form.

Users do not read on-line.

They skim the text and randomly read in and out at certain points on the page.

Having a good quality content on each page can be a make or break of any web site or a web application.

Why are most web sites so bad?

Monday, July 6th, 2009

Overview

In the past you might have heard something like this being uttered: ‘Web is a very young industry compared to many others, so it’s only natural to expect many things not to work very well or at all!’

There is much sense in this statement, but many aspects of it are incredibly flawed too!

Software Engineering as a practice has been around for a relatively long period of time (at least 20 years) and many books have been written on the subject matter.

I studied software engineering formally some 10 years ago and have learned common sense matters such as that software should be developed according to user needs from a very early point.

You will often get an impression that ‘User Centered Design’ is somehow a ‘new approach’, which has not yet been well formulated and much research has not been done to formalise it.

This cannot be further from truth.

I will now try and explain some of the reasons why I think so many web sites are so bad and regularly fail to work properly.

How most industries work

Think about the medical profession.

A typical doctor will spend approximately 7 years in formal University education in order to qualify as a doctor.

Before then, in order to even start studying medicine, students will need to prove that they are smart enough and capable enough to study the subject by achieving high level grades in their previous education.

The University Degree will teach medical students various theoretical aspects of medicine, biology, chemistry and much time will be spent doing practical, lab-based work while everything is likely to be discussed to Nth degree.

After 7 years of intense formal studying and evaluation, medical students will be placed in a hospital where they will work-shadow a various senior staff in order to understand the context of working in a hospital as well as see real life medical issues being dealt with.

Similar is the case if you would like to become a Gas Certified Engineer.

You will spend at least 4 years studying in order to obtain your formal qualification so that you can tell someone whether their Gas Central Heating system is at the right pressure level.

Important aspects of the above two examples are that Gas Certification Standards and Medical Books are developed and written by a high-level authorities which are setting those standards.

How IT industry works

Unlike with the above two example professions, in IT related industries for most part there are no official qualifications required from someone so that they can work as a developer.

In fact, many people will potentially frown upon those who come from Computer Science or other technical backgrounds.

Developers are asked to ‘prove themselves’ by showing a portfolio or a list of links to sites which they worked on, often to be judged whether their work is good or bad based only on the looks of those web sites.

Many times those interviewing IT people do not know much about IT themselves.

Many contributors to IT industry are totally non-technical and never want to be technical at all.

In some cases people working in IT industry quite openly hate IT itself too, while I find it difficult to imagine a brain surgeon hating the concept of operating.

The problem of people and process

Software Engineering is an incredibly complex undertaking.

Building a blogging system (which is a relatively simple matter) can be done in a very inappropriate manner, but it can also be done in such a way as to serve many other purposes.

Every software, however simple or complex, is subject to this fact.

Building software is somewhat of a conveyor belt task, just like cars are put together in a factory.

In order for software to be built well, it requires each person in the building process to follow the process, as well as know what their tasks and responsibilities are.

In most cases, software development is never approached in this way, and this is one of the main reasons why most IT projects fail miserably.

Those who don’t know cannot setup a process

We are back to the initial issue – if someone is not trained and clued up on what they are doing, they cannot organise their work properly in order to do it properly on an ongoing basis.

It takes time, effort and experience to understand what makes a good process and a proper approach to software development.

This is also heavily related to the type of software a team is building.

Another important matter to consider is that untrained people are often unable to improve the processes they are working on, constantly being locked down in a vicious circle of struggling to make a bad approach work.

Even if they manage to deliver something using a bad approach/process, usually the delivered product does not meet even the basic quality standards.

In fact bad approach/process usually generates software which does not meet the actual business requirements and those who worked on the product are often forced to explain why something ‘could not be done’ for whatever reason.

This ‘cannot be done’ attitude eventually precipitates into the organisational culture and becomes defacto standard way of (not) building sofware.

A moving target

One more major reason why most web sites are so bad is that the IT industry is a constantly moving and evolving target.

By the time a web site has been published on-line, in most cases it is already somewhat out of date, needing improvements, maintenance and taking care of.

This is the case with every software.

In order for web sites to be kept ‘fresh’ people building them are required to keep their skills and knowledge fresh.

This requires passion and dedication, which most people do not have (enough of), producing average, slightly out of date products all of the time.