Category: "Web Sites"

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.

Web Site Performance - Do the Math

Most web companies have very high speed Internet connections. This may improve productivity for those that develop on remote, publicly accessible servers, but it can also prevent the development team from appreciating the impact of the design and front-end coding on the site performance for the majority of site visitors.

The easiest way to determine the estimated download time is to use YSlow. Take the number of bytes required to display an uncached page (or unprimed cache) and divide it by the estimated connection speeds. http://websiteoptimization.com is an excellent resource, because it calculates page load/display time for you, as well as illustrating all the page components. It may be affected by caching, so review the report carefully. You can use Google analytics (or any similar service) to see the connection speeds.

Low-tech methods include allowing employees to work from home. DSL is one of the very common access methods, and will show performance issues much better than cable or other very-high-speed paths.

The above link can also be used to understand the time required for the page load and display process.

Unwelcome Visitors

Pay particular attention to the site visitor IP addresses in the web stats.

Any IP address that has a significant amount of requests for unknown reasons should be suspect.

Use the link above, or its overseas equivalent to determine who the IP address belongs to. If you don’t think they should be using your site heavily, use an .htaccess file to block them. Be sure to block the entire block reported by the whois system.

Apache allow,deny directives allow you to block requests: http://httpd.apache.org/docs/2.2/howto/access.html

These requests will show up as Forbidden in the stats later, and should eventually stop, since they aren’t being served.

In addition - if you are seeing alot of unexplained requests, from unknown sources, you should check your server for unauthorized content.

Questions to Ask References for Web Development Companies

Check references for sites similar to the one you would like.

Key questions / topics:

  • Tell them about how much you are willing to spend to get an idea of what the site cost. If your budget is far below the site cost, it may not be a good match.
  • Was the work was done on time and within the budget?
  • Are any recurring fees? Hosting? Maintenance?
  • Issues with email, including spam?
  • Problem resolution - was the company helpful when difficulties arose or changes were requested.

javascript - Common applications

I consider javascript the language of last resort. The browser compatibility and security issues associated with it can make it the most complex part of a page. For this reason, I strive to deliver pages to the browser ready for display. This isn’t always possible.

javascript is a vital part of web development, and I use it alot, but carefully. The following list describes some of the most common uses of javascript:

  • Alert boxes (usually just debugging)
  • Confirm boxes - great for ‘Are you sure … ‘ processing
  • Detection of form inputs changed to ensure user doesn’t lose changes
  • Changing state of buttons and inputs to disabled/readonly and back again
  • Changing status displays, like colors or text on the page
  • Opening new windows (window.open), often used for help and … Easter Eggs :)
  • Timers (see post about Ladybug)
  • Google (and other) Map APIs - these are cool http://code.google.com/apis/maps/documentation/
  • Hiding content / menuing, using style.display="block/inline/none”
  • Client-side validation and assisting the user in correcting errors, must revalidate on on server-side
  • Page level validation - Ensuring that inputs are not only valid, but valid with respect to each other - for example if the status is ‘extended absence’, a return date must be specified. As mentioned about, server-side validation must also be performed.
  • RIAs (Rich Internet Applications) - Sophisticated interfaces. These are usually based off javascript libraries & kits like dojo. Fundamental javascript skills are vital to work with the toolkits.
  • Control of players - like Windows Media player and Flash
  • Browser-specific page adjustments that can’t be done on the server-side
  • Used to add things like Google analytics, support external data collection systems http://www.google.com/analytics/, also Google ads
  • Choosing different .CSS files - often used to assist visually impaired site visitors with text size or color choices
  • AJAX
  • Input interaction - For example, if one input is chosen, another may be presented or set to a specific value