Extending or Customizing a Live Site or Application

If your company site is based on a complex, open-source application, it’s live, and you don’t want to put a copy on a development server - create an alternate view or access path.

Any company that does or allows development live on their own site (easy to see with errors, browser incompatibility issues, layout problems, IE conditional tags which are displayed) risks their credibility, particulary if they are in the web business.

Create an alternate access path into the application and update the skins and modules as separate components accessible only through a development path until new code has been carefully reviewed for quality. Most powerful content management systems have some method to identify a site visitor entering through a different path. You can use a second domain name, a subdomain, a different URL or port. You may also need to modify the application very slightly.

The technical team (designers, developers and engineers/backend people) should build their code off-line and outside of the application, then integrate it. Complex applications have longer load times than simple pages, and it is very easy to make a mistake that ripples through the entire page.

It may be better to take the site down for major upgrades. Doing this after hours should avoid noticeable service outages.

Polished Directory Listings - Without Server-Side Code

Apache’s mod_autoindex allows you to present polished directory listings with very little effort.

Key points:

  • There are many options. Read the page carefully and test out the different options to find what you like best. HTMLTable is excellent.

  • ReadmeName and HeaderName are URIs, not filenames, and they are relative to document root. Their placement in the .conf file should relect that.
  • HeaderName can be used to reference related appication CSS files and images. This greatly reduces the maintenance cost of this system by tying it into the existing design. Use style tags in the HEADER.html file for any minor adjustments.
  • ReadmeName (the footer) is a good place for a copyright notice.
  • To support all the subdirectories under a directory, use a directory tag with a regular expression.
  • mod_auth can be used to limit access.
  • This approach is good for allowing read-only access to some elements of the filesystem that don’t require robust security.
  • Be sure to limit access through this method to only those files you wish to make accessible.

ADN - Application Delivery Network

Content Delivery Networks (CDNs) allow sites and applications to draw files from common servers. This allows far more efficient caching, reduces bandwidth and disk space requirements on both the server and client sides.

The next logical step are Application Delivery Networks (ADNs). These are hosted application services like WordPress’ blogs (http://wordpress.com/), Ning social network (http://www.ning.com/), Shopify ecommerce (http://www.shopify.com/), LivePerson live support (http://solutions.liveperson.com/index.asp), Kayako Support (http://www.kayako.com/solutions/hosted-support-desk/), News Letter or Paper Hosting (http://www.our-hometown.com/). The challenge is to develop an architecture that allows you to take advantage of the hosted services while integrating them seamlessly into a site.

Advantages

  • Security is the responsibility of the hosting company and application provider. They know the server and the application, they can prevent and recover from problems quickly and in all likelihood, without disrupting service.
  • Server administration is virtually eliminated. Application installation and maintenance is not necessary.
  • Reduction of support requirements.
  • Scalability is less of an issue. It is assumed that the application providers have the infrastructure to support busy sites if necessary
  • Distributing the applications to other companies increases the fault tolerance of the systme. If one application crashes, the others can still run.

  • A CDN can be used to deliver the design files, as well as a the home page or portal into the system. This also increases the fault tolerance of the system.

  • Engineering tends to be the most expensive part of site development. Purchasing the logic allows more money to be spent on sophisiticated design interfaces, or - amazing application integration.

  • Rapid deployment of extremely complex sites.

Disadvantages

  • Customization may be difficult, expensive, or impossible. This includes design and functionality. WYSIWYG.
  • A layer is added into the support path. The application provider must perform requested support, the site provider is dependent on them.
  • Induces recurring hosting costs, which may be significant.

Supporting Trends

  • The increased use of open source applications and toolkits is definitely making this vision more possible.
  • The skills of web professionals are increasing exponentially
  • Bandwidth is becoming a valuable commodity
  • Security has become extremely important, even for ’simple’ blogs
  • Cooperation within the open source community, across all boundaries
  • The ability to use CSS to control the pagelayout and design allows the application to deliver well-formed XHTML that can be presented as defined by CSS. This is the key to a successful integration. Furthermore, the CSS must be assembled in such a way that it is hierarchical and observes site, application, and possibly page specific requirements.

Opportunities

  • Architecture definitions
  • Multiskin/multitoolkit applications
  • Education
  • Innovative connections

Web Professionals and Staffing - Education Matters

The web industry has matured to a point where requiring a related AS or BS will not limit the qualified candidates significantly.

Web designers should have a graphic design or visual communication degree. Their responsibility is to use color, layout, and design to communicate. If they lack the technical skills for the web, there are tools to help them - such as Adobe’s Dreamweaver, or even services that will convert their designs into HTML. For a pure designer, the technical skills to deliver the site should be secondary to the ability to make a nice page.

Web developers should have an AS in web development or the equivalent certificate. In this text, a web developer is assumed to be the person that takes a design and converts it to CSS/XHTML. To do it well, education or experience with a well-trained individual is required. They need to be able to write limited amounts of javascript. They need to understand bandwidth and disk space. They should not rely on Dreamweaver or other GUI-based tools.

Back End engineers should have a CS degree. Whether they are developing custom applications or extending existing ones, the foundation knowledge offered in most CS programs is vital for the implementation of the requirements into cost-effective solution.

Server Admins must have a CS degree, and experience with the target platform. This is your last line of defense on the server from malicious people. It is also a place where you can make serious performance improvements.

Writers should have a degree in English, Marketing, or Communications. Don’t let the administrative assistant write the content unless they have a degree. The quality of the medium (in this case, the text) will affect its reception.

SEO probably doesn’t need any formal education. It is still such a new field that a well-read individual can do an adequate job, by researching independently. It is also possible that SEO is so difficult to actually perform that focussing on the site content is a more valuable investment than striving to make the content conform to the search engines.

There are definitely many excellent self-taught people in the industry, but they must constantly work to polish their skills. Newcomers into the field should have an educational background to enter the workforce ready to contribute and succeed.

How to Assess a Web Company

Web development companies are like any other service provider. Quality, price, and service varies. Unlike other service providers, you can really examine a web company’s work - both for themselves and for their clients.

If you are considering a web development company, visit their site, and look for the following:

  • Open the home page in every browser you have. How does it look? What browser do your site visitors usually use (check your stats)? Do any browsers throw errors (look in the lower left-hand corner of IE, watch for popups and other indicators from other browser.
  • Scan the page. Is the layout equivalent? Are the images displayed properly? Do the menus work? Is it ‘smooth‘, meaning the page reacts to your actions in a timely manner?
  • How long did the page take to load? Is it fast enough for most of your visitors? If you have alot of dialup site visitors, this is a serious issue.
  • Click through the site, assessing image quality at all levels. There is a delicate balance between image quality and image size. People can’t see size, but they will see a long image download. They can quickly identify a poor quality image.
  • Do secondary pages load quickly?
  • Watch for broken links or missing images.
  • Look at the quality of the content. Are there many mispellings or grammatical errors? If so, your site will be at risk for the same.
  • Think about the content from a marketing perspective. Does it make sense? These people will be defining your site. If they can’t market their company, how will they be able to sell your products? If they don’t do a good job on their own site, how will they perform on yours?
  • Are the company’s specialties in line with your interests? There is no sense hiring a company that specializes in design to build an ecommerce site. Be sure they have excellent ecommerce experience before continuing. This site has valuable information about credit card processing: https://www.pcisecuritystandards.org/
  • If there is a portfolio, are there links to the sites? If not, the sites are probably no longer run by that company. Go check the sites and look for a footer linking back. If they don’t link back, you may want to contact that company to ask who did the site, and to get feedback. Check how those sites run. Are any similar to what you’d like?
  • If you change the font size, does it change gracefully in the browser?
  • Use ‘View Source’ to look at the code. You don’t need any technical skill to do this. Is the code orderly, meaning reasonably easy to read? Indenting will probably be inconsistent, and that indicates that an application is probably in use. That’s a good sign. Are there any silly comments? Notes such as ‘check this later’?

  • If they have a blog, read a few posts. Is it mature? Professional? Relevant to your interests?
  • Try to assess the tone of the site. Are the focussed on their clients? Are they focussed on themselves? Are they out in left field? Are images of the company and office appropriate?
  • Are they hiring? Are they always hiring? That can indicate explosive growth or high turnover. What are the target qualifications for their positions? Is the bar set fairly high?
  • Go to LinkedIn and look at the people in the company. Are they people you would like to hire? Are their profiles and images professional? How many people are there? Is there a logical distribution of titles and positions? If not, the work may be outsourced, or the organization may be off kilter.

Before you contact them, be sure you can clearly state what you would like. What is the objective of your site? If you can’t answer that question, wait until you can.