White Papers
Professional Web Design - The Winning Edge!
Services  |  Case Studies  |  White Papers  |  Careers  |  Get a Quote  |  Fee Schedule
Index


The Power Of Open Source


Prior to the birth of the Internet, it was assumed that all software costs money, and it could not be altered or re-packaged in any way by the end user. After all, who would spend countless hours creating commercial grade software just to give it away for free, not to mention letting others modify and re-distribute it? Then, along came the Internet, and it enabled hundreds of thousands of programmers from around the world to come together in a single community to share their ideas. This created a concept, called "Open Source", in which programmers distributed their software along with its source code free of charge under a license called General Public License or GPL. The beauty of this concept is that other programmers can improve upon the original program and redistribute it without violating the terms of its license. One would ask, why would programmers do this? The answer is simple, recognition. Most programmers who are heavily involved in the Open Source community, are just that, programmers. They are not business people, but mostly academic types who derive personal satisfaction from their work being recognized and praised by others, rather than monetary compensation. Their contribution to the Open Source community is equivalent to that of doctors and scientists who publish research articles in trade journals.

Thus the birth of the Linux operating system, Apache web server, Qmail mail server, Proftpd FTP server, BIND DNS server, MySQL database server, and thousands more similar applications which are as good if not better than their commercially available counterparts. The only factor that distinguished this software from its commercial alternative, is that there was no single entity (we will call it "big brother") that offered support. Therefore to implement and support Open Source software, the end user needed to do independent research, and communicate with other members of the Open Source community. The largest and most obvious benefit of Open Source is that the software is absolutely free to those who know where to find it. Another is the freedom to modify the code for your own needs as you see fit without paying licensing fees, or getting anyone's permission. This allows you to upgrade and customize your own software as needed, without having to rely on and pay "big brother" to do it for you when and if they decide it's necessary. Generally, commercial software makers have a direct financial incentive to get users to upgrade, so you may also be forced to pay for upgrades that are truly not needed in order to continue receiving support for the product you purchased.

What type of Open Source applications are available, and where do you find more information on them? There is one simple answer, Google. Google, itself being run entirely on an Open Source software platform, has a wealth of articles and email communications from the Open Source community that probably addresses every bit of code ever written, as well as all known bugs that were ever found. The amazing thing is that you will most likely get an answer to any problem you are having with an Open Source product from Google faster than you would is you had a "big brother" product, and called their support line. For example, if you want to find an Open Source mail server, you would simply do a search in Google for "open source mail server". There is a staggering 12,000,000 results, so as you see paying for a commercial mail server would be a complete waste of company money. Now let's say you downloaded an open source program written in PHP, and you can't seem to get past an error that says, "Parse error: parse error, unexpected T_STRING", and you want to find out what is causing that output, you would simply do a search on Google for "Parse error: parse error, unexpected T_STRING". You will then see over 72,000 articles related to that particular error with many solutions. As another example, let's say you want to write your own program in PHP, but not sure what PHP's Regular Expression syntax is, you would do a search for "PHP regular expressions". A result would be over 500,000 articles, including manuals, examples and real code. The bottom line is, if what you are trying to do has ever been done by any of the hundreds of thousands of Open Source programmers, you will find it in Google, and if it hasn't you will most likely find out how close someone has gotten, and maybe even be the one to find the missing link. If you do not want to tackle the project, you would of course again turn to Google and search for "open source developers", and find over 9,000,000 results.

For maximum functionality, speed, reliability, and security, we highly recommend using the PHP scripting language with a MySQL database, hosted on a Linux platform for development of all back-end web applications (in case you are wondering, all of these are 100% Open Source). An Application written in PHP, typically requires 30%-50% less code and development effort than if it was written in any other language. PHP is also very easy to learn, it has the most free online documentation and support, and it is increasingly being deployed in large scale enterprise applications by companies like IBM (click here to see IBM's PHP efforts) and Oracle (click here to read Oracle's reasons for choosing PHP). With over 10 years of developing web applications for ourselves and thousands of clients from around the world, we have yet to come across a task which could not be handled using this platform.

For a sample of open source web applications, please go to AutoInstaller.com, and click on any of the program icons. To see a desktop open source application in action, click here to download the Firefox web browser.

^ Top

Building A Successful Web Application


The process to developing a successful web application is very much similar to building a house, car, or any other tangible product, as it employs the same basic principles. It involves three different phases, each one being equally important:

1) Engineering
2) Coding
3) Debugging

The Engineering Phase involves coming up with the concept and process of events (user or external input) which will lead to desired output. Just like an architect coming up with a design, and creating blueprints for a new construction project, a web application must start with a vision of what it is suppose to do, and how it should do it. The only difference is that in engineering a web application, the person doing the actual engineering does not necessarily have to be a programmer or even know how to code. A summary of the inner workings of a program can be laid out in any format, a diagram, itemized list, written overview, or any other way that can be effective in communicating the thoughts of the engineer to a programmer. Despite the apparent lack of formal structure, this phase can indeed be the most challenging, as it requires creative thinking.

The Coding Phase takes the software concept or blueprint created during the engineering phase, and transforms it into computer code which will run on a web server. This is also equivalent to a building contractor assembling all parts of a structure that the architect has rendered on paper. This phase can be very time consuming, and will most likely require a skilled programmer. During this phase, the programmer will not only create the code, but also test each segment for syntax errors to make sure it executes correctly, and performs all tasks as required in the engineering phase.

The Debugging Phase is all about testing, and fixing bugs. One of the biggest challenges to building any application is error handling, which is what the program does if it receives unintended input. This is where the Debugging Phase comes into play, as it thoroughly tests the application with many different types of input, and creates routines which return a correct response from the program for each type of error. Although most error handling is usually created in the Coding Phase, the worst types of errors are usually uncovered during debugging. The developer must have the foresight to predict every possible input, and create output which will make end users aware of their mistakes, and encourage correct input, as bad error handling can mean the difference between a sale being made, or a customer going elsewhere.

In summary, every web application needs equal effort to be made during all three development phases in order to maximize its effectiveness, and yield the highest return on investment.

^ Top

The Big Deal About Site Navigation


All you have to do is create an aesthetically pleasing navigation panel with links to get to other pages, and, as long as the links go to where they’re supposed to, that’s all there is to it, right? Wrong.

Many of our clients come to us after they have fallen victim to a poorly designed site navigation. They’ve come to realize, usually the HARD WAY, that what was once a pretty element of their site has come to prohibit their online business growth. Customers get lost, they get frustrated, and they leave. It doesn’t take an accountant to tally up a long list of zeros.

The structure of your navigation system is mission critical to your future business growth, and should be the primary focus of the design. Mind you, it doesn’t have to LOOK like the primary focus, but its function is one of the most critical aspects to the overall foundation of your website.

In addition to knowing the current business plans, take time to consider the long-range business goals. By sharing the long-term goals of the business, a good development team will incorporate “hooks” where the long range plans can eventually latch onto and take root without appearing to be ugly afterthoughts. Enough “ugly afterthoughts” will eventually equal one expensive redesign.

In addition to knowing the long-range business goals, we have discovered that businesses cannot always predict areas that will require expansion. A smart development team will analyze the general project requirements, and will build a foundation that can withstand growth spurts in unlikely places.

If you think you’re saving money by hiring an inexperienced web designer or graphic artist (or worse, the kid down the street who “knows something about computers”), chances are high that you are only saving “up-front money” and building only a stationary billboard. You could eventually be spending triple or even quadruple that amount when your business starts to flourish, or simply CAN’T flourish because of early navigation design limitations. This is generally the same time that you realize how much revenue you have lost.

When interviewing web developers for your project, be sure to ask the following questions:

  1. Will my site navigation incorporate room for growth?

    • If the development team does not inquire about growth plans within the first three interviews, then they are probably not as experienced as they seem.

  2. How can you help me if my business grows in areas that I hadn’t originally anticipated?

    • A good development team will anticipate growth if their existing client base has already experienced expansion. While we are not fortune tellers any more than you are, a good developer will understand the complexities of growth and will plan for it in the site’s foundation.

  3. How have you managed growth issues for your other clients?
    • Look for clear examples of growth issues that the development team has experienced. Listen to how they viewed the growth issue and how their strategy for tackling the problem solved not only the immediate issue, but also issues that might arise in the future.
^ Top

Getting the Most Out of Your Web Development Team


  1. Great development starts with careful planning. Know your business. Be prepared to answer business-related questions during the “information gathering” and development stages. Most of the business-related issues should be covered prior to development. However, it is not uncommon to discover a business detail or two that requires clarification during development, and so you must make yourself available to respond to these issues as they arise.

  2. Know what you want. From the perspective of YOUR customers, take a walk-through of the different features and pages that you would like to see on your site, and then jot down this information. Developers can’t possibly give you what you want without first knowing your project requirements. Be prepared to respond to the following questions during your interview with a web developer:

    • What is your business industry?

      • Are there other websites doing something similar to what you want to do? If so, clarify what is similar and be prepared to provide the web addresses of these sites.
      • Are there other sites whose style you want to borrow? If so, what aspect(s) of the style appeal to you? Have the web addresses handy for your development team to review.

    • What is unique about your business?

  3. Know what you are going to offer on your website. For example:

    • Products / Services

      • If products, are these tangible products that require shipping?
      • Will customers gain access to virtual products or member areas located within your site?
      • Will your visitors be required to provide general information about themselves? If so, what is this information?
      • Will you be accepting payments on your site?
      • Do you currently have a merchant account to process credit cards?

  4. Know your long-term business goals. Where is your company heading? What products or services do you intend to add in the future? What information might be important to display on your site in the future? We don’t expect you to be a fortune teller, but knowing your long term plans helps your development team plan WITH you, and can ultimately save you a lot of time and money when it’s time to update your site.

  5. Have a general business plan. If you are seeking assistance with your business plan, please contact our Business Planning Department.
^ Top
About Us | Domain Names | Web Hosting | Servers | Web Design | Make Money | Site Map | Home
© Copyright WEBMASTERS.COM. All Rights Reserved.