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.

Sunday, December 13, 2009

Enterprise 2.0

Enterprise 2.0 is the use of social media and social networking tools in a business setting. Sounds easy enough but Enterprise 2.0 is so much more than this. The term was purported to by first used by Andrew McAfee (a professor of IT at MIT and Harvard) in the spring of 2006, although there are others that are sometimes credited with coining this term. Whoever first defined and used Enterprise 2.0, the main idea is to encourage employees to exchange ideas, learn from each other and become more independent learners. Some of the tools used in Enterprise 2.0 are blogs, wikis, and in-house social networking sites (similar to Facebook).



Legacy systems, i.e., the internet or web, impose structure prior to use by employees, where Enterprise 2.0 encourages use over structure. Before continuing to discuss Enterprise 2.0, it is beneficial to know what Web 2.0 includes, as Enterprise 2.0 is often contrasted with Web 2.0. Web 2.0 is defined as the development of applications to allow information sharing and collaboration on the web, i.e, it allows internet users to interact with one another rather than just passively viewing information.



Enterprise 2.0 vs Web 2.0

Enterprise 2.0

Web 2.0

Internal facing

External facing

Behind the firewall

Open to the world

Business

Social

Knowledge capture

Sharing random things/thoughts

Wiki, blog

Websites

Productive & Efficiency

Time consuming

Reduction of email

Email producing

Collaboration



The emphasis with Enterprise 2.0 is collaboration and information sharing within the business or organization. Some possible uses of Enterprise 2.0 are: profile pages for products, an online community within a business used to find someone within the business with a particular knowledge or skill, RSS feeds to keep employees informed, and wikis for company documentation.



The most important aspect of Enterprise 2.0, in my opinion, is keeping everything behind the firewall, i.e., the documentation is not available to the world. This is especially important to keep intellectual property protected. Another important thing is to be sure the information and documentation sharing within the business/company is correct. This requires someone within the business to actively monitor and edit the wikis to be sure the information available is correct and accurate. If employees use the wikis or blogs as a resource for information to provide to customers/clients then this is especially critical. And if I am honest in my evaluation of Enterprise 2.0, I don’t see it taking the place of more structured processes and documentation because of the risk of working with inaccurate and/or misleading information. I think using blogs within a business as an informal way to seek opinions or subject matter experts would be one of the more common uses of the tools included in Enterprise 2.0.



In our MIST7500 class, we talked about and used several of the tools included when talking about Enterprise 2.0. Most notably are: aggregations, blog sites, wikis, social media, and application programming interfaces (APIs). We had class assignments to set up and use aggregations, whether RSS feeds or news aggregation tools. We also had to establish a blog that we used to share our experiences in the MIT program in the Terry College of Business. We also used our blogs to share research and to share interesting information with other classmates. This is similar to how a blog would be used within a business, I imagine. We also used Wikipedia many times when researching different topics during class discussions. And when I have to research something I often begin with Wikipedia and then search blogs for additional information, especially for internet technology topics. Even though I use many of the Enterprise 2.0 tools, I don’t always trust the information, you might say I use the information but I verify, verify, verify.

The end of the semester

My goodness, where did the time go. It seems only 2 weeks ago that we were entering Room 108 for the very first time, some people knew each other but most did not. I was very nervous because I don't have an IT technical background, I have a business background. I have managed programmers and you do pick up some bits and pieces of programming but not enough to "talk the talk".

What a difference a semester can make. Now I can "talk the talk", most of the time. One of the most amazing things was the willingness of my class mates to help me get up to speed in using the software and techniques needed to accomplish the tasks assigned in the Internet Technology class. My class mates are awesome! I hope I will be afforded the opportunity to repay their kindnesses when the business and project management classes come around.