What is web application development?

What is web application development?

Simply put, Web Applications are dynamic web sites combined with server side programming which provide functionalities like user interaction, connecting to back-end databases, and generating results to browsers. Online banking, Social networking, e-commerce websites, online reservation systems, blogs, forums etc. are all web applications.

What is web application development?

  • Ajax (Asynchronous JavaScript and XML)
  • ASP.NET (Microsoft's Web Application Framework - successor of ASP)
  • ActionScript
  • CSS (Cascading Style Sheets)
  • ColdFusion (Adobe's Web Application Framework)
  • HTML (HyperText Markup Language)
  • Java & JavaScript
  • Visual LANSA
  • Node.js
  • Perl (general purpose high-level programming language)
  • PHP (Server Side Scripting language)
  • Ruby on Rails (Ruby programming's Web Application Framework - free redistribution)
  • Python
  • Xojo

Benefits / Features

  • Helps reach millions of consumers and businesses without geographical limitations.
  • Helps generate substantial income from consumers, businesses and advertisers.
  • Flexible and versatile unlike traditional desktop applications.
  • Can provide innovative services and solutions to a large mass of online crowd.
  • Helps companies reinvent and evolve in order to stand among the cut-throat competitors, hence leading to its development.

Tips for effective web application development

  • Put in some time on open source projects to gain experience and knowledge. It can also help you get in touch with other experts working in the same realm, hence allowing you learn from their expertise.
  • Join various groups and forums on social media to increase your networking. Developers and designers can highly help you enhance your skill set.
  • Use appropriate frameworks to make your task easy and your application robust.
  • Comment your code thoroughly.

Selecting the most suitable company for Web application development

Simply put, Web Applications are dynamic web sites combined with server side programming which provide functionalities such as interacting with users, connecting to back-end databases, and generating results to browsers.

Examples of Web Applications are Online Banking, Social Networking, Online Reservations, eCommerce / Shopping Cart Applications, Interactive Games, Online Training, Online Polls, Blogs, Online Forums, Content Management Systems, etc..

Technologies

There are two main categories of coding, scripting and programming for creating Web Applications:

I. Client Side Scripting / Coding – Client Side Scripting is the type of code that is executed or interpreted by browsers.

Client Side Scripting is generally viewable by any visitor to a site (from the view menu click on “View Source” to view the source code).

Below are some common Client Side Scripting technologies:

  • HTML (HyperText Markup Language)
  • CSS (Cascading Style Sheets)
  • JavaScript
  • Ajax (Asynchronous JavaScript and XML)
  • jQuery (JavaScript Framework Library - commonly used in Ajax development)
  • MooTools (JavaScript Framework Library - commonly used in Ajax development)
  • Dojo Toolkit (JavaScript Framework Library - commonly used in Ajax development)

Examples of Web Applications are Online Banking, Social Networking, Online Reservations, eCommerce / Shopping Cart Applications, Interactive Games, Online Training, Online Polls, Blogs, Online Forums, Content Management Systems, etc..

II. Server Side Scripting / Coding – Server Side Scripting is the type of code that is executed or interpreted by the web server. Server Side Scripting is not viewable or accessible by any visitor or general public.

Below are the common Server Side Scripting technologies:

  • PHP (very common Server Side Scripting language - Linux / Unix based Open Source - free redistribution, usually combines with MySQL database)
  • Framework (PHP's Object Oriented Web Application Framework)
  • ASP (Microsoft Web Server (IIS) Scripting language)
  • ASP.NET (Microsoft's Web Application Framework - successor of ASP)
  • ColdFusion (Adobe's Web Application Framework)
  • Ruby on Rails (Ruby programming's Web Application Framework - free redistribution)
  • Perl (general purpose high-level programming language and Server Side Scripting Language - free redistribution - lost its popularity to PHP
  • Python (general purpose high-level programming language and Server Side Scripting language - free redistribution)

Program Libraries

  • Program libraries are a collection of commonly used functions, classes or subroutines which provide ease of development and maintenance by allowing developers to easily add or edit functionalities to a frame worked or modular type application.

Web Application Frameworks

  • Web Application Frameworks are sets of program libraries, components and tools organized in an architecture system allowing developers to build and maintain complex web application projects using a fast and efficient approach.
  • Web Application Frameworks are designed to streamline programming and promote code reuse by setting forth folder organization and structure, documentation, guidelines and libraries (reusable codes for common functions and classes).

Web Application Frameworks - Benefits and Advantages

  • Program actions and logic are separated from the HTML, CSS and design files. This helps designers (without any programming experience) to be able to edit the interface and make design changes without help from a programmer.
  • Builds are based on the module, libraries and tools, allowing programmers to easily share libraries and implement complex functionalities and features in a fast and efficient manner.
  • The structure helps produce best practice coding with consistent logic and coding standards, and provides other developers the ability to become familiar with the code in a short time.

Coding Guidelines, Standards & Convention

  • Coding guidelines are sets of rules and standards used in programming a web application project.
  • These rules and standards apply to coding logic, folder structure and names, file names, file organization, formatting and indentation, statements, classes and functions, and naming conventions. These rules also enforce writing clear comments and provide documentation.

Important benefits of using Coding Guidelines

  • Creates the best environment for multiple programmers to work on the same project
  • Provides ease of maintainability and version management
  • Delivers better readability and understanding of the source code
  • Insures that other developers can understand and become familiar with the code in a short

Web Applications Lifecycle Model

  • Web Application Lifecycle is the process of developing a web application and involvement of the multiple teams that are engaged in the development process. Each organization may set forth its own unique style of operating.
  • Some companies follow a certain standard model such as SDLC (System Development Life Cycle) or Agile Software Development Model.
  • SDLC is the traditional process of developing software or web applications by including research to identify and define the application requirements, information analysis, architectural design and specifications blueprint, team involvement, programming, testing and bug fixing, system testing, implementation and maintenance.
  • Agile Software / Web Application Development is the iterative development process and development process practices that focus on collaboration of people involved and provide a better procedure to allow revisions and evolution of web application requirements. Agile methodology includes research, analysis, project management, design, programming, implementation, frequent testing, adaptation and maintenance.

Web Applications Lifecycle Model

Web Application Development Process organizes a practical procedure and approach in application development.

For detail information: Web Application Development Process

The following list of procedures and suggested documents provide a good outline for a Web Application Lifecycle and Process:

  • Roadmap Document: Defining Web Application, Purpose, Goals and Direction
  • Researching and Defining Audience Scope and Security Documents
  • Creating Functional Specifications or Feature Summary Document• Creating Functional Specifications or Feature Summary Document
  • Team Collaboration and Project Management Document
  • Technology Selection, Technical Specifications, Illustrative Diagram of Web Application Architecture and Structure, Development Methodology, Versions Control, Backups, Upgrades, Expansion and Growth Planning Document, Server Hardware / Software Selection
  • Third Party Vendors Analysis and Selection (Merchant Account and Payment Gateway, SSL Certificate, Managed Server / Collocated Server Provider, Fulfillment Centers, Website Visitor Analytics Software, Third Party Checkout Systems, etc.)
  • Application Visual Guide, Design Layout, Interface Design, Wire Framing
  • Database Structure Design and Web Application Development
  • Testing: Quality Assurance, Multiple Browser Compatibility, Security, Performance - Load and Stress Testing, Usability
  • Maintenance

Web Application Testing

Testing is an important part of the Web Application Development process. On occasion, testing would consume more manpower and time than development itself.

Below is some of the most common testing needed for any web application development process?

  • Quality Assurance and Bug Testing
  • Multiple Browser Compatibility
  • Application Security
  • Performance - Load and Stress Testing
  • Usability

Trends and Popularity

The demands for companies to build Web Applications are growing substantially

If planned and built correctly, web applications can:

  • Reach and service millions of consumers and businesses
  • Generate substantial, multi-layer / multi-category income from consumers, businesses and advertisers
  • Easily build business goodwill and assets based on audience reach, popularity, technology and potential growth
  • Performance - Load and Stress Testing
  • Usability

Below are good reasons for companies to build web applications:

  • Companies want to streamline their internal departments and functions, operations, sales and project management, etc.
  • Companies want to take advantage of a web based application's flexibility and versatility, by moving away from the traditional desktop application platform to the web application platform
  • Companies want to gain more clients or better service their current clients by offering convenient services and solutions online
  • Companies want to build new web applications to offer innovative services or solutions to online users and businesses

Business Impact

Today’s web applications have substantial business impact on the way companies and consumers do business such as:

  • There are opportunities to gain the upper hand and bypass the traditional brick and mortar companies when this type of opportunity was rarely possible or existed before the explosion of the web
  • The new web created a global business environment which challenges the way in which traditional companies do business
  • Companies need to reinvent and evolve in order to compete in today's trends, online business and global marketplace
  • Businesses and consumers have more options and resources to research and easily compare and shop around for the best deal
  • Information and resources are immense and available to everyone who seeks it
  • Businesses or companies who used to profit from consulting or advice, that can now be easily acquired online are struggling, and will need to take a new business direction if they want to stay solvent.

Watch out for sloppy programmers

It is important to know that not all programmers know how to write code properly . . . and not all programmers follow the same coding standards and guidelines.

Some inexperienced programmers will write sloppy and disorganized code without any consideration for future growth. This also makes it very difficult for other programmers to work on the project.

In most professions when the consumers’ health and rights are on the line, there are regulations in place and licenses required from a government agency to allow a person or company to conduct business. Unfortunately, in the programming world, anyone with some coding knowledge can start his/her development company or become an independent contractor without any required license.

In addition to sloppy coding practices, there are many off-shore web development companies and independent web developers who may not follow the same ethical standards that a US based business must legally follow.

An impressive degree doesn't always equate to quality programming skills.

If someone has a Masters degree, that does not mean he/she is a great programmer. Someone can be book smart but does not know how to code properly. I have seen programmers with Bachelors and Masters degrees in programming that cannot keep up with today’s new and complex programming world.

Look for clean, consistently written code.

Two programmers can accomplish the same result, one writing 10 lines of code and one only 3 lines of code.

An SQL Query can be written so poorly that after five concurrent database connections, the SQL server software or server’s CPU can come to a halt. A good database programmer can write an SQL Query that produces the same SQL result and the server can handle 100 concurrent database connections without any server issues.

It is true that there is always going to be a learning curve for one programmer to study and become familiar with another programmer’s code, but if the code is clean and consistent, comments are used and some basic coding guidelines and structure are in place, there shouldn’t be any issues for another experienced programmer to be able to jump in and edit and extend a well constructed and structured web application.

Does the development company follow coding standards and use a framework?

Web Application Frameworks are a organizational coding system which allows programmers and designers to easily work on the same project. This structured system utilizes reusable libraries, components and tools to promote better code maintainability and future growth.

For example, here at Comentum, we use a structured web application framework and set forth coding standards that every programmer on our team follows. This means that all of our programmers can easily understand and follow each other’s code. It is so seamless that a team member would not know which programmer has written a function, because we all follow the same coding guidelines and standards. Anytime we add a programmer, he/she can jump in and start editing or updating another programmer’s codes easily.

What are good questions that you should ask a prospective web development company?

  • Will I have the ownership of the final program code?
  • Can I take the final program code to another development company for future edits and expansion?
  • Does the code come with proper documentation to allow for migration and scalability?
  • Would there be a copyright issue, such as code that was copywritten by someone else?
  • Are there comments used in the code that would provide ease of migration and readability by another developer?
  • Are there coding guidelines and conventions in place? If yes, ask to see the coding guidelines and conventions documentation.
  • Do they utilize a structured and web application framework? If yes, ask for additional information on program libraries, tools and the type of framework used. Ask to see a sample of the project's folder structure with programming files in it. This should show how organized and useful their programming would be to other programmers. Make sure that the file structure matches a live project. You don't want to look at a fake file and folder structure.
  • Do they use MVC Architecture? This helps programmers and designers to work side by side on a project (designers do not need programming knowledge when using MVC architecture).
  • What type of quality assurance testing is in place and what methods are being used to do bug testing and fixing?
  • What type of security testing and methods are being used to find and fix vulnerabilities?
  • What type of stress testing and methods are being used to check the site's scalability and tolerance for large traffic growth?

The above questions are just a few important considerations when hiring a good development company.

Since many of these questions are very technical, it may be a good idea to hire an independent consultant to evaluate and ask these questions for you, and evaluate any answers and supporting documents provided by the developer.