|
APPLICATION
DEVELOPMENT
Web applications are business strategies
and policies implemented on the Web through the use of User,
Business and Data services. These tools are where the future
lies. In this article, I'll take you through the essential
phases in the life cycle of a Web application project, explain
what options you have, and help you formulate a plan for
successful Web application endeavors of your own. First,
though, let's take a brief overview of Web applications.
Who Needs Web Applications and
Why?
There are many entities that require
applications for the Web-one example would be Business-to-Business
interaction. Many companies in the world today demand to
do business with each other over secure and private networks.
This process is becoming increasingly popular with a lot
of overseas companies who outsource projects to each other.
From the simple process of transferring funds into a bank
account, to deploying a large scale Web services network
that updates pricing information globally, the adoption
of a Web applications infrastructure is vital for many businesses.
The Web Application Model
The Web application model, like many software development
models, is constructed upon 3 tiers: User Services, Business
Services and Data Services. This model breaks an application
into a network of consumers and suppliers of services.
The User Service tier creates a visual gateway
for the consumer to interact with the application. This
can range from basic HTML and DHTML to complex COM components
and Java applets.
The user services then grab business logic
and procedures from the Business Services. This tier can
range from Web scripting in ASP/PHP/JSP to server side programming
such as TCL, CORBA and PERL, that allows the user to perform
complex actions through a Web interface.
The final tier is the Data Service layer.
Data services store, retrieve and update information at
a high level. Databases, file systems, and writeable media
are all examples of Data storage and retrieval devices.
For Web applications, however, databases are most practical.
Databases allow developers to store, retrieve, add to, and
update categorical information in a systematic and organized
fashion.
Choosing the Right Project
Choosing the right types of projects to work on is an extremely
important part of the Web application development plan.
Assessing your resources, technical skills,
and publishing capabilities should be your first goal. Taking
the 3 tiers into consideration, devise a list of all available
resources that can be categorically assigned to each tier.
The next consideration should be the cost.
Do you have a budget with which to complete this project?
How much will it cost you to design, develop and deliver
a complete project with a fair amount of success? These
are questions that should be answered before you sign any
deals or contracts.
Let's look at an example. A company called
ABC needs to develop a Web application that will display
sales information created by different sales agents. The
data is updated daily through a completely automated process
from all 3 service tiers. The client tells you that this
entire project must be done in ASP/SQL server and that you
should host the application as well.
After assessing all your resources, you and
your team come to a conclusion that the company is unable
to do data backups on a daily basis. After further discussion,
you realize that this is a very important part of the setup
for your client, and you should not risk taking a chance
with the project. It's very likely that you will be more
prepared next time around, when a similar project lands
on your desk, so you decline the job and recommend someone
else who has the capabilities to do it right now.
The Phases in a Web Application Project
The Web application development process has 4 phases:
- Envisioning the nature and direction of
the project
- Devising the plan
- Development
- Testing, support and stability
Let's look at each of these in more detail.
1. Envisioning the nature and direction
of the project
In this phase, the management and developers
assigned to the project come together and establish the
goals that the solution must achieve. This includes recognizing
the limitations that are placed on the project, scheduling,
and versioning of the application. By the end of this phase,
there should be clear documentation on what the application
will achieve.
2. Devising the plan
In this phase, you and your team must determine
the "how's" of the application.
What scripting language is most appropriate,
which features must be included, and how long will it take?
These are some of the questions that must be answered through
this planning phase. The main tangents at this point are
the project plan and functional specification. The project
plan determines a timeframe of events and tasks, while the
functional specification outlines in detail how the application
will function and flow.
3. Development
Once the project plan and functional specification
are ready, a baseline is set for the development work to
begin. The programmer/s or Web developer/s begin coding,
testing and publishing data. This phase establishes the
data variables, entities and coding procedures that will
be used throughout the remainder of the project. A milestone
document is prepared by the development team, which is then
handed to management for review.
4. Testing, support and stability
The stability phase of the application project
mainly focuses on testing and the removal of bugs, discrepancies
and network issues that may otherwise cause the application
to fail. It is here that policies and procedures are established
for a successful support system.
Planning for a Successful Web Development
Project
In order to drastically minimize the risk of project failure,
I've always approached my application development projects
in the following sequence.
1. Identify business logic and entities
Start by gathering information on everything
you have. If you are going to be working with databases,
begin by enumerating how many entities will be used in the
business logic. For example, if your program implements
sales data, a sales ticket would be an entity.
Once you've identified all your entities,
establish a clear guideline for their relationships. This
can be done via presentations, flowcharts or even reports.
2. Create a functional specification
and project plan
This part, in my opinion, is the most important
part of the project. Functional specifications (or functional
specs) are a map, or blueprint for how you want a particular
Web application to look and work. The spec details what
the finished product will do, user interaction, and its
look and feel.
An advantage of writing a functional spec
is that it streamlines the development process. It takes
discrepancies and guesswork out of the programming process,
because the level of detail that goes into the plan makes
it possible to minimize the misunderstanding that's usually
associated with project mishaps. See examples of well written
functional specs at RayComm.com.
Once the functional spec is finished, a project
plan must be devised. A project plan is a timeline of tasks
and events that will take place during the project. The
project or program manager is normally the person who creates
a project plan, and their primary focus is to detail task
notes while being able to accommodate scheduling and resource
information. You can download a sample Excel file for a
project plan at Method123.com.
3. Bring the application model into
play
As discussed earlier, the application model
consists of 3 tiers - The User, Business and Data service
tiers, each of which serves a substantial purpose.
Practically speaking, it's always best to
start with the data tier, because you've already identified
your entities and understand their relationships. The data
tier can be an SQL server database, a text file, or even
the powerful and robust Oracle. Create tables, relationships,
jobs, and procedures depending on what platform you have
chosen. If the data is a warehouse (i.e. the data already
exists and does not depend on real time interaction), then
make sure that new and additional data can be added securely
and in a scalable fashion.
A quick tip: using views in SQL server/Oracle
can improve dramatically the productivity and performance
of your application. They increase speed because they are
"stored queries" that don't have a physical existence.
The Business services tier, in my opinion,
is the heart of the application. It involves the implementation
of business logic into the scripting or programming language.
At this stage, make sure you've already set
up your environment for testing and debugging. Always test
on at least 2 instances in your application, after all,
what may work perfectly for you, may not do so well on other
platforms or machines. ASP, XML, PHP, JSP and CGI are some
examples of server side scripting languages used at the
business service level. Whichever language you choose, make
sure that it's capable of handling all the business logic
presented in the functional specification.
The last is the user tier, which is absolutely
vital for the interactive and strategic elements in the
application. It provides the user with a visual gateway
to the business service by placing images, icons, graphics
and layout elements in strategic areas of interest, most
commonly, based on management research. If you'll be developing
the user tier yourself, be sure to have studied your competition.
The last thing you need is for your application to look
exactly the same as someone else's.
4. Develop a support scheme
Being able to support and stabilize your application
is very important. Define a procedure call for cases of
failure, mishaps or even downtime. Give your customers the
ability to contact you in the case of an emergency relating
to the program.
A good example of a support scheme is a ticket
tracking system. This system allows users to file cases
pertaining to a support request and the support team, then
makes the case track able. This means that the request is
identifiable by a unique code or number. Although ticket-tracking
systems are normally used by hosting companies or large
scale ASP's (Application Service Providers), they still
serve a valuable purpose in helping keep the application
stable.
Over to You...
So there you have it - a framework from which you can begin
to plan and develop your own successful Web applications.
Web applications will be around for a long
time to come. As we move further on into the future, they
will become less manual and more automated. This will eventually
lead to new kinds of research, but for now, we can be happy
with the fact that it is this that drives the Web.
|