Wednesday, November 17, 2010

Are landing pages really more valuable than home pages?

According to Joshua Porter in his blog, Performable, the landing page is definitely more valuable than the home page, and by valuable you can infer you get more conversions from a landing page than from a home page. So many of the articles that discuss the ROI on landing pages versus the home page tell you how to increase the ROI (i.e., have more conversions) but not necessarily why this is the case.

  1. Landing pages and forms are actual interaction points-the home page is a one-way communication point, you communicate with the user; a landing page and/or form is two-way, the user can communicate back to you. If you "listen" to the conversation you will be better informed on what your customers need/what and therefore can provide it.
  2. Landing pages contain the information a customer needs to make the decision to do business with you, no matter what business you are in.
  3. Landing pages contain very specific information for a very specific audience. The landing page provides the information necessary to close the deal after the customer has shown interest.
  4. Home pages are a catch-all. The home page is the funnel that catches all incoming user traffic whether it is a new visitor, returning visitor, family and friends, and so forth. The home page has to be designed to appeal to all visitors and not be too specific to any one type of user. Home pages have to handle everything which is a totally different purpose than that of a landing page.
  5. Home pages are often "political", meaning every department/unit of the business wants a significant piece of the home page. The thinking here is that because the home page gets the most traffic it must be the most important page of the web site. This is not true (re-read #1-#3 above). This leads to wasting time and money on the design of the home page when it offers little to no return on the investment.
Please do not misunderstand, the home page is an important part of the overall web site and therefore, time, money and energy has to be devoted to it. The home page should guide the visitor to other pages within the site, i.e., a landing page. But because the landing page serves to close the deal (i.e., conversion) where the home page does not, it makes sense to focus a majority of your design efforts here because you want to be profitable, no matter what business you are in.

Saturday, November 13, 2010

J Cornelius

J Cornelius with CoffeeCup software was a guest speaker in our MIST 7540 class. J has been involved in software development for many years. He has a wide and varied background in both the business and technical sides of web development. He also is the organizer of the Atlanta Web Design Group (AWDG). He continues to be very active in the AWDG.

The one take away for me from what J talked about is to follow where my imagination takes me. J challenged my MIT class to continue to be innovative and imaginative with regard to web development. There is so still so much to be discovered about what the web can do and do for users. J wants us to "think outside the box". We should go about web development without thinking about the "what ifs", but just do it.

J is an example of the term, walking the talk. CoffeeCup began in the middle 1990s as a coffee house where some of the employees did a little web design and development on the side. As the web grew and matured, their web work quickly became more profitable than the coffee house. J and the other employees of CoffeeCup have developed innovative user friendly software to help anyone develop "cool websites" and they continue to be innovative (think outside the box). An example of this is S-Drive which is currently in beta testing. S-Drive will allow a user with one click of a button to put a website online. As development continues on S-Drive, according to J, there will be more "cool" features such as file sharing. Continuing to think outside the box is the "cool" thing.

Thursday, November 4, 2010

A conversation with Luke Wroblewski

Actually, I listened to a podcast of a conversation between Luke W. and Jared Spool. Luke was previously employed with Yahoo but now owns his own company, Ideation and Design. While he was at Yahoo, he was instrumental in creating many innovative web functions and applications, most notably LiveSearch back in 2005. But Yahoo chose not to put LiveSearch on Yahoo because of the server load implications. LiveSearch doesn't wait for the user to complete the search term and click Go before beginning the search, it actively searches based on what the user is typing, a search as you go. When Yahoo developed LiveSearch in 2005, servers and programming languages weren't as robust as they are now and server hits and loads were a big issue. Luke and Jared brought up LiveSearch because Google just announced a similar product, Google Instant. Since Luke developed LiveSearch in 2005, he feels Google is tardy to the party with regard to active searching. However, user expectations are much higher now than in 2005 and we expect to have our search results immediately. So maybe Google isn't tardy but just fashionably late.

As the podcast continued Luke stated several times that just because you can develop and deploy a new design doesn't mean you have to. As a web designer you have to be very careful in choosing when to use cutting edge techniques, both for the client paying you to design and for the end user. An example of cutting edge technology on the web is dynamic web forms, basically building a form that uses JavaScript to "do something" based on what the user does with the form. Think radio buttons that determine what data to return or spell checking on a text field or retrieving data from a data base. You have to be choosy on where you put these interactive forms because you want the most bang for your buck.

Another consideration, especially with dynamic forms is what to do about older browsers that do not support such technology. Per Luke, don't worry about the older browsers just concentrate on the newer ones. I'm not sure I totally agree with this. You have to carefully determine your target audience demographics, including browsers, and then decide if you can basically ignore a large segment of the web population. In my opinion, only after this careful evaluation can you consider targeting only newer browsers.

Lastly, Luke and Jared discussed Apple Ping stating it is an example of a poor user experience. They said Apple usually gets it right with regard to a great user experience but not this time. Both feel that Ping is beyond help and should be quietly withdrawn, reworked and redeployed so that it provides the user experience we all expect from an Apple product.

Web Usability

Web usability, in its simplest terms is the ability to use the web. Jakob Nielsen, ("the guru of web usability"), defines usability as "a quality attribute that assesses how easy user interfaces are to use. The word usability also refers to methods for improving ease-of-use during the design process". We all probably can agree that when using a web site or the internet in general, we want what we want when we want it and we don't want to have to search for what we want. Or at least this is my opinion. But the real work begins when we try to design a web site to meet the needs of a wide range of web users.

In the 6/10/09 of webdesgnerdepot.com 10 tips to create a more usable web was discussed. These 10 tips are a mix of common sense ideas and tricks learned from years of designing web sites and all can be implemented without much difficulty. Some of the tips I agree with, some not so much but it won't hurt to implement them and see what happens.

  1. Create active navigation--be sure to always let the user know where s/he is on the site. For example, highlighting the section name in the navigation bar.
  2. Create clickable labels and buttons--by clicking on the field label or button the field (form element) is highlighted which, in theory, makes it easier for the user.
  3. Link the logo back to the home page--making the logo take the user back to the home page is preferable to having a "Home" tab. The logo is almost always at the top of the page and easy to see, rather than having the user search for a tab which can be anywhere. An added benefit is you can link the logo to your web analytics and use it as a click tracker.
  4. Increase the "hit" area on a link--do this by adding padding around links to make the clickable area larger to prevent misclicks. This is especially helpful with mobile sites when the area for the user is already small.
  5. Add focus to form fields--this is very similar to #2 but rather than clicking a button or label to highlight the field, the field is highlighted to alert the user that something is required of them, or that something just happened.
  6. Provide useful 404 page information--does the user really care why a page is unavailable, not really. She does care that the page can't be found but she also needs to know what to do about it, i.e., a link to another page or a search box, something to help her get to where she wants to go.
  7. Use copy text and verbiage to create a casual, inviting environment--basically don't use geek speak, write like you are speaking with a friend.
  8. Use line height adjustments to increase readability--make the copy look more like a book or newspaper, don't compact the lines together.
  9. Use white space--or the reverse of this is don't use too much white space. Be careful to space headings and paragraphs together so the user doesn't have to search or guess where to do next.
  10. Be accessible--no matter how hard you try to design a user friendly, usable web site, users will have questions or problems will come up so provide a place for the user to contact you and be sure to respond to the questions or complaints. Remember customer service matters.
It is the little things that often separate a good web site from a great web site. Try some or all of these tips and come up with some of your own. The fun comes in designing a site and having people enjoy and use your designs.

Monday, September 27, 2010

Web Typography

Web typography, the use of fonts on the web. Sounds simple enough. You design your web site, choose a font, and write the HTML & CSS code for your site and it looks good. However, it is not this easy. To be able to use a font in a browser, the font has to be available to browser, either native to the browser or be imported from another site. This is where it can get tricky. CSS has a @font-face tag and a URL link to the fonts you can use to pull in fonts to be used. Sounds like a plan that will work. But as Lee Corso says, "not so fast my friend".

First, to use a font on the web it has to be licensed to be used on the web, and not too many fonts are licensed for web use. If you use a font you purchased that is not licensed for the web you may be violating your end user licensing agreement with the font foundry (this is no small consequence). Second, not all browsers support the @font-face tag for all types of fonts. I don't really understand why the decision would be made to deploy a browser with less functionality (or stated another way, a competitive advantage) than a competitor's browser but there is a major player that did just that.

Why, you might wonder, is this lack of consistency even a factor to be considered? It occurs because there are no established standards regarding the licensing of fonts to be used on the web. The font foundries are close to having a set of standards that will protect their interests while allowing web designers to use fonts that are licensed for the web. Also, the W3C is working on a web font standard.

Don't despair, there is a solution to this problem, a middleman. This middleman is really a company that does all the heavy lifting with regard to negotiating the licensing agreements and technological issues for fonts. You pay a monthly fee to the company that pays for covering the license for the font as well as hosting the fonts. The good news is these fonts will work on any browser. The bad news is that not all fonts are available even to these middleman companies. But it is a start and for that we are grateful.

Thursday, September 9, 2010

Why Use Web Standards?

Do you want your web site to look good and work well with all browsers? Of course you do. Then web standards are important to you. Back in the olden days, well the late 1990s when the web was in its toddlerhood, most every browser used a different proprietary web format. This was not a great practice but it was not frowned upon because everyone was just learning about the Internet and individuality and independence was the norm. However, as more and more people began using the web it created the need for more and more web developers. Likewise, new browsers were developed, some merged, and some disappeared all together. All these changes created a sort of rat’s nest of web formats.

Multiple web formats makes web development complicated which always increases the costs associated with the initial development because multiple versions of the same site must be developed. However, the increase in costs is not limited to the initial development because over the life time of the site multiple formats must also be supported and maintained. You might think this is crazy talk and to control costs you can support one or two web formats, but do you choose which ones to support and which ones to ignore. I don’t know if you realize this, but by choosing to ignore certain formats you are by default choosing to ignore the web users whose browser is using that format. Can you afford to ignore potential customers or users? I didn’t think so.

There is an easy way to avoid having to choose what web formats to support or not support, and it is a simple decision, use the standard web format put form by the Web Standards Project. The web standards that were developed (and continue to be developed) in the WaSP ensures going forward that by using these coding standards a web site will work with any web browser. You won’t have to make the choice of what to support or not support. You put lots of time, energy, and money into coding your web site and you want it to be attractive and user friendly and available to everyone. By using these web standards when you code you won’t have to worry about browsers, you just have to worry about almost everything else.

Wednesday, September 1, 2010

The Art (?) of Information Architecture



Information Architecture (the short definition) is: analyzing, organizing, and structuring information on websites so the average user can easily find what s/he is looking for. A simple enough idea but is it simple (read easy) to do?

The Information Architect (IA, for short) has to strike a balance between what the owner of the web site wants (requirements), the content of the site (what to keep from an existing site and what to replace), and what the user wants and/or needs. It is like someone juggling, too much of one will impact the others, it may be in a good way or maybe not so good. This is where the "Art" (the skill and creativity needed for an endeavor) part of IA comes into the mix.

A fairly common thing to find when dissecting a web site is the design of an organization's web site mimics the organizational structure of the entity. This usually happens because the Information Architect follows the existing flow or structure of the organization. However, does the site user know (or care) that the Company's financial information is gathered and managed unders the direction of the VP of Customer Service and will be located under the Customer Service tab on the web site because this is the way the reporting structure is organized? I doubt the user will care, all she wants to do is land on the web site home page and with one or two mouse clicks find what she is looking for. Here the "Art" is being used to balance the company needs with the user needs.
Thinking about our user in the above paragraph, what does the Information Architect have to do to make the user experience a good one so hopefully, she will return again and again to our web site? The IA has to be able to figure out how the end user thinks and then use this information to structure the web site so that it is intuitive for the user to move around and through the site.
Try using these 8 steps the next time you are asked to build an Information Architecture.
  1. Understand the web site (system) requirements
  2. Talk to the end users of the existing site, or if there is no existing site, conduct interviews of potential and/or targeted users
  3. Develop a draft architecture and get client feedback on the proposed architecture.
  4. Understand that this is an iterative process, you won't get it right the first time around
  5. Eventhough this won't be the final architecture design, document, document and document some more
  6. Develop persona(s) and define what tasks these persona(s) will do when using the site (storyboarding)
  7. Have the project team review the storyboards
  8. Create detailed page layouts to support the storyboards (this also provides valuable information for the web designers and developers
Bottom line, effective information architecture should provide the means for users to quickly and easily find what they are looking for on a web site.

Thursday, August 26, 2010

From Good to Great Web Writing

Writing for the web is not like writing for most any other media because a web user is unique. This fact creates challenges when creating and/or editing the copy for a web site. A balance between not enough and too much information must be found and maintained so that the site above all else meets the goal(s) of the client and is creative and inviting to the site visitor.

Web readers don’t read web copy line for line, the majority of these readers scan the copy looking for the “highlights” of the page or for something interesting to catch their eye. Printed material has a definite beginning, middle and end, however, a web site can have many entry and exit points which makes it essential that the writing be precise and concise without being repetitive. A good web writing must be: useful-- gives the user the information she wants and needs; usable—has descriptive headings, clear navigation cues, and is concise; engaging—the site is personable and not just a marketing brochure; and findable—the web user has to be able to find what she is looking for on the web site.

Great web writing takes dedication, creativity, organization, intelligence, a sense of humor, and a thick skin. There are a few (10 to be exact) tips to produce good web copy according to Erin Anderson, in Interact With Web Standards:

1. Love the inverted pyramid—start with the ending (conclusion) and work
work backwards

2. Believe less is more (most of the time)—don’t overwrite or use unnecessary
words

3. Avoid sounding like an infomercial—write to inform not to impress, speak
plainly but be specific, limit the use of bold or italicized copy

4. Make your copy easy to scan--paragraphs should be 60 words or less, headlines should be eight words or less, page length is dependent onthe content of the site (just be aware that size does matter), and headings should be placed strategically to guide the user through the pages

5. Write killer headings—help the reader to scan the page to find what she is
looking for

6. Lead with active words—helps to keep it simple and concise

7. Use simple sentences--avoid semicolons, too many commas, and be stingy with the adjectives and adverbs

8. Keep your promises—don’t reference a site with a link that doesn’t work, and
make sure the links and labels match the page content

9. Set up a review process—have someone else review your work

10. Steal (borrow?) from good websites--review the web sites you visit and keep a list of what works and what doesn't work

And don’t forget, a great web site is never finished. The content should be reviewed on a regular schedule to be sure it continues to be relevant, timely, accurate, and accomplishes the client’s goal(s).

Monday, April 26, 2010

Information Technology Infrastructure Library (ITIL)


Overview of ITIL

Information Technology Infrastructure Library (ITIL) is a set of standard practices for managing IT services, development, and operations. The United Kingdom’s Central Computer and Telecommunications Agency (CCTA) developed the standards, or set of recommendations, in the 1980s. These standards are published in “books”, the initial set of books numbered over 30 volumes. Because of the massive amount of information, the CCTA consolidated the 30 volumes into 8 books in 2000 for version 2 of the library. In 2009, the Office of Government Commerce (a successor of the CCTA) announced that second version of the ITIL would be withdrawn and as of early 2010 version 3 with 5 volumes is available. Version 2 has nine books in the ITIL, the ninth book is ITIL Small-Scale Implementation that has additional guidelines for smaller IT units.



The original eight books in version 2 of the ITIL are:

1. Service Support - focuses on the user of the IT services to provide the information and services the user needs to support business services

2. Service Delivery - focuses on the services needed to provide support to the business users. Included in this book is service level management, capacity management, continuity management, availability management, and financial management.

3. Security Management - focuses on protecting the confidentiality, integrity, and availability of the information assets.

4. ICT Infrastructure Management - (ICT is an acronym for Information and Communication Management) focuses on the best practices for requirements analysis, planning, design, deployment and ongoing operations management.

5. ICT Technical Support - focuses on providing support to the other processes, i.e., research and development, marketing, and the creation of documentation

6. The Business Perspective - is a collection of best practices to address the issues encountered in providing high quality IT management

7. Application Management - focuses on best practices to improve the overall quality of IT software development and support

8. Software Asset Management - includes best practices for maintaining software license compliance, tracking inventory and software asset use, maintaining policies and procedures for defining, deploying, configuring, using and retiring the software assets.



ITIL Service Desk

The ITIL Service Desk is a component of the Service Support book of the Information Technology Infrastructure Library (ITIL). The Service Desk is the single point of contact or entry for an end user that needs help with an issue. The goal of the Service Desk is to help restore normal business operations with little or no business impact to the Customer within the stated response time frames and priorities. To accomplish this goal an ITIL Service Desk performs at a minimum the following activities: Receive all calls and emails on incidents/problems, Incident recording, Incident classification, Incident prioritization, Incident escalation, Update the Customer and other parties on progress, Provide communication for other ITIL activities such as release notifications and change schedules, Reporting on Service Desk performance.

The ITIL Service Desk is the process used to combine the best practices detailed in two ITIL books, Service Support and Service Delivery, and has two main functions, incident control/management and communication. These functions can be further defined into the following sub-functions:

Service Support

Incident management

Problem management

Configuration management

Release management

Change management

Service Delivery

Availability management

Capacity management

IT Service Continuity management

Financial management

Service Level management


The Service Desk is the mechanism the Customer uses to record an incident or problem. It is also used as the communication portal for monitoring the activities and processes associated with the sub-functions listed above. The sub-functions are described in more detail below.

Service Support

Incident management aims to restore normal business operations with little or no impact to the Customer by providing a process to record, track, and review an incident. According to the ITIL documentation there is a difference between an incident and a problem. An incident is defined as any event that deviates from the standard operation of the process and causes or has the potential to cause a disruption in the Customer’s service. A problem is an unknown underlying cause of one or more incidents.

Problem management aims to determine and resolve the root cause of incidents and problems and to minimize the adverse impact to the Customer’s business. Also part of problem management is the error control process and the problem control process. The error control process, through an iterative process, diagnoses known errors until they are eliminated by successfully implementing a change using the Change management process. The problem control process has four defined activities: identification of the root cause of reported incidents, problem identification and recording, problem classification, and problem investigation and diagnosis.

Configuration management is the process responsible for maintaining information about configuration items required to deliver an IT Service, enabling control of the infrastructure by monitoring and maintaining information on all the resources needed to deliver services. At a minimum this includes planning, control, status monitoring, verification and audit.

Release management focuses on the protection of the production environment and its services through the use of formal methodologies and procedures. A release is defined as a collection of hardware, software, documentation, processes or other components required to implement one or more approved changes to IT Services. The goals of release management include: planning the rollout of the software or hardware, designing and implementing procedures for the distribution and installation of the release, communicating to and managing the expectations of the Customer during the release, and controlling the distribution and installation of the release into the IT systems.

Change management is the process of using standardized methodologies and procedures to reduce the risk of any changes to the software or hardware adversely impacting the Customer. A change is defined as the addition, modification or removal of anything that could have an effect on IT services. The main goals of change management are to minimize disruption to service, reduce the need for back-out activities, and efficient utilization of resources involved in the change.

Service Delivery

Availability management responsible for ensuring that all IT infrastructure, processes, tools, roles etc are appropriate for the agreed service level targets for availability. The components of availability management include: reliability, maintainability, serviceability, resilience and security.

Capacity management is responsible for ensuring that the capacity of IT services infrastructure is able to deliver agreed service level targets in a cost effective and timely manner. Capacity Management considers all resources required to deliver the service, and plans for short, medium and long-term business requirements.

IT service continuity management is the recovery of the IT infrastructure used to delivery the services. This includes plans are defined and put into action that ensure that the services can recover and continue in operation should a serious incident or problem occur.

Financial management is making sure that the IT infrastructure is purchased at the most effective cost. This includes calculating the costs of running and maintaining the IT processes so that the company understands the true costs of the IT systems. This also helps the company in setting prices for services provided to the Customer.

Service level management is perhaps the most important piece of the Service Desk process. This is what the Customer uses to be sure they are getting the service they are paying for. A service level is a measured and reported achievement against one or more service level targets. Service level management involves the use of metrics compared against a benchmark.

Diagram of an ITIL Service Desk process

Profile of an ITIL Consulting Company

Enterprise Consulting Services (ECS) is a “boutique consulting firm specializing in IT service management consulting, implementation and outsourcing using the ITIL framework”. The target audience for their services is CEOs, CFOs, and CIOs with a “charter to improve service and reduce the total cost of the technology support infrastructure. The services offered by ECS include IT Service Management, IT Asset Life Cycle Management and IT Security Management across the “IT value chain”. The ECS services overview sheet details how their consulting services will do to help a client’s overall IT processes. They also include a diagram of what a Service Desk Design should look like but their documentation is very quick to point out that their services and solutions are vendor neutral. However, the documentation points out that ECS has worked with many different providers, including Microsoft, Dell, HP, Altiris, and Courion.

The listing of clients on the company website is quite diverse. It includes Bausch & Lomb, EnergyEast (a utility company), Wegmans, Constellation Brands, Ontario County e-Government, Citi, TRW, Sungard , and SMU. Of particular interest to me was the implementation of an ITIL initiative for EnergyEast. EnergyEast is an electric and gas distribution company that serves 3 million customers in five states in the Northeast US. ECS integrated incident management, asset request management and security identity management into the company’s infrastructure. Included in this was a redesign of the existing incident, request and monitoring processes using the ITIL frameworks, along with the implementation of a self service “Smart Form” that provided one stop shopping for end user incident management.




ITIL Software Tool

SysAid Technologies has a Service Desk product call SysAid. This product is offered as a Software as a Service (SaaS). The product incorporates the best practices as details in the ITIL documentation. SysAid has two versions, one has what are deemed as core modules and the full version that includes an ITIL Problem Management module, an ITIL Change Management module, and an ITIL Configuration Management Database module in addition to the core modules.

This is a web based product that uses a 3 tiered architecture configuration (an end user view, an application layer, and a database layer).

The core modules included in their Service Desk product are:

Helpdesk - has all the core functionality for incident tracking for an ITIL Service Desk product

End-User Portal - easy submission of incidents and requests, includes a FAQ database for users to use in resolving their own technical issues

Knowledgebase - database for storing resolutions for the most common service requests

Asset Management - houses all hardware and software changes, and can interface with external purchasing systems

Remote Control - IT personnel can gain control over remote computers

Reports & Analysis - includes pre-defined reports along with the ability to create reports "on the fly"

SysAid Chat - an instant message service for anyone logged into SysAid

IT Benchmark - monitors metrics against defined benchmarks


The additional modules that can be added to SysAid are:

Tasks and Projects - a project management tracking tool

Advanced Monitoring - provides additional network monitoring

Manager Dashboard - provides a real time snapshot of the overall Service Desk system, also has the ability to drill down for additional information

ITIL Problem Management - tracks and manages root problem causes

ITIL Change Management - track, monitor and report on all past and current change activity, schedule and monitor progress for all future changes

ITIL Configuration Management Database - helps the user to track elements in the IT network




Sunday, April 18, 2010

Software Design Patterns

Software Design is easy enough to understand but what the heck is a pattern when thinking about software design. Is it repetition, a template, a basic design paradigm, just what the heck is it. It turns out that a software design pattern is all of the above and more.

Christopher Alexander has been credited with being the first to use the term “design patterns”. He first used the term in 1964 to describe architectural patterns, a solution to a commonly occurring architectural problem. He saw the same problems appearing over and over in different architectural projects, i.e., how many windows does a room need, and the same solutions being used for these problems, i.e., the number of windows needed depends on the function of the room (context), the desires of the customer, and the buildings products available. Alexander further stated that “a pattern described a problem that occurs over and over again and the core solution to that problem is such a way that you can use the solution a million times over without doing it the same way twice”.

As Christopher Alexander continued his examination of design patterns he coined the term “pattern language” which is simply a collection of design patterns that relate to a particular field. More precisely, pattern language is a structured method of describing good design practices within a field of expertise. This is what is referred to in today’s software environment as “best practices”. Emulating good design decisions while steering away from bad design decisions (anti-patterns).
According to Alexander every pattern we define must be formulated in the form of a rule, which establishes a relationship between a context, a system of forces that arises in that context and a configuration that allows these forces to resolve themselves in that context.

Pattern language as applied to software was further defined by what is known as the “Gang of Four”, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. They wrote a book, Design Patterns: Elements of Reusable Object-Oriented Software. In this book, published in the mid 1990’s the Gang of Four used the premises put forth by Christopher Alexander to describe reusable solutions to commonly recurring problems in software design. Reusing design patterns helps prevent issues that cause major problems (using best practices or learning from other’s mistakes).

This all sounds interesting but how does this apply to software design. I think it all boils down to this, you don’t have to reinvent the wheel! In today’s world, software design patterns are most often applied at the architectural level and one of the most often used patterns is the Model-View-Controller (MVC) pattern. However, there are many more design patterns relevant to software design. I personally like the three-tier architecture, a client-server architecture with distinct processes for the presentation, the application processing, and the data management.

The three-tier architecture has three distinct layers or tiers that are independent of each other but are connected by defined interfaces. This design allows for the tiers to be upgraded or replaced independently of the others as the need may arise, such as a change in requirements or technology.

The presentation tier is at the top. This tier displays (presents) the information to the user. Typically, this involves HTML pages and JSPs. This is what the user sees and interacts with. The application tier (Logic tier in the diagram below) controls the flow of the software application. This tier is sometimes referred to as the business rules tier because it is here that the business rules are implemented. The application tier controls the flow of data between the presentation tier and the data tier. The third tier is the data management tier. This is where the databases are found, where the data is stored and retrieved.

A diagram of the Three Tier Design Pattern.





There is a definite difference between the MCV design pattern and the Three Tier Architecture design pattern. In the Three Tier architecture design pattern the client tier does not communicate directly with the data tier, all communication must pass through the application tier. In contrast, in the Model View Controller design pattern, each object communicates with the other objects, which means less independence and modularity.







Sunday, February 7, 2010

SQL Server Modeling Services (FKA-Oslo)

The first anyone heard of a Microsoft product with code name “Oslo” was around October 2007. The first time the public saw Oslo was at the Microsoft Professional Developers Conference in October 2008 and it was described as:

1. A new programming language to help architects and developers describe

models

2. A visual modeling tool

3. A repository for storing different models in a database


Oslo was originally designed to be an add-on to Microsoft’s Visual Studio software, and it included Quadrant, an interface tool, and was written in a modeling language, M, and Microsoft hoped to be able to ship Oslo sometime in late 2009. Deployment of this product has not happened yet.


In the year following the initial release of information on Oslo, more information came to light regarding this new modeling software product. It was touted as a product to simplify development of applications because it would be a repository in an SQL database of models and related metadata that would allow everyone in an organization to look at models “holistically with database tools like Microsoft Access, Excel or SQL server reporting services”.


The programming language, M, is designed for the .NET platform. This language is described as a declarative language, but I’m not sure exactly what this is. Another interesting fact about M is that it is an open source language. I think this is interesting because I didn’t think Microsoft would ever give anything away for free, which is essentially what open source programming languages are. Microsoft initially was solely responsible for developing the M language with review by the M Specification Community (an online discussion group), but now Microsoft is using the contributions from this group in the specs for the M language. Again, an interesting concept for Microsoft.


During the development of Oslo it has evolved from the initial vision for the product. Most notably the code name “Oslo” is no longer used, this software is now called SQL Server Modeling Services and it still uses Quadrant and M language. However, it is no longer an add-on to Visual Studio but will now ship out in a future release of SQL Server. Microsoft has not said when this will occur. Again, I find this unusual because Microsoft will rush to send products to market and the fact that SQL Server Modeling Services has not been released yet is not a typical Microsoft action. Also, now this software is using UML (Unified Modeling Language) to import and export UML compliant files from any vendor. I think this is amazing because Microsoft if not known for using standardized protocols and languages, it is more of a proprietary type of company.


SQL Server Modeling Services (SQL SMS) is still a repository for storing different models in a database that can be used by Microsoft products, third party vendor applications, and customer developed applications and tools. This repository will contain application definitions and will allow tracking and managing changes to applications. SQL SMS will include pre-built models for web, web services and data domains that can be used as starting places for users. And Quadrant, described as a model editor, is the application to be used for viewing and editing data in the repository.


Is there a difference between Business Process Modeling Notation (BPMN) and SQL Server Modeling Services? First, what is BPMN? It is a standard for business process modeling developed by the Business Process Management Initiative and is currently supported by the Object Management Group (OMG). And, yes, there is a difference between these two. BPMN are the standards and guidelines regarding what should be included in a BPM tool, and SQL Server Modeling Services is a software product developed by Microsoft.


I don’t know if SQL Server Modeling Services will be a “home run” for Microsoft or not. Microsoft is a late entrant into the modeling software arena, as there are several similar products already available for purchase. And even though, Microsoft has developed this product to be work with other applications currently being used by customers, it remains to be seen if this repository will work as described. In my opinion, the longer Microsoft waits to ship this product, the farther behind in the modeling world Microsoft will be. Microsoft is playing catch up with a moving target and catching the target (currently available modeling applications) is unlikely and surpassing the target almost impossible.

Monday, January 18, 2010

Google Adwords



Google Adwords allows the user to advertise to the target audience effectively and efficiently. The user determines who to and where to advertise, what to pay for this advertising including a maximum daily amount, and guides the user to accomplish all this with little or no advertising education.

Adwords works on the premise that an advertiser will pay an amount to place an ad at the top of a Google search. However, with Google Adwords the price the advertiser is willing to pay is just one aspect of how an ad is displayed. This evens the playing field, meaning an advertiser with a large advertising budget does not have an advantage over an advertiser with a smaller budget.
In determining the positioning of an ad on a page, Adwords uses a combination of cost-per-click (CPC) or cost-per-thousand (CPM) bid and quality score. The difference between CPC and CPM is with CPC the advertiser is charged the bid price each time an end user clicks on the ad and with CPM the advertiser is charged the bid price for each 1000 times the ad appears on the search page regardless of whether the end user clicks on the ad or not.

The quality score is a numerical value determined by the keyword click through rate, relevance of your ad text, historical keyword performance and other factors. Basically, if the keywords you choose drive customers to your site (high click through rate), the landing page from the click through is appropriate for the chosen keyword and the "other factors" are indicative of quality, your quality score will increase. And as your quality score increases the price you pay per click will decrease (lower your costs). Click through rate is the measure of how many people have clicked on your ad, a higher click through rate means more people have clicked on your ad.

One of the most unique features of Google Adwords (and there are many) is the ability of the advertiser to monitor on a near real time basis how an ad campaign is doing and can make modifications to the ad, keyword, target audience, and CPC/CPM bid to improve the placement of the ad on the Google search page immediately. This is very different from other types of advertising where a there is often a long lead time for any changes.