Friday, 30 May 2008

Bespoke Software Development

Software development is the process of creating a bespoke software application to meet the requirements as set out by the domain expert in a requirements document.

A bespoke software project is tested against requirements analysis documentation and must therefore be detailed and measurable so that the software can be tested against it.

Requirements documentation will typically contain a list of requirements that can then be measured and ticked when completed. This is particularly important for contract based IT outsourcing. It is also important when designing software to identify all the stakeholders of the system, because a new software system can have a knock on effect on other systems.

The requirements specification stage is an important part of bespoke software solutions because it determines what is needed from the new ecommerce system.

A requirements analyst or custom application development team can obtain information from the domain expert by "prototyping" and "use cases".

A 'use case' analysis is used to identify the usage requirements and to identify the functional requirements of a bespoke software system. This will help to define the classes of actors (end user or hardware) and processes to put into a use case diagram. It is the foundation of most bespoke software development solutions.

The interaction between an actor and the system is viewed from the perspective of the actor so that the system itself remains a black box. Actors exist outside this black box but take part in the sequence of events with it in order to achive the result.

To gather the requirements of a new bespoke software solution, a use case analysis starts off by specifying the system's framework such as its actors (online shop customer) and processes (payment), classes of actors and processes (A Sale), and data used by them (product details).

Then the behaviour of the system from the perspective of the actor is described and grouped into classes but without going into the internal workings of the black box.

Once the classes or groups of actors and processes that are needed by the system are identified, the relationships between those classes then need to be identified and the interation between them. Each class (eg customer, product, payment) must have a task to complete that no other class in the system is responsible for so that there is no overlap. Sometimes one class can be related to a class many times such as a customer might buy many products from an ecommerce website. The one to many relationship between the website customer class and the product class need to be specified. Each class' attributes need to be identified, for example a product will have a name, a customer an address. Finally the components such as exception handling and process communication are identified for the overall problem domain.

Each use case is a complete series of events and a system can have many use cases. A UML Diagram can help to graphically model many use cases. Use cases are represented as ovals and the system is encapsulated in a box with the actors located outside it. Actors have no interaction but there are three types of relationships between use cases.

1) A use case can use another use case. The first use case depends on the outcome of the included use case identified by a dashed arrow from the including use case to the included use case with the label <>. For example a customer purchase in an online shop website includes the use case of validating the customer's purchase details.

2) Extending interation between use cases is when one use case extends another use case so that the behaviour of one use case is inserted in another use case such that one use case is a special case of another use case. This is represented with a dashed arrow from the extensible use case to the extended use case with the label <>. For example, the validation include use case of a customer purchase use case can be extended by an exception handling use case that performs error logging.

3) A generalisation relationship between use cases is when a use case is derived from a more generalised use case, identified with a hollow arrow from the specialised sub class use case to the more general use case. For example a customer purchase use case is a generalisation of taking payment from the customer and depositing payment to the online shop website owner.

Use case analysis is not well suited to non functional requirements which are not measurable and describe quality of systems such as the ease of use of the user interface Non functional requirements are determined by presenting the end user with prototype software so that the actor can get an idea of the look and feel of the system and provide the necessary feedback for example.

Saturday, 24 May 2008

Bespoke Software

Bespoke Software design often requires the scalability of the algorithms involved to be determined first on a conceptual finite state machine in order to be sure that the tasks can actually be done prior to the software coding. For example, to determine the maximum number of products on an ecommerce website page for a given amount of bandwidth. The big Oh notation describes how the size of the input affects these sorts of hardware requirements.

Bespoke software solutions can be categorised into complexity classes. The measure is done against a turing machine, which is an infinite tape divided into columns each containing a symbol from an alphabet. A head reads/writes symbols on the tape and can move left/right one column at a time and the state of the system is stored in the state register. A table of instructions is used so that given the state the machine is currently in, and the symbol it is reading on the tape, tells the machine to erase or write a symbol; move the head one step or assume the same state (or new state). A program can belong to one of a number of complexity classes.

  • A software solution whose run time is no greater than a polynomial function of the size of the input is of the P complexity class and is efficient and tractable. For example, a quicksort program to sort products sort on database by price is a polynomial time algorithm.
  • An exponential software solution is on the other hand is limited by hardware resources. The time taken to do a task increases as an exponent to the amount of information that needs to be handled. In search engine optimisation, the time it takes for a search engine web crawler to traverse a website increases exponentially for each subpage and subpage thereafter, which is a reason why it is generally bad practice to have directories many layers deep.

Internet Marketing with Froogle

Froogle is a separate index maintained by Google of ecommerce websites - specifically online shop websites. It allows the shopper to compare prices and to reach e commerce websites that would not otherwise be found. If you list your products in Froogle, it will need the following.

A product title is needed which is the same keyword that you would use on the product's web page. Froogle can also require the product's manufacturer and model number. This is important in order to make a more accurate price comparison. The product will also need a description which includes the use of your website's primary keywords. The description should be original and not copied off another website. You should also upload a photo of the product and include the price of the product.

The product details that you submit to froogle can be updated. However it may be quicker, especially if your site includes hundreds of different products, to include a Froogle Data Feed. The froogle data feed is similar to Google site maps xml feed except that the file is tab delimited in a spreadsheet format rather than in xml format. These data feeds then need to be updated monthly otherwise those pages will expire.

Froogle only supports the listing of products that are sold with a fixed price, although you may update the price as the product price changes during your periodic data feed submission.

The way in which froogle ranks product results pages are similar to the ranking methods employed in organic search engine optimization and therefore similar techniques can be used to get a froogle listing higher on the results pages. However, Froogle's search engine and Google's regular search engine remain separate applications and do not affect each other.

Search engine optimization & spam

There are a number of spammy practices that are not effective in search engine optimization and should therefore be avoided. This article lists some of the more common spam that fall into the category of black hat SEO.

Redirections:

Web pages that use redirects placed in the meta tag will have their rankings reduced but as yet will not be removed from search engine indexes. Although less easy to detect, a java script redirect is now able to be detected and search engines will remove your website if these redirects are found to be deceptive. However, it does not always involve the search engine spam detection algorithms to find this out and penalize your website, but rather a competitor's website will have the motivation to find and report any deceptive redirects that they find on your website. An exception to this is if you move your website to a new domain name. In this case, you will need to use a "301" redirect from links to your old site to point to their new respective locations. This allows the search engines to update those new locations with the page rank of the previous location. Such redirects may be left on for several months until the new domain is fully indexed, and this will not get your website penalized.

Link exchanges:

Free unrelated link exchanges are usually there solely to manipulate the search engines rather than to provide useful relevant links. It is very easy for a search engine to detect a website that engages in spammy link exchanges. A website that had previously ranked well on the search engines may get itself deleted from their index when they start falling for spammy link exchanges, especially if those link exchanges involve adult websites.

Invisible Text:

Stuffing your web pages with hidden keywords using either the same background and foreground color and/or using cascading style sheets to make the text appear outside the visible area of the screen, will get your website dropped from the search engines. In addition, linking to sites that engage in this practice could get your website devalued by association. If you have harmless java script that hides and unhides text for navigation bar purposes, then it might be a good idea to consider using cascading style sheet based navigation as a precaution against any misinterpretation on the part of spam detection software.

Purchasing Links:

As long as websites are not existing solely to sell links and manipulate search engine rankings, then it is an effective SEO technique to purchase links as long as those links are from websites that are relevant to yours. If you want to purchase several links, then you must make sure that those links are not from the same C Block IP address.

As Google has tightened its belt on many of the black hat SEO practices used in the past, some SEO firms have tried to compensate by employing aggressive SEO practices, such as purchasing many links or engaging in excessive link exchanges and paid inclusion directories. It is important to remember that search engine companies do not owe your website anything and therefore it is best practice to stay away from any tactic that could result in a spam flag placed upon your site.

Link Building

Link building Practices that can be considered good are as follows...

  • Submit your online shop website to reputable directories such as DMOZ and Yahoo directory. The former is free and the latter is paid for. Both are human edited and do not accept sites deemed to be of low standard.
  • Only link exchange with other website which are relevant to your website. Irrelevant link exchanges can be regarded as spam resulting in a lower rating of your website as a whole. You can also link to relevant pages without an exchange. It will not penalise your site or result in 'pagerank leakage' provided that the site that you link to is relevant and does not engage in black hat SEO.
  • Use links within the content of your site that make use of anchor text made up of keywords that you are trying to promote.

The following are practices which are best left avoided with regards to links...

  • When you have a link in the content of your page, avoid the use of images or the text "click here" to represent the link. This is because Google uses the anchor text found in links to help determine the keywords that are best associated with a particular webpage.
  • Keep away from any link farm or link exchange program run by websites that engage in spam or black hat SEO. And do not link to sites which are irrelevant to your website as this will confuse Google's keyword appraisal of your website.
  • Check your site for broken links and fix them as soon as possible. Google webmaster tools automatically warns you of broken links if your site is too large to check manually. There are also a large variety of free link check tools available to use.
  • Do not obfuscate any links on your site as, although difficult to detect, once found out will result in a penalty imposition upon your website. Link obfuscation is as serious as hidden text. This includes using a full stop or period to link to a page or a 1 pixel area image.
  • Do not sell links. As of 2007, the selling of links without nofollow is in breach of Google's webmaster guidelines unless your website is a reputable directory or where the advertising link is declared prominently as such. If you sell links whose purpose is to manipulate rankings then a competitor could report this to Google to ban your site.
  • Do not buy links from websites that exist only to sell links. This is to prevent website owners from buying many links in order to manipulate their rankings.
  • Do not insert keywords excessively. If you are worried that your use of your site's keywords may have been overzealous then there is a wide variety of free keyword density tools that give you the percentage of text used on your site that are keywords. Reduce the number of keywords used if it exceeds 30%.

Website Design Tips

There are many aspects of web design that all search engines take into account and which you should consider when designing a website. The established set of do's and don'ts are listed as follows.

The tasks that you should perform include the following...

  • Make sure that web host is reliable. Various third party software is available to check periodically for the uptime of your website. If your website is down for any length of time then that can affect your ecommerce website's rankings in Google and if the site is down for many week it may be dropped from the Google's index altogether. Also important is the need to check the dates that the hosting company that you use requires payment. The non payment of commercial web hosting services may result in the deletion of your website from their servers.
  • Make sure that the content used on your website is timely and relevant so that people are likely to use and link to your website. The content also needs to be updated periodically to maintain its timeliness and relevancy. Google automatically adjusts the frequency in which it crawls your website based on how often you update your website and the more frequently you update your website, the more frequently Google will spider your website. Each page should contain at least 300 words and should not be more than two or three pages in length. If the content is large then it would be more effective to split the content into separate shorter pages than to have all the content in one page. Smaller pages are faster to lead and easier to read, plus the longer it take for a webpage to load, the more visitors will clock back away from that webpage before it loads.
  • Keywords that each webpage represents should be found in the title, paragraphs, headings and anchor text where appropriate, and each page's title and meta data should not be duplicated. Duplicate meta data and titles will come up as a warning on webmaster tools.
  • If your site uses PDF documents, then those PDF documents must not be in any way proprietarily optimized or compressed because Google needs to be able to access the pdf document in a standard format if it is to be able to index to words in the document.
  • A resources or links page should be created that contains references to related websites that would be of use to your customers. However, such a page should contain content such as a description of each of the websites listed. A page that contains hundreds of links will be ignored by google as spam.
  • Javascript code should be exported to a separate external file in order to help reduce the time it takes to crawl the website and to reduce the time it takes to load a page. Similarly CSS styles should be exported to an external file. This also makes it much easier to change the look and feel of the website quickly by changing just the one CSS file rather than having to change multiple embedded CSS statements.

The following are a list of examples that you should avoid while performing website design

  • Avoid the use of page redirects which are often associated with dubious sites.
  • Do not use free servers which are usually blocked by the search engines due to abuse.
  • A keyword density above 30% will increase the chance that your site will be marked for spam. Therefore use keywords only where they are appropriate.
  • Do not stuff the webpage with keywords by using hidden text such as setting the position attribute of the text in CSS to be off the screen. Avoid using font colors that are very similar to the background color. Hidden text or text mistaken as hidden can easily result in the website in question being delisted from Google.
  • Avoid the use of frames and flash. Frames make it difficult for a search engine to accurately crawl your website. Flash simply does not provide search engines with the text needed to categorize your webpages.

Web hosting - Multiple Domain Names

If your ecommerce website contains different distinct subjects, then you may want to consider asking your web host about splitting your site into multiple domains where each domain deals with each specific area of your site. In cases where the site cannot be split, then the navigation and category structure should be organized to take that into account.

It is important, if you choose to split your site into multiple domains, to make sure that there is no duplication of content. Google is known to drop duplicate pages from its index. It may also be beneficial to use separate ecommerce hosting providers for each site so that Google will not mistake similar sites on the same server as an attempt at making duplicate sites. When you use a different web host to server your separate websites you should make sure that each web hosting provider uses a different class of C Block number. The class C block is the number shown on the third section of an IP address such as 123.456.789.012 where 789 is the C block. Separate web hosting companies should have a different Class C block value in their hosted webpage's IP address.

Some internet marketing companies may try to use multiple sites each small in size containing content that is either junk or duplicate in order to increase the number of inbound links to the parent ecommerce website. Since this technique has been abused by spammers, it is considered a 'black hat' SEO technique and is likely to get the associated website banned from Google's index.

A similar method is to use multiple domains each pointing to the parent site. Each of these multiple domains will be one of the website's primary keywords. Domain forwarding to redirect visitors from those pointer domains to the parent domain is considered a safe method. It is also useful to make sure that a competitor does not end up owning one of your primary keywords which you would want to be associated to your website.

The use of subdomains is also considered ethical practice. Subdomains are prefixed to the domain name of your site such that for the ecommerce webpage of b-1st.com, you may use the subdomain "ecommerce" to produce the full domain of "ecommerce.b-1st.com". Since search engines including Google treats subdomains as separate domains, it may work out more cost effective than purchasing whole separate domain names if your website targets a large number of keywords.

Sometimes it may be necessary to change a domain name such as would be the case if the name of the company changes or if you simply choose a bad domain name. An important factor to remember in this case is that Google will interpret a new domain name to be a new site and therefore you will need to use a 301 redirect (available through .htaccess files on unix servers) in order to maintain the validity of inbound links to your new domain name. The failure to do so will mean that all the inbound links from your old domain name will be lost and your website will eventually fall out of Google's index. You must have at least one incoming link in order to be included into Google's index at all.

Finally, avoid the use of Flash homepage animations which then redirect to the site's homepage. The use of Flash on homepages is considered bad practice both in terms of SEO and web design. In the context of SEO, a flash animation does not contain textual data and therefore does not provide Google with the opportunity to associate text to the most important page of your site - the homepage. Secondly, many users do not have flash software incorporated into their browsers and are therefore unable to see flash animations. In such an instance, a flash animation would frustrate a potential customer into leaving the site prematurely.

Ecommerce Website Stats

The site traffic is an important statistic to measure. If you are just interested in where your website appears on the search engine rankings for a given keyword without considering the visitors coming into your website as a result of those keyword rankings then you will be flying blind.

Most ecommerce hosting providers such as business 1st (www.b-1st.com) will offer webstats to their customers, usually at no extra charge. There are two types of website monitoring to choose from.

First, a log file analyzer such as "Urchin" which is paid or the free "AWStats" used by business first can be considered. These are installed on the server that is hosting your ecommerce website. If the referrer option is turned on then you will be able to see from which website the visitor had come from. Log file analysers process visitor statistics in batch rather than in real time which leads to the next option.

A real time browser based tracking such as "WebStat" can be used which involves inserting a javascript tracking code or image on each page of the site that is to be monitored. Each time a page is loaded then that code will be able to update the statistics of that page and thereby providing real time information. Real time statistics tend to be more expensive than log file analysers.

The important metrics to measure when monitoring your website are as follows.

1) Keywords that visitors have typed into search engines to find your site should be checked regularly. You may be able to find unexpected keyword combinations that people have used to find your site which you could then focus on. If most visitors are using keywords that you are trying to promote, then that is a measure of success of your internet marketing campaign. If most visitors are using keywords that you are not trying to promote then you have chosen the wrong keywords and need to modify your campaign accordingly.

2) The search engine that people use to find your site can be tracked. Google will be the top of the list but you may find users that make use of specialist search engines that you may not have considered previously.

3) Referrals are the tracking of the actual websites that brought traffic to your site. From this you will be able to see the amount of traffic that you get from websites that refer to your site. Sometimes people type in your address directly into the address bar and these visitors are registered as "no referral" or "direct" entries. A technique to determine which visitors are typing in your address into the address bar, and which visitors have bookmarked your site is to use an icon file with your site which is displayed in the bookmarks menu as an image. Favicons are also useful for branding your business. You will then be able to check your server logs for fetches to this icon file which indicates approximately how many people have bookmarked your site.

3)The number of page views can be used to determine the most popular pages of your site. You will then be able to focus more effort to the pages that are less popular.

4) Visitor path is the route your visitors take when navigating your site. This can be helpful to show what visitors are usually looking for when they enter your site and can help diagnose navigational deficiencies.

5) Exit pages are the pages that people are looking at before they leave your website. Usually this will be the shopping cart software on your ecommerce website after they have made a purchase, assuming that your site has high conversion rate.

6) The length of time people spend on your site and on individual pages can be used to check if people are actually reading what is on a page or if that page's content is deficient so that people do not spend time reading the content. A short length of session should be addressed by improving the content of your site.

The importance of monitoring your website is to increase the chance of visitors purchasing a product from your ecommerce website. If you spend all your time making sure your website ranks on the first page of goggle without considering the above metrics, then you may end up with a good ranking but low conversion ratio. Nevertheless, rankings are important because if a customer cannot find your site. If you use the services of an SEO company, they must provide you with regular reports on your keyword rankings. You may also want to manually check the pagerank of your site. Webstatistics software do not usually provide pagerank information although you can download the Google toolbar to view pagerank information or you can download the Alexa toolbar to view your Alexa rankings.

You can also use Google to check how many pages Google has indexed off your site. It is important to check that all the important pages of your site have been indexed and if not then address the issue by checking on whether or not the page contravenes Google's webmaster code of conduct or if there are no links that point to that page such that Google cannot crawl into that page.

Probably most importantly is the need to check who links to your site which you can check by typing in your site's url prefixed with the link operator. You should compare who links to your site and who links to your competitors' websites and address any shortfalls on your site.

Thursday, 22 May 2008

Ecommerce Website and ROI

The end objective of an ecommerce website internet marketing campaign is sales conversions. It is important to make sure that your return on investment (ROI) in sales conversions not only pays for the investment put in but also offers profit. The investment that you put in to an ecommerce website includes SEO consultancy fees, webpage development, hosting and the time spent creating your online shop website.

Evaluating sales conversions and return on investments is a difficult task as you need to know at what point a sale takes place. Correlating sales with visitor tracking and webpage monitoring is a time consuming process.

Internet marketing takes a few months for the effectiveness of search engine optimization to become apparent. Pay per click campaigns can however offer a more immediate measure since they do not require a long period of delay. To determine the effectiveness of your website marketing you need to track visitors individually from their entry to your website to their exit and the page on which they actioned a purchase (or any other action you want the visitor to take).

Directory Submissions

It is important to submit your site to good quality directories such as the Open Directory Project for online marketing. Search directories contain website listings that are ordered alphabetically and ordered by categories. Unlike organic search results, the websites that are placed into directories are put there by humans. It may help to point to the category on which your website is listed in these directories on your resources links pages because the websites in the same category as yours will also be of interest to visitors to your site.

Google's directory takes its data from the open directory project and then ranks them according to pagerank. The open directory project provides directory listings to many other directories aswell such as AOL, AltaVista and smaller specialist directores. It is staffed by volunteers and therefore very slow to respond to submissions, therefore it is important to add your site to ODP as soon as it is complete.

Google often uses what you have submitted to the open directory project in the snippet information on SERPS. If your website is location specific then it should be submitted to the geographic location.

Tuesday, 6 May 2008

Running a successful ecommerce website

Search engine optimization is helpful to get your website found - on search engines. This is only one part of running a successful e-commerce website. In order to convert visits to purchases, and to maintain a good business reputation, the online shop website owner has to work hard and creatively to develop the business and the products that it has to offer.

When choosing what products to sell you should consider whether or not you are interested in the product range yourself. If you are not interested then you should probably change the products that you have to offer. An online shop business will be more likely to succeed if its employees are interested in what they are selling. It is also easier to sell people what they want rather than to try to convince them that they want your product.

Also important is the supply and demand situation of the market. If the market is already oversupplied, then it is less easy to succeed. Saturated markets include mobile phone retailers and computer hardware stores.

You also need to be creative enough to offer new and original ideas that make people want to link to your website without you having to ask them to. Blogs are a good place to start.

Some niche businesses have little competition and these will typically rank well once other websites start to link to them. If your website is in a competitive field and your SEO company is effectively promoting your site then you should keep with the same company. Some SEO companies may also change a premium on more competitive key phrases.