Outlined below is what seems to be increasingly emerging as the most appropriate process for developing semantic web software.
The below process has been gathered by working alongside some of the leading UK design agencies and through having various conversations with (mostly design agency) managers.
It is also important to outline that this process is favoured by visual design agencies as well as other professional development companies on the market.
Many developers tend to believe this approach is favoured by semantic web developers as they have to ‘worry less about design’, but in my experience this is not the case at all.
Good designers tend to understand the intricacies related to web interfaces and are able to cater for them and design around them in order to make web design aid user experience and not hamper it.
The reason why I am outlining this process is because it could be dubbed the ’semantic web design process’, where the focus throughout the process is on the meaning, structure and overall needs of users and the business, which are the main purposes of existence of most web sites and applications.
-
Scope out
Work out the key functional requirements for the system, without going into deep details – since most of them are likely not to be known at the early stages of system development.
Write down keywords from the specification papers and start understanding which are the most important functionalities and features which need to be developed within the web site or the web application.
-
Sketch
Firstly, in a very rapid process, the idea is to sketch out pages for a web site or web application in order to capture the most important aspects of the system as a whole in some sort of a visual manner.
Even very experienced developers and architects can struggle to visualise systems before they are actually built.
At this stage the most important factor is to capture all those obvious and easy to think of aspects of the system which can be sketched out and given to developers to prototype.
-
Build
At this stage the idea is to build a wire frame like prototype of the system, based on the sketches drawn out on paper.
This approach gives developers, as well as the business a solid insight into what features, structure and intricacies the system will contain.
Prototype build is a tangible asset and can be seen, used and evaluated by the business in order to scope out and work out what is missing from the overall solution.
-
Test
This step within the process rests almost entirely upon development of the prototype in flat HTML/CSS and maybe using some JavaScript.
It is possible to test the system by getting users to point with their fingers to areas of the pages on sketched out paper based wire frames of each page, but this approach is much less precise.
The reason why it is important to have users test the ‘real system’ is because those kind of tests tend to unearth real problems based on a solution which is as close as possible to the final build.
-
Refine
Based on the user testing carried out in user testing stage, refinements to the overall system are made in order to improve usability and relevance of each page.
It is incredibly important to base changes to the system upon real data and real findings.
It also goes without saying that selection of users to test the system with is incredibly important, so there is not much point in (for example) testing an e-commerce system aimed at middle aged women with a group of young, tech savvy boys, since they are most likely not to use the system in the same manner as the target group.
-
Design
Only at the point when the system as a whole has been developed should you start working on the design for the system.
Some of the reasons for this are that designers need to know various states the pages can find themselves in.
Designers also benefit greatly from knowing what kinds of content might be found within each section of each page, in order to design in a manner which works gracefully with all types of content required by the business.
Another incredibly important reason why it is useful to do design as the very last stage of development is the fact that systems tend to take much longer to develop when every time a wire frame or prototype changes, design also needs to be changed.
This fact adds no value to the system, but ’sucks up’ time and resources from the company developing the system greatly, creating impressions that software development is about ‘creating documentation’ rather than creating shipable code.
-
Deploy
Deployment is not necessarily the ‘end’ stage of software development, but, if deployed as BETA or even ALPHA version of the system, can and should be treated as the first official live analysis of the system.
We are really now only at the ‘Scope out’ stage of development, but this time the system is ‘in the wild’ and gathering more real world data and information about real life behaviours of the users on the system, which is incredibly important as it is ‘real’.
Google and various other web sites have been deploying this approach for years now.
They also use this approach in order to show their users that ’something is constantly being updated on their systems’ which users tend to appreciate as it gives them an impression of a ‘constantly improving and active organisation’.
Written by Jason Grant, BSc, MSc on 11th June 2008
Tags: process