Article
Web Application Development - A Guide to Success
Page: 1 2
Knowing Your Options and Using them Wisely
Ok, now that you have an understanding of the architecture and procedures behind Web application development, let's look at what technical options you'll need to consider for the development process itself.
Windows Web Servers
Microsoft has built a loyal customer base on one important factor - their easy-to-use software. Windows NT/2000/XP Web servers are very fast and easy to administer. The fact that the operating system is a Windows shell means that administrators and authors can easily allow the Web server to interact with other software and hardware applications to transmit and receive data over the Internet. Popular server side scripting languages used with Windows servers are ASP/ASP. net, Java Server Pages, and PHP.
UNIX/Linux Web Servers
UNIX has long been known for its reliability. It is a powerful and robust Web server and operating system. Unix is the server of choice for many large-scale Websites that need content management systems or receive an extremely high volume of traffic. Popular server side scripting languages for UNIX are Java Server Pages, PERL, PHP, and CORBA
Every scripting language has its pros and cons. As I'm not writing a book here, I'll use the ASP model as my language of illustration. When working with Windows servers, there are several important parameters that the developer needs to throw into the equation, including security, scalability, speed and application design. So below I'm going to help you formulate a successful plan to accomplish all kinds of Web projects.
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.