In the past, conversations with friends and clients have led to
me telling them that I am an application developer. Most people
don't know what this means, so sometimes I say programmer, which is
often, but not always, more easily understood.... then I explain
that I work in web development, which does not always make things
clearer.
The confusion is that my role doesn't involve the writing of
HTML, or the visual design process, but those unfamiliar with the
industry often do not realise what else is involved in the process
of creating a website. In fact, before I came to work at Zeroseven,
I was not fully aware of the different roles needed to develop a
site from start to finish.
So in this article I will be writing about the development
lifecycle, with a focus on how my own role as an application
developer interacts with the steps of that cycle. The intention is
that this insight allows you to further understand what shapes a
website, and specifically, that the process of creating a website
involves a range of different individuals with different skills,
and an overlap of those skills to produce a fleshed-out, quality
product.
Requirement gathering and specification:
When a client comes to Zeroseven, our first step is to translate
what they want into what
they truly need. Our client consultant
Elizabeth has written an article about this in The Truth About
Technical Specifications, which I would encourage you to
read for a fuller understanding of this part of the process. The
gist of this step is to determine what everything on the site
must DO.
Visual design and HTML coding:
In the second step, client-approved wireframes and specifications
are handed over to our digital designers, who create Photoshop
mock-ups of all the pages required on the website. These pages have
to meet customer criteria (such as branding and preferred style),
and deliver a good experience to the end user, without going beyond
the actual possibilities of what can be displayed on a webpage. To
achieve this, digital designers need a good understanding of both
customer requirements and HTML guidelines.
Once these designs are approved, they are translated into HTML
by our user interface developers. They must ensure the design
matches the code, down to the pixel; that the pages function within
the content management system; and that the project is compatible
with a variety of browsers and devices.
Application development:
Application development is my main duty. Once a site is handed to
me, it is viewable in a web browser, and if it's integrated into a
content management system, the copy can be edited. For some, but
hardly all sites, this is the end of the process. But a website
tends to have other functionality that goes beyond just viewing
content. Some sites are online stores, some communicate with
complex databases, some integrate with Google maps and other
external services, and some are entirely original and need unique
features built from scratch. At the very least, sites have contact
forms, and newsletter subscription forms, which send emails to site
administrators, and sometimes record to databases.
To achieve these requirements efficiently, an application
developer must be very analytical; the ability to recognise
commonly reused patterns, or exceptions that need only be handled a
few times, is of great importance.
Of the sites listed in our
portfolio, the St John Service Management
Database and HardenUp are a
couple of the most application development intensive. The St John
database is an intricate timetable and scheduling tool, while
HardenUp interfaces extensively with Facebook and other social
media services. The requirements of these sites go far and beyond
what is possible with just HTML and Flash, and would not be
possible without application developers to bridge the gap between
the website interface that users see, and the logic going on behind
it.
The most rewarding, but challenging, applications we build are
those that interface with external applications, and it is this
link to other products and businesses that makes our custom
projects so powerful.
Any external application linked to within a website uses what we
call an API (Application Programming Interface). API's allow
developers to access databases and services that would normally be
outside a small company's ability to manage. For example, some of
our online stores use external product databases which application
developers must connect to, to display product information, pricing
and stock. For a more exotic example, sites such as Witness King Tides also use
external interfaces to manage user submitted photos.
The internet at its heart is all about information, so the
ability to exchange information with external services is
invaluable, and a core part of online application development.
Zeroseven accomplishes its programming tasks with ASP.NET: a
programming framework, created by Microsoft, using
C#: a programming language, also created by
Microsoft.
When building the complex functionality needed for a lot of our
work, the application developer needs a thorough understanding of
the project's requirements and a working knowledge of how to make
minor modifications to the HTML (from the initial step) in order to
accomplish their goals.
Testing:
While I've placed this step at the end, testing is an ongoing
process that happens during all steps in the development lifecycle.
The term "testing" is generic, but includes ensuring that all the
requirements have been met; that functionality reacts as expected;
that everything matches the original visual design; and that
everything works across multiple browsers and devices.
Testing is a task taken on by all staff at each step, but it is
important that a person tests more than their own work, as your own
faults and errors can often be invisible to you.
Deployment/Live:
Deployment involves moving the project from our local, offline
environment, to a live, user-ready one. There are two different
deployments that happen near the end of the project. The first is a
preview, strictly for the client, to review and enter content; the
second, of course, is when the site becomes available for use by
the general public.
Deployment is often, but not always, carried out by the
application developer, as some sites have special technical
requirements that their hosting providers must meet. This includes
the recommendation of an appropriate hosting company, the transfer
of files and databases to the new hosting, and an appropriate
amount of retesting once the live environment is ready to go.
Timing:
The development lifecycle does not necessarily have to occur in
this order, although what I've described is our typical process.
There are instances where application development occurs before
HTML coding or visual design; for example, when a difficult
programming requirement needs to be determined as possible before
the rest of the work can begin. The length of time each step takes
can vary greatly, depending on the requirements for a site; some
are simple visually but very complicated logic-wise, while some of
the simplest sites from a programming perspective can be remarkably
intricate visually.
Last Word:
This brief overview gives you some idea of what to expect, who's
involved, and what's going on under the hood, when you work with
Zeroseven for your next project.