Thick, Thin, and Zero Client Computing: An Introduction

As with many “new” technologies, (like cloud computing) some have roots in early computing technologies. Take the concept of thin computing. Before the days of powerful desktop hardware, computer systems were comprised of a powerful mainframe computer and much less powerful terminals. The mainframe would do all the processing of data and the “dumb terminals” would simply display the input and output. This growing trend in business computing, heralds the days of the mainframe with very fast servers providing the data storage and processing for low cost, low performance clients.

Fat Clients
Today, most people have fat clients – computers with fast processors (to quickly crunch data), large hard drives (to store applications and files), memory (to run applications), and video cards (to display complex and 3D graphics). A thick client can be a desktop, laptop, netbook, or tablet computer. A thick client stores and runs its own operating system and applications. It is made of expensive technology like multi-core processors, lots of RAM, large hard drives, and video cards with dedicated processors and memory.

Thin Clients
Thin clients are terminals that run an operating system and some applications. They connect to servers which host data and other applications. Thin clients are capable of storing some files locally and running some applications but rely on the server to store large data files and complex applications.  They can be found as all-in-one (monitor and computer in one box), desktops (very small form factor), and laptops.

Thin clients have slower processors, less memory, and less capable video cards than fat clients. However, they are cheaper. They also may not have any moving parts – no spinning hard drive and no cooling fans – due to flash memory and low power processors. Because of this, they can safely operate in more harsh environments than fat clients.

Zero Clients
A zero client is a terminal which does not run an operating system or applications. It runs a kernel which initiates the hardware and networking components and requires the servers to provide all the data and applications for the user.  Like thin clients, zero clients can be found as all-in-one (monitor and computer in one box), desktops (very small form factor), and laptops.

Like thin clients, the hardware is cheaper and can operate in harsher environments.

Benefits of Thin and Zero Clients
The benefits of thin and zero clients include cost savings, ongoing upkeep, centralization, scalability, and reliability. Businesses can save money with thin and zero clients because they cost less per device than fat clients. They also use less power and create less heat than fat clients. However, some of this cost is offset due to the increased cost of the server infrastructure needed to host the data and processing.

Ongoing maintenance is easier with thin and zero clients because they contain very little data. In the case of a failure, a technician will simply swap the thin or zero client with another device and the data and applications on the server are not affected by the client failure. In addition, software upgrades are much easier because only the server side needs to be updated and not each individual client. However, the server maintenance is more complicated due to the robustness of the server environment. So while the client side may require less people to maintain, the server side may require more.

Since the servers host the data and applications for the clients, everything is by nature centralized. This provides easier backup management and data security.

Scalability is accomplished due to the fact that the servers can host multiple clients and by adding more servers more clients can be hosted. The adding of servers can be done with minimal impact to production. Likewise, adding additional clients can be added as long as the servers can take on the additional load.

Since thin and zero clients can be easily swapped out after hardware failure and servers are centralized and scalable, this creates a more reliable environment. The servers are also more reliable than fat clients due to the built in redundancies of the actual server hardware and the ability to set sever clusters where multiple servers work as a team to host clients. In the event of a server failure the remaining servers can assume the workload of the failed device with minimal impact to the users.

Challenges to Thin and Zero Clients
Like everything in technology, thin and zero clients are not for everyone. First, the servers are expensive so replacing three fat clients with three zero clients will not be cost effective. Second, a proper data center and networking infrastructure is necessary to host the servers and client access. Third, not every application can operate in a thin or zero client environment. Fourth, the server is a single point of failure. If the server side fails, all the clients are impacted.

There are many benefits to thin and zero clients including cost savings, ongoing upkeep, centralization, scalability, and reliability. However, they are not appropriate for every situation and critical examination must be completed before jumping in with two feet.

HP Thin Clients:
Dell Thin Clients:

Do you have experience working with thin or zero clients? Please share your thoughts and experiences below in the comments section.

Outsourcing IT

Outsourcing. The word alone sends shivers down the spine of many that work in IT. Outsourcing has become a strategy many businesses – both big and small – have decided to take. Determining what services should be outsourced and when can be difficult decisions for business leaders to make.

What to Outsource?
Literally every aspect of IT can be outsourced. The help desk, Software Engineers, on-site Desktop Support Engineers, System Engineers, System Administrators, Network Engineers, Database Administrators, IT Management, Project Managers – everything can be outsourced. One of the biggest questions for the business is: what should be outsourced? One could argue, that the smaller the business, the easier that question is to answer. For example, a small business with no IT staff and five employees may need occasional help like setting up new desktops and printers in their office. A medium sized business with 50 employees may need an outside company to provide a 24×7 help desk. These examples are pretty straight forward, but what about the large company that wants to outsource an entire IT department displacing hundreds of full time employees?

Why Outsource?
There are several strategic reasons a company may decide to hire outside IT help. The first is cost. It can be cheaper to pay someone from another company to do IT work than it is to hire someone full time when you consider salary, training, benefits, etc. Another reason is convenience. It is more convenient for a small business owner or busy department manager to pick up the phone and ask a consulting company for exactly the right skillset than it is for them to go out and recruit it. Next is focus. Many companies outsource work that is not core to their business. With outsourcing partners taking care of IT, a sprocket manufacturer can focus on making quality sprockets. Finally, it might be the right thing to do. A short term or a one-time project is the perfect opportunity to bring in temporary, specialized help.

When is it the Right Time to Outsource?
This all depends on the situation. In the case of a large project, it would be best to hire someone with previous experience well before the project starts. In the case of a large company wanting to outsource every aspect of their IT department, that will need to be done very strategically and methodically. In reality, most companies start by outsourcing non-mission critical work first. For example, a company may hire a few consultants to assist the existing IT department with a desktop refresh. Or a small business owner may hire someone to rework their local networking and setup a new printer. That way, when larger projects come along, the business relationship has already been established.

When Not to Outsource?
Outsourcing is not for everyone. While it is easier to pick up the phone and get someone with a specific skillset on site, they will still need to be managed locally to ensure corporate procedures and protocols are being followed. In some cases, a business may not be comfortable with outside people dealing with systems that process or host sensitive business data like intellectual property or customer contact information. Also, if a new system will be managed by the existing IT department, it may be better for them to install the new system so they can learn the nuts and bolts of it during the install. In addition, a business may decide that part of their competitive advantage is their talented IT staff and they should retain them and keep them happy.

Strategies for outsourcing
Aside from what was mentioned before, hire consultants early for a big project and consider a methodical and strategic replacement of a large IT department, several other key strategies include:
1. Interview the consulting company as if you were hiring someone as full time staff, ask the tough questions, and call their references
2. Clearly define and document what you are looking for and set clear and obtainable expectations
3. Maintain open channels of communication and regularly use them to ensure consultants are meeting your expectations
And I think the most important strategy is:
4. Embrace the consultants as part of the team and not as outsiders. This may eliminate the “us versus them” mentality and make most effective use of the talents you hired them for in the first place

Challenges inherently exist in some outsourcing situations. Conflicts may arise if existing IT employees feel threatened by contractors. No one feels good about training their replacement. Contractors may not work as effectively if they feel they are not being treated fairly or with respect. If expectations are not clearly defined up front, the good ol’ blame game may rear it’s ugly head when assumptions are the driving factor of deliverables. Finally, maintain an open dialog with the existing IT department or you could be faced with a brain drain if they feel they are being replaced by consultants, even if that is not the plan.

There are legitimate business cases for hiring outside IT help including cost savings, convenience, being able to focus on the core business, and for one-time or large projects. Outsourcing is not appropriate for all businesses and can create unique challenges. However, for those that do decide to hire IT consultants, the more important decisions are usually what services are needed and when is the right time to bring them on board.

Are you an IT consultant or have hired consultants in the past? If so, please describe your experiences in the comments section below.

Virtualization: An Introduction

One of the fastest growing technologies right now is virtualization. Business leaders like it because it can save serious cash. IT departments like it because it’s fairly easy to setup and maintain. So let’s just virtualize everything, right? Not so fast.

What is Virtualization?
Virtualization is when you run multiple “virtual” computers from one physical computer.  This is accomplished by installing multiple operating systems on one computer, called Virtual Machines (VM).  A VM is made up of the operating system and all the applications that are necessary to serve the functional role of that virtual computer.  The VMs run concurrently on one physical computer and share the resources (CPU, memory, networking, etc).

For example, imagine you need to setup 10 desktop computers to test software updates before deploying the updates to all 200 computers in your business.  Traditionally, you would purchase 10 computers and 10 monitors, find the physical space to setup the computers, use 10 network ports, and 20 electrical outlets at a minimum.  This is a lot of work for something that may only be used on occasion.  Now, let’s consider virtualizing these instead.  Imagine if you could setup one physical computer and install 10 unique instances of Windows that look and feel like 10 separate computers.  You only need to purchase 1 computer, 1 monitor, use 1 network port, and 2 electrical outlets.  You just saved a lot of money and physical space in your office.  This is virtualization.

How Does Virtualization Work?
The physical hardware, VM host, and VM guests are the principle components of a virtual environment.  The physical hardware can be as simple as a desktop computer, but most virtual environments use powerful servers.  A desktop may allow you to run two or three VMs, whereas a server could allow you to run many more.  A typical server setup would include two or more physical servers and shared storage.  The servers would be powerful and include internal redundancies for power, CPU, memory, BIOS, ect.  They could have 4+ quad-core CPUs, 32+ GB of RAM, 100+ GB of local storage, 3+ network adapters, and fiber channel cards to connect to shared storage.  The physical hardware would be configured for redundancy so if one computer failed, the other computer would continue running the VMs.

The VM host is the operating system that runs the physical hardware.  It’s the operating system, the drivers, and the software which knows how to run the VM guests.  The VM guests are the virtual computers that run on the VM host.  One physical server runs one VM host, and one VM host can run multiple VM guests, got it?  Here’s a picture that may help:

Why is Virtualization Important?
Virtualization is important because it provides businesses an opportunity to maximize their return on investment from their IT infrastructure.  The traditional method of buying one physical machine for one server is not necessary nor cost efficient.  It also reduces the cost to run multiple servers because they take up less physical space, less electricity, and less cooling.  In addition, it can allow for more reliable service because the physical hardware and the VM hosts can be setup with redundancy in mind.  Finally, disaster recovery is much easier in a virtual environment because VM guest files can be easily copied from one physical server to another.

Is Virtualization the end-all-be-all?
No. Not every server can be virtualized.  It is not recommended to virtualize high transactional servers like database servers.  Also, there may be limitations with external hardware that may not work in a virtual environment.  However, most core business servers – email, DNS, DHCP, Citrix, File and Print, etc. can be virtualized without a doubt.  Also, most testing and development environments can be virtualized due to the low transactional nature of that work.  Many technology providers now offer VM compatible products since they see many of the clients going that route and it can make them more price competitive.

Virtualization can save the business money, be easier for IT to setup and maintain, and can provide more reliability than traditional standalone servers.  While virtualization is not appropriate in every instance, it is the most logical decision in many others.

If you have experience with virtualization or would like to know more, please share your thoughts in the comments section below.

Don’t Be a Crappy Boss!

I’ve had a paying job since I was 13 years old. Granted, I started out cutting grass and raking leaves, it was a paying job nonetheless. As with almost every job, even raking leaves, I had a boss. I have been fortunate to have worked for many exceptional bosses. I have also had the opportunity to work for a few very crappy bosses. I learned a lot from both, but probably more from the crappy ones than the good ones. I experienced firsthand how I did not want to treat the people I managed in the future. Whether you’ve had a crappy boss before, or have one now, here’s what I learned on how to not be a crappy boss.

Don’t be Crappy Tip #1: Put People First and the Job Second
One of the crappiest bosses I’ve ever had expected the people working under him to work 12 hours per day, discouraged taking vacations or personal time off, and regularly threatened to fire people if they didn’t follow his command. While the job was actually very fun and I learned a tremendous amount, my crappy boss lead me to leave the company I had been with for many years. From my experience, the constant stress of always being expected to work and not having time away from the office to decompress impacted many aspects of my life. Even though I’m naturally an optimistic and positive person, my attitude shifted to being more pessimistic and negative. My personal relationships with coworkers and personal friends suffered due to my negative attitude and lack of personal time with family. My health started down a bad path because I was eating crap food and using food as a mechanism to deal with the stress. This is only a tip of the iceberg, but you get the picture.

The takeaway: always put people first. This crappy boss failed to put the people before the job. This is a huge failure in my book and I feel it goes more toward the way of “old school management mentality”. When people are happy in their personal lives and feel confident that they have the support of their management to take care of their family and themselves, they will perform better at work. They will be happier and work better with others, they will accept having to work the occasional weekend or late night as the exception and not the rule, and they will support each other when times get tough. If done properly, it lays the foundation of a positive and supporting work environment.

Don’t be Crappy Tip #2: Have Realistic Expectations
Another crappy boss I had would delegate tasks, set a due date, and expect no deviation from the completion date of the task. The problem was that he failed to consider the other tasks he had already assigned, and did not give enough time for most tasks to be completed. So, I would regularly send him most of the information requested by the given due date, but then get the “I just don’t understand why this didn’t get done” speech. The arbitrary time to complete the task or the complications with dealing with other departments or vendors was never taken into consideration even after we discussed it.

The takeaway: have realistic expectations. I find it better to set deadlines by negotiating with the person(s) doing the work. I typically explain the work that needs to be done, identify a target date, and have the person(s) doing the work either accept or dispute the deadline. In most cases, the deadline originally proposed is fine because I have realistic expectations. However, on occasion, things happen, and sometimes schedules need to be flexible.

Don’t be Crappy Tip #3: Be Flexible
Being flexible is closely related to having realistic expectations because when things don’t work out the way you plan you need to be flexible in order to make best of the situation. One crappy boss I had would lose his cool over the smallest things. He would regularly break phones and random stuff around his office by throwing it against the wall. Not only was this inappropriate work place behavior, it caused everyone around him to not respect him in the slightest.

The takeaway: accept change and react positively to it. As the saying goes, “shit happens”. Even good employees are going to mess up. FedEx is going to lose the parts you must have today. Vendors are going to over promise and under deliver. Crap happens. How you deal with the crap is what makes the difference.

Don’t be Crappy Tip #4: Lead by Example
Whether you are a crappy boss or a good boss, the people that work around you see how you treat people. They see how you interact with your boss, vendors, contractors, and employees. Whether you like it or not, you lead by example. When I’ve worked for crappy bosses, most of the employees were crappy as well. People didn’t treat others with respect, rarely lent a helping hand, were quick to criticize and throw others under the bus, and were overall pessimistic and negative.

The takeaway: set higher standards for yourself than those around you. If those around you see you treating others with respect, lending a helping hand to those in need, offering to take on additional responsibilities so another coworker can go to their daughters ballet recital, then they will be more likely to do the same.

Don’t be a crappy boss. Put people first and they will take care of your business. Have realistic expectations and set up others to succeed. Be flexible. Let people make mistakes without berating them afterwards. Finally, lead by example. Like Gandhi said “be the change that you want to see in the world.”

If you have a crappy boss or have worked for one in the past, please share your experiences and what you learned in the comments section below.

Document, Organize, and Share Everything with Evernote!

I have to write everything down or I’ll forget it immediately. Literally – everything. Travel membership numbers, to do lists, shopping lists, random thoughts I want to revisit later, names of good wines, recipes…everything! In the past I’ve created draft emails or notes on my smart phone, carried around random sticky notes and sheets of paper, and created text files on my desktop and laptop. All of these have succeeded in providing a place to document what I needed to remember to do.  However, none have succeeded in providing one-stop-shopping where I can document, organize, and share my lists. Not only that but I had lists scattered all over the place.

A couple years ago I started using Microsoft OneNote. At the time I thought this was the answer to my prayers. I could document and organize my tasks and even upload and share them online via Microsoft Live SkyDrive. What, you’ve never hear of Live SkyDrive? Yeah, that was the problem. I could share things with myself and access them anywhere with an Internet connection, but no one else I knew was using the service. Not only that, but I could only access and read my OneNote’s using a desktop or laptop with OneNote installed on it. So accessing it remotely on a computer at the library or on a mobile device was out of the question.

Google Docs
Some time later I started using Google Docs. I love Google Docs and I use it a lot. I use it to create spreadsheets and documents that others can access and modify, and to store documents I want to access remotely. Google Docs is a great tool when collaborating with others on projects for work or school. However, there isn’t much in the way of organization. Sure, you can create Collections of documents, but that failed to meet my expectations for organization.

Recently, I stumbled upon Evernote. Evernote is the answer to my prayers. Not only can I document and organize the content the way I want, but I can share information very easily. Best of all: I can access Evernote on my Windows laptop and desktop, iPhone, and Android tablet. And, my wife can access it on her BlackBerry.

The service is free to use with a monthly usage limit of 60MB. Not only can you create lists, but you can capture audio, video, web pages, Word documents, Excel spreadsheets, screen shots, and more! You can even capture free hand scribbled notes and diagrams. You can choose which notes you synchronize to the web and which ones you store locally. I haven’t yet documented my entire life, but I suspect if and when I get to the point of capturing personal finance information, I won’t sync that to the web. There is the ability to encrypt the text within notes and the synchronization to the web is also secure, but you never know…

So, if you are looking for a tool which is economical (free!), easy to use, flexible, and gives you the ability to share information across multiple device platforms, then check out Evernote at

If you use Evernote or a similar service, please share your experience and tips in the comments section below.

To Cloud or Not to Cloud…

Most small and medium businesses today have the same IT requirements as their larger competitors if they want to be competitive.  Allowing customers, contractors, employees, and business partners access to company data is more common than not.  In addition, most small and medium companies want to invest as much of their cash into their core business, not technology to provide services.  Something that has been getting a lot of attention lately that pertains to this topic is cloud computing.

Cloud Computing
The concept of cloud computing has been around since the time of mainframes.  The basic premise is you install applications or host a service on a centralized server (or servers) and clients (users) connect to the server(s) to run the applications or service.  Gmail is example of cloud computing.  Google provides the hardware and software necessary to host your email account and you check your email without needing more than a web browser and Internet connection.

Host Your Own
The alternative to cloud computing, where you host your own email, is actually very complex.  Infrastructure wise, you would need to buy, configure, and manage a server (or servers if you want high availability), data storage device (or devices), an email service to run on the server, a domain name, a high speed Internet connection, dedicated IP addresses, firewalls and other networking equipment, and a proper data center with proper security, HVAC, redundant power, and waterless fire protection to rack your server(s) in.  All of this just for email.

Other Than Email
Okay, so email is a basic necessity of any business, but what about big ticket items like web hosting, Customer Relationship Management (CRM), payroll, or project management tools?  All of these are available on the web using cloud computing.  There are a lot of providers of cloud computing.  Some provide you with a cloud server where you can install and setup specific services that you need, like a web server or database server.  Other providers can host your email or provide you with CRM or project management tools.  No matter which service you choose, the basic premise is the same – the applications or service are running “in the cloud” without the need of you managing the infrastructure to make it all work.

The Good
There are a lot of good things about cloud computing.  It’s obviously cheaper and easier from the perspective of not needing all the infrastructure listed previously.  It’s also very reliable from the stand point that your virtual server or hosted email is not running on one server but tens or hundreds or thousands of physical hardware with redundancies built in all over the place.  It’s also convenient.  You can access it from anywhere with a web browser and Internet connection (for the most part).   It allows you to focus.  Without all the physical infrastructure laying around your office, you don’t need to hire a huge IT staff to build, upkeep, and support the technology.

The Bad
There are a few drawbacks to cloud computing.  First thing that comes to my mind is your not in control.  You cannot control the physical environment where your data or service is stored, the times at which updates are done, or the reaction to issues or problems with the service.  You also have to put your faith into the hosting company that they will protect your data.  Not only do you have to rely on the hosting company, you also have to rely on your Internet Service Provider.  If your Internet access fails because “Bubba-with-a-backhoe” just cut the fiber optics outside your office, or if your service provider has an outage in your area, you can’t access your data online.  In addition, some folks may not like the idea of paying the reoccurring fees (monthly or yearly) for hosting applications or services.  Lastly, depending on what type of applications or services are in the cloud, you may need to purchase a high speed Internet connection to provide your office workers a better experience with using the cloud service, which will obviously cost a little more each month.

In the end, the good outweighs the bad in a lot of cases.  However, cloud computing is not for everyone and it is not the end all be all of business technology.  But for many small and medium businesses, cloud computing can provide services that allow them to be competitive without investing a lot of capital in infrastructure.

Doing a simple Google search will provide a lot of cloud computing providers.  Here is a short list of a few I know of:
Project management:

Photo courtesy of Dotcompals

Here we go…

I’ve decided to start writing down my thoughts about things that interest me.  I think it will be fun to archive my thoughts and share my experiences.  I’m not sure how many people besides myself will actually ever read this, but what the hey…here we go!