Common misconception about web development today is the idea that there is a ‘right approach’ for web development in general.
I have now worked on various size web sites, privately and through bigger companies, through agencies and on the client side.
My experience has taught me that web sites come in various types and sizes and usually require somewhat different development approach applied to them in order to achieve the optimal result.
There is no ‘one size fits all’ software solution out there.
Essentially, making a small site usually requires radically different approach and architecture to making a massive web site.
Some examples of web site types are outlined below:
A simple ’5 pager’
Typically, a simple, static web site will contain no more than 5 pages of HTML/CSS code to represent the very basic information about a company or an individual.
These types of web sites usually require a simple 1-2 templates, a nice design, simple 1-level navigation (such as a horizontal navigation strip) and a few pages outlining information about the subject at hand.
There is usually not much scope for code reuse on these types of web sites, but you might find an odd microformat will suit some pages (like ‘contacts’ and ‘about’ pages).
These solutions should be implemented as simply as possible from the front and back end point of view and should work very fast.
Static HTML will often suffice, although some reuse of common snippets may be helpful in the case you want to quickly add another couple of pages to the site.
Small CMS and blogs
Often a time people will want to start with a ’5 pager’ and ‘grow’ the site into a bigger web presence.
In order to achieve this, we would need to use a CMS (Content Management System) or a Blog tool (such as this Word Press blog I am writing), both of which will enable us to add pages through a WYSIWYG (What You See Is What You Get) interface.
I have found that ‘growing’ a ’5 pager’ to a larger web presence is often impossible, as the overall structure for each solution can be quite radically different (e.g. how large is the web site going to become?).
Semantics of the web site may be impacted in a negative way and the solution will not be optimal, unless you are really clever in the approach and can envisage exactly what the client may want to do in future (usually requires the client to know what they want, which is often a far fetched wish in my experience).
Within these types of web sites we may come across ‘common components’ which can be subject to heavy semantic treatment and we may be able to build some very clever and scalable data components which can go a long way.
Creating context independent widgets is another possibility with CMSs and Blogs, so the solution is usually radically different from a simple ’5 pager’.
CMSs and Blogs also lend themselves towards being integrated into ‘greater web’ via RSS, so that latest news pieces from a given CMS web site can be found at Google News search for example.
Blog posts could be submitted to Blog Search engines for more visibility and relevant traffic building.
Web applications
These are the types of systems which behave similar to Desktop Software and require heavier presence of the behaviour layer (usually in form of JavaScript and/or AJAX) in order to enable users to carry out richer and more complex interactions through the interface.
A great example of a web application is Google’s GMail, however one could argue that it is not implemented at all in a semantic way, as the solution does not work at all with JavaScript switched off.
Real semantic solutions should not need two version of the system being built in order to cater for different types of users, but this is somewhat of a holy grail which most companies still have not fully grasped (at the time of writing).
Web applications are usually much more complex to implement and require much deeper analysis and understanding of user behaviours, as well as a better insight into the overall technical solution which will underpin the required user needs.
Scalability of web applications is also another aspect which plays a big part in their success, relevance and performance, all of which impact on users and the semantics of the solution.
I also think of collaboration tools, such as BaseCamp, under the web application banner.
They are not social tools in my view as they are there to help enable dispersed groups of users achieve something common together (I define social tools as different in purpose to collaboration software).
E-commerce
E-commerce web sites are basically portals which sells goods of various types.
Having worked on many large and small e-commerce projects by now, I have realised that an entire typical e-commerce web site is on giant pattern.
Each e-commerce web site usually has: product lists, product individual view, product search, basket, ordering process, address management, special offers, etc.
These options, which we can quite easily map as thought processes, very much lend themselves towards standard semantic thinking and implementation.
I would not be surprised to see a standardised e-commerce semantic solution at some point very soon provided by a consortium of developers.
Social tools
Much of the social ‘software’ nowadays is not really software, but rather ‘tools’ with which the users can carry out some simple action (i.e. Twitter allows posting of 144 character long messages to the internet).
Social tools enable users to socialise online and promote their causes (great for marketing), but do not enable people to achieve a common goal together (this is the difference in my view between social software and collaboration software).
Due to their specific nature, social tools lend themselves to different kind of semantic treatments, with lots of RSS and various other social micro formats like XFN and XOXO.
Multimedia sites
Web sites such as YouTube in my view come under the banner of ‘multimedia sites’, since they are entirely about multimedia content, which is nowadays best served through Flash movies, as Flash plugin is most widely installed extra browser feature.
The key aspect of the multimedia web site is the ‘widgetising’ of the content so it can be included in any other web site by users with very little or no technical knowledge.
Multimedia sites today usually have various accessibility related issues, which are still being worked on by and large.
Making videos accessible is fairly tricky and requires quite a bit of work, but it is still semantically possible to do it.
Expert business tools
Custom business tools, such as bespoke software for financial products management, are increasingly being developed with utilisation of web interfaces.
These types of systems are often very complex, contain dense information on screen and require expert user understanding of the products in order to be used.
These systems are equivalent to a Boeing dashboard, which usually only makes sense to a qualified pilot who has gone through rigorous training in order to learn how to use the system.
These kinds of systems are a completely different type of an animal and to lesser extents are affected by common web usability guidelines and best practices.
These systems require very careful development approach as well as people who have very good domain knowledge of the underpinning industry and its relevant standards.