Friday, January 07, 2005

Why Software Installs Fail

Many businesses do not use the System Development Life Cycle. What is a likely explanation? Why do system installations fail? Is an unfinished system a failure? Why do system installations succeed?

Many businesses do not use the System Development Life Cycle. What is a likely explanation?
The most likely explanation is they do not know what SDLC is. This concept is still in it’s infancy as compared to other business practices concepts and theories. The reason no one knows what it is, because most every development project and development company are dramatically different. The driving forces are money available, costs, people, expertise, experience, budget and timeline.

When I started writing code there were no schools to teach code writing. We just invented things as we went along. Only the very large organizations and veteran programmers that have been dragged through the hot coals of the development cycle really understand what it is and its sub components.

Most development projects are done with small teams that share a portion of a much larger development program like at Microsoft. Most other upstarts and smaller companies are less structured and have more free spirited development teams.

Programming is like being an artist. They maybe a really good painter, but they may not be able to manage a project. Since development is a skill like being a painter not everyone can function in that structured manner or have been trained.

Like the really great artist, programming is something that has to be desired and the person has to have the vision for it. Managing SDLC requires someone who knows and understands both doing development and knowing what SDLC is all about.

Today there are very few managers that understand what the developers are doing and only understand time and money. In the industry SDLC is known, but the term is shortened to development cycle.

Here are a couple of sub components of SDLC that contain their own life cycle.

Why do system installations fail?
There are infinity + 1 reasons why an installation will fail. Because there are many different operating systems at different stages of patches and critical updates, with hundreds of localizations for a particular country, with 100,000’s of third party software with it own multitude of various versions, different hardware versions, firmware versions, device driver version levels, different levels of user knowledge about the products and systems and billions of lines of code running on trillions and trillions of billions of transistors. There is never the perfect installation for all cases and all situations. The best that you can hope for is the vast majority of your target audience.

The recent XP Service Pack 2 installation is a classic example. Microsoft has reported that there have been over 120 million downloads of XP Service Pack 2. The Gardner Group (an industry watch dog) is reporting that 10% of all XP SP2 upgrades will result in failure. That means that 12 million installations of XP SP2 have failed.

Is an unfinished system a failure?
NO! Software is one of the few products that you cailing, out of disk space, not enough system resources, file corruption, and all the items listed about under why installs fail.

Why do system installations succeed?
LUCK! LUCK! LUCK! And LUCK! System installs can be successful if they are very simple and not complicated. Testing, Testing and Testing and more testing on the various versions of your largest target audience will give you the largest base of success.

You will have has failed installations due to odd ball reasons, such as the computer is infected with spyware, the hard drive is failing, out of disk space, not enough system resources, file corruption, and all the items listed about under why installs fail.

I was introduced to Microsoft’s long range vision for software installations back in 2001 at Redmond, WA. Future software installs pulls out a chapter from the old school book from the DOS days. Back then to do an install, you just created a directory and copy the files into it. Microsoft will be doing future installs with the .Net platform OS’s with what is called Portable Executables (PE).

The install will create a folder and copy the files into it. To uninstall you just delete the folder. What a concept! Today’s software installs are so complex it is a miracle that we have successful installs. Thousands of files are copied to hundreds of locations, with hundreds of registry entries, often times over writing newer entries and with older versions of files.

It is a nightmare called DLL HELL. Microsoft is making great strides in this area to eliminate it. However it is taking much longer than I expected it before PE becomes a reality.

No comments: