Stages of site design
- Target setting
- Requirements specification
- Planning
- Application structure
- Data storage
- Gateways to other programs
- Graphical design
- Programming
- Makeup
- Client functions
- Server functions
- Content
- Hosting
- Advertisement
- Support
Target setting
This may sound trivial, but before starting to do something we need
to clearly decide what exactly we want to get. Answer for this obvious
question is the one hiding behind the nice term "good target setting".
It, herewith, is not as simple as it looks like. Following target
settings may jump out in webdesign: "We need our company's site.
How much does it cost?" Perhaps, reaction of developing company's
representative may puzzle such a customer. Maybe, he'll even become
suspicious: "Why this guy sitting silent and looks so thinking, sure he
counts how to get more money from us." Actually, the developer just
preparing to make a mini-speech. He wants to say that all companies are
different, their requirements are different, so their sites must be
different too, which leads to different amount of work and,
consequently, to different costs, based on customer demands. After the
speech there will happen a discussion, leading to co-work on target
setting document.
Actually, target setting is the only stage of software design lying
completely on the customer's shoulders. Developing company may aid him
in document processing, data structurization and like, but it
cannot know what the customer really wants. It can just ask some
significant questions and advise something, basing on its own
experience.
So, the basic questions for site design are:
- What are we need to do? The definition must be complete while fit
into 500 symbols.
- What kind of information will appear on the site? Just name all
sections, but try to take everything in account.
- What additional functions the site will offer, except a statical
articles? Name and describe each function, better staying in 100
symbols.
- Should the site exchange data with other programs? If should, name
and describe all the programs and explain the purpose of the exchange.
- Is there any requirements for software and hardware platforms for
the site? If there is, name the requirements and give them short
descriptions.
Of course, mentioned questions may be not enough for clear target
setting. They needed just for start. After the anwers will appear, other
questions will rise up. The cycle shoud be repeated until the careful
examination of the document will not bring any new question. In this
joyful moment one may stop and proceed to requirements specification
stage.
Requirements specification
Next step after the targets was defined is the development of
requirements specification. Let's figure out whait is it and why we need
it. Actually, we already have the Target Setting document, which shortly
and clearly describes the customer's wishes. Isn't it enough? Especially
if we'll count a time spent for it! Unfortunately, that's not enough.
For example, the Target Setting document may declare that site must
provide company's price list, but there is no price format, no update
process specification, no other important things. The price list may be
either one page in size or big and complex enough to require its own
search system. In other words, Target Setting are enough to grasp
conception of the job, but not enough to do it.
Here we have the moment when Requirements Specification (RS) comes to stages.
RS are written to describe the job in smallest details. Ideal RS are
complete and closed document. When the developers got it, they may
freely break all connections with outer world and went somewhere to the
wilderness of Podkamennaya Tunguska. They'll take with them RS and
equipment to accomplish it, and will return after decided time with
complete product.
Obviously, writing ideal (or close to ideal) RS is very complex task,
and customer absolutely cannot do it. Commonly the developers does this
task for themselves, because most of the questions requires technical
knowledge to solve. Target Setting become a base of Requirements
Specification and its part, providing occasion for new specializing
questions. Other data source for RS is developers' knowledge about ways
to realize some function to make it best usable. This area of knowledge
is known as Usability.
Result of the second stage is the document "Requirements
Specification". It may be large enough (as large as 50 pages) and
contain all information needed to further develop the project.
Planning
When acquired the Requirements Specification, devlopers come to their
main job - working on the complete product. In a similar manner that
more or less serious building cannot be built without set of blueprints,
serious software must be planned beforehand. Some sources said that
expences to make changes in developed application are rising by exponent
from stage to stage. This means that much more cheap to correct
Requirements Specification than the Project, and even cheaper to not
make the error on the planning stage than to fix it on the realization
stage. Three important branches of planning may be defined:
application structure, data storage method and gateways to other
programs.
Application structure
Each program has definite logic of functionality. With some
simplifications, this logic may be called "program structure". If we are
talking about simple static website (that's even not a program,
actually), then we have a set of data files, with crossreferences
between them. It functions according to base website logic, so we
practically don't need to think about its structure. Other matter is
complex dynamic site, working with database and allowing to change its
content online. Such a site will contain server-side programs and client
subroutines, being loaded in browser and executed on the user's PC.
Well-thinked scheme of all this subroutines and components of the site,
and also their interaction, are makes the Application Structure.
Data Storage
Most, or even all, programs are working with data. This fact is known
to everyone familiar to programming. But modern process of user
applications' development may rather be called metaprogramming. This is
something like "programming programs", that means that we are working
with programs controlling other programs, which in turn controlling more
programs etc. Such programs' data are organized complexly and have many
special properties.
We may define two types of data: static and dynamic. Static data
hardcoded into program and can be changed only by program rebuild. If
we'll count a site as a program, we'll see that never-changing "company's
history" page is a perfect example of a static data. Obvious that fully
static site contains only pages with constant data. In order to change
it one must change the program, using special knowledge.
In contrary to static, dynamic data are changing from time to time. Good
example of dynamic data is news. News constantly appearing, old news
become invalid and being deleted. That's natural that an application
must know how to work with dynamic data, and therefore have some storage
for them.
In dependence of data complication, required update frequence,
project's budget, at last, two ways of data storage may be suggested:
a) text files with definite structure (XML documents) or b) database.
XML documents
XML is the popular modern method of creation of structured text
documents. Before it appeared, there was a conflict: text documents, so
understandable for human, was hard to process with software methods; on
the other hand, binary files, perfectly understood by a program, very
poorly readable and editable for human. XML format become a compromiss
decision - some simple rules allows to make structured text files
readable for both software and user.
In order to store data in XML documents, we must create definite
structure for each data type and teach our software to get data from a
files with such a structure. In most cases an initial data will
be written to these files manually, because when a data being kept in
files, there will rise a problems with shared access to these files.
Databases
With some simplifications, we may say that database is the place to
store, modify and process data. Data are strictly structured in
database, so in order to store some information in database we must
analyse it beforehand, make a structure, and then implement this
structure in database. The task is obviously complex, but the advantages
of databases are big enough: simplicity of huge data arrays processing,
opportunity for complex search through database, ease of data updates
etc.
In contrary to XML documents, databases are not supposed to allow
user to work with data manually, so usage of base contemplates usage of
special software to update data stored there.
Gateways to other programs
That's logical to assume that if a human can communicate with other
human, then a software can communicate with any other software.
Eventually, that's way not so easy. Continuing starting analogy, one may
say that all software are speaking in different languages and must be
specially teached to understand each other.
Therefore, in order to make developed product get information from
some other automatized systems, one must build the special component -
gateway. Gateway may work in a variety of ways. Everything is depends on
programs being linked and the task to accomplish.
Graphical design
It's easy to define designer's task: design must be nice and
comfortable. But to find a solutin of this problem, or to draw nice and
comfortable interface is, maybe, the most difficult stage of all the
work on a project.
First, every new project's graphical design must be build around a fresh
concept. Second, this concept must be implemented in site model. Model shows the
look of different pages, places to insert information, positions of
navigation elements and controls etc. At last, the model become base to
design a look of each category of pages. For example, there must be
different designs for news, product information. Practically, designer
are studying a requirements specification and draws a samples for
everything described there.
Now lets review the specificity of website interface design.
- Site design must be "light", which means that summary size of all
image files in design model should be low. This is neccessary to allow
the site to load quickly even on slow lines.
- Users may have screens with different resolutions, their browser
windows may be opened to practically any size. So, site design must be
"elastic". Elastic design will stretch out when browser is wide and
shrink when it's narrow. Of course, everything has its limits and every
elastic design has its lower limit - page cannot be narrower than the
information inside.
- Scale of the Internet makes requests to server noticeably long, so
interface must be designed with minimizing such requests in mind.
Programming
Programming, or realization, stage starts on finishing of all
preparation stages: projection and user interface design. Every
application type has its own specific development steps. For websites,
three steps may be divided: makeup, client side programming and server
side programming (not neccessarily in this order).
Makeup
Site interface built by designer is just a model of final site
interface. Actually, that's just a set of images. In order to use it in
application, one must do a makeup - cut interface model on graphical
components and describe their position on a page. Descriptions are being
written on specialized language - HTML, Hypertext Markup Language. Ready
to use HTML models than used in following stages of project.
Note that HTML is complex enough to implement, which puts large
requirements on Internet pages viewer, or browser. Old browsers (for
example, Netscape 4.x) has significantly weaker abilities than the modern
ones. So, if the project requires backward compatibility with older
browsers, proper makeup become uneasy and sometimes impossible task.
Client functions
Ready HTML models defines a way to present an information: overall
look of pages, placement of text, navigation buttons etc. Actually, this
may be more than enough for a static site, where every navigation link
just leads to other static page. This is the implemention of main website
function - providing information.
On the other hand, application often should accomplish some tasks on
client side. For example, we may want to do some animation or quickly
calculate something without bothering the server. All these tasks may be
done by subroutines, running inside user's browser. A set of such
subroutines are called client-side application.
One of the functions of client side is to support optimal scenario of
interaction with the server - more smart than standard "click and
reload" one.
Server functions
In order to receive data from database, accomplish some search,
automatically insert into base an information submitted by site
administrator or do something like, the server, supporting a site,
should run an appropriate application. The aggregate of all site
components, working on the server, are called server-side application.
Every serious dynamic site owns very advanced server side. It rules
the interaction with databases, security matters (user autentification),
updates of information and communication with other programs.
Content
The main purpose of such a specific software as a website is
providing information to visitors. Therefore, after finishing all other
development stages, the site must be filled with an information.
According to size of data this may be either trivial or very complex
task. It may be accomplished by developers, if the customer had provided
them with all neccessary information, or the customer may do it by
himself. The latter are preferable if the site is equpped with automatic
modification system. Practically the combined method become most used -
some part of information are typed in by developers, and the rest are up
to customer.
Naturally, an information for a site must be prepared beforehand: one
should write texts, collect and process product information, prepare
photos etc. This process is rather time-consuming, therefore it should
be started on the early stages, maybe just after affirmation of
requirements specification.
Developers may aid customar on this stage too, providing services of
copyrighter, translator and designer. Copyrighter are specializing in
writing texts. He'll process customer's materials and prepare a text
strictly fitting into site content model. Designer will work on provided
photos to embed them into site's graphical style and optimize for fast
download from the Web.
Hosting
Obviously, when a site is already done, one should do the thing all
the work was done for - make it available to visitors. In order to do
this, site should be placed to server - powerful computer with fast and
reliable Internet connection. Such a placement are called hosting.
Commonly, the customer should pay monthly for this. Except the placement
on a hosting platform, one should give the site some nice address. For
example, www.theCompany.ru. That requires registration of domain name
theCompany.ru and some setup to redirect requests for www.theCompany.ru
to server needed. More information on domain registrations may be found
at www.nic.ru. That's just an
administrative procedure and we'll not cover it here. Lets better review
the question of request redirecting.
Each machine in the Web have its unique address, consisting of four
numbers. There is actually neither words nor letters. In order to not
make humans to remember numbers, the DNS (Domain Name Service) was
organized some time ago. This service is doing the job of translating
string addresses to numbers. So, if we want a string address to lead to
particular server, we must make appropriate record in DNS service. The
rules are to make two record for each name - primary and secondary ones,
for reliability reasons. This service is also offered for money.
Advertisement
Taken in account that there is a huge lot of sites in the Internet,
that's very important to do all the possible to make new site known to
people. That's acchieving by submitting the site to search engines and
catalogues, drawing and showing banners, target advertisements etc. The
range of various advertisement methods are wide enough, so specialized
advertisement company are done for each particular occasion.
Support
A complete software must be still supported by owners: information
should be updated, bugs fixed, new ideas implemented. All this tasks are
included in term "support". Customer may support his site by himself,
let the developer do it or implement a combined approach. Customer's
part of support are commonly fulfilled through online control systems
embedded into site and do not include major site modifications. In turn,
developers within the framework of site support could:
- Update site materials
- Change site structure: add new sections, modify or delete old ones
- Aid in site functionality analysis, compile recommendations to
change it
- Add new functions, advance the capabilities of already existing
functions and services
- Do a graphical jobs: process new photos, develop banners, anonces
etc.
- Write a texts for new site sections
Important to understand that accurate support is the key to site
success, and the site that isn't supported as it should be aren't costs
the effort and money spent on its development.