Wednesday, April 29, 2009

Software Rot

A problem software companies seem to battle with is software or code rot. It happens when software suffers from a lack of updates over a period of time with respect to the environments it's used in. It can cause the software to become unstable, loose performance or become irrelevant. Advancements in technology (frameworks, languages, environments) can speed deterioration in the software's relevance, usability and innovation. (Software does not physically deteriorate.)

Software rot can be addressed through the use of refactoring which entails rewriting existing code to make it relevant by updating it's code framework, making it compatible for new Operating Systems, etc. without changing its purpose.

Software can face deterioration over time but still be used in which case it is generally referred to as legacy software, not software rot. Quite a few programs

Tuesday, April 28, 2009

The Difference between a CIO and CTO

My roommate and I were debating the difference between a CIO and CTO. The Wikipedia entry for CTO, under Contrast with Chief Information Officer says "The focus of a CTO may be contrasted with that of a CIO in that, whereas a CIO is predisposed to solve problems by acquiring and adapting ready-made technologies, a CTO is predisposed to solve problems by developing new technologies. In practice, each will typically blend both approaches.

In an enterprise whose primary technology concerns are addressable by ready-made technologies, a CIO might be the primary representative of technology issues at the executive level. In an enterprise whose primary technology concerns are addressed by developing (and perhaps productising) new technologies, or the general strategic exploitation of intellectual property held by the company, a CTO might be the primary representative of these concerns at the executive level."

Do you agree with that? I do agree that depending on the company, one role may be a little more relevant than the other and in practice each will blend their approaches. When I've worked for larger companies the CIO role is more typical and working for smaller software development shops the CTO role is more typical. Perhaps a CTO role is a bit more organic since they help develop technology while the CIO is the more prepackaged technology. I guess that means a CIO is more likely to use and implement software that is proven while a CTO is more likely to experiment or develop in house.

Either way it's an interesting distinction that would really set apart those in the IT management industry who some day hope to be in a position like this.

CIO = Chief Information Officer
CTO = Chief Technology Officer

Monday, April 6, 2009

The SSD Anthology: Understanding SSDs and New Drives from OCZ

This was originally posted to the Ultimate Ultra-Mobile PC blog:

A coworker sent this article to me. This article goes pretty deep into understanding the technology behind Solid State Drives (SSDs) and how their performance changes over time. Solid State drives are going to become the norm in a few years as their cost per gigabyte declines. Despite SSDs being much much faster than normal Hard Drive Disks (HDDs), they have quite a few draw backs including degraded performance after continual use, you pay for space you don't use and they have a limited lifespan.

This article also makes mention of the TRIM query / function that may eventually be supported in Windows 7 and how that can help offset some of the performance declines. Anyways if you have contemplated installing an SSD in a UMPC or any computer you should read this article.