IT Manifesto

This is a document I expect to be fleshing out as time goes on. I intend to capture here a bit of what I’ve learned is important from my years in information technology.

 

Change

Change is the only constant in this world, in this life, and especially in IT. Embrace it.

One key to a successful IT strategy is deciding when and how change affects your organization. You must set an appropriate balance between an undless upgrade train and remaining stuck on old technology.

Embrace new technology, but don’t be a beta tester. You want to be the 1000th customer, not the first.

 

KISS

Keep it simple, stupid.

In any system, there is a level of complexity which is necessary to meet the needs of the users and the organization. Once you’ve reached this level, stop complicating matters.

The more you customize an application, the harder it will be to upgrade to a newer version or migrate to a competing product. Use off the shelf components whenever you can.

Tying systems together is often appropriate, but often not. Does it make sense to have an application automatically fill out a table in another system’s database? It may sound elegant, but that might also lock you into the version you’re running of each of those two systems.

You might be better off with a manual process than an elegant inter-application automated system, if that means that you leave yourself in a better position for the future. Consider all the costs and benefits involved, and flexibility in the future is one benefit often overlooked.

 

Network

There is nothing more important in today’s business world than the network. It is the building block for nearly every piece of business technology today, from the phone to the computer to the accounting system. It simply can’t be overstated how important a reliable network is.

Ten years ago, it was the LAN that was so important that it deserved careful engineering, redundancy, and support.

As time goes on, and network based applications are the norm rather than the exception, the WAN and Internet are becoming just as critical.

 

Virtualization

Virtualization is perhaps the most important concept in IT in the last ten years. As of this moment, I think VMware is the clear leader in the area; there are some worthy competitors, but so far VMware is years ahead of the pack.

Hardware Independence - If you’re running a virtual machine (VM) on Sun, Dell, or any other hardware, the VM doesn’t know the difference. From its perspective, the devices it uses are the same, no matter the underlying infrastructure. This allows you to migrate to new hardware when you need to without any interruption in service. This allows you isolate your applications from being affected by hardware failures.

Utilization - You can run many VMs on a small number of physical hosts. Were those VMs running each on their own server, they may be idling most of the time (but applications often need to be seperated for very good reasons). Now you can more fully utilize the hardware you do buy.

Flexbility and Speed - When the business decides it needs a new server built, the time to get that done is drastically reduced once you have a virtual infrastructure in place. Instead of waiting days or weeks to spec out a box, get approval, wait for delivery, and install, you can slice off a new VM and be building a new server in minutes. You can clone old VMs if you want a new server with the same OS and patchlevel as a current box. 

High Availability - It used to be we spent a lot of money on certain application to make sure they were highly available, but left many applications and systems without redundancy out of necessity. However, with a virtualized environment, we can spend the money to make the physical hosts redundant, and bring high availability to all of our servers, affordably.

Cost Savings - This is often touted as the most important reason to virtualize, but it’s not. It is true you will probably save some money. However, VMware licenses are expensive and good hardware for the physical hosts is expensive. While I do believe you will save money by virtualization, I don’t think this is as significant as we might like. It is a benefit, but it’s not the most important benefit.

 

Specialization

Specialization is for insects. A good IT person shouldn’t know just one piece of the puzzle, but about how that piece fits elsewhere.

Nearly every application or system is affected by those elsewhere; if we don’t truly understand how they interact and don’t comprehend the larger business strategy, we don’t make the best choices we can.

Jack of all trades, master of none… but often better than the master of one.