« Culture of Severity | Main | The Cult of Language Expertise »

December 24, 2007

Alpha, Beta, and Gamma Software Organizations

Img_1079 An Alpha software organization uses the latest stable versions of their tools and development languages. It moves as rapidly as prudent and possible to the latest release of, for instance, Python, gcc, or .NET. 

A Beta software organization may not be using the latest versions but it has plans to move to the latest as soon as possible. Beta organizations have solid dates or triggers for the migration. They are either waiting for particular tool vendors to catch up with a language release or for some other part of their own organization to do a roll out.

Gamma software organizations are in limbo. They have no plans to upgrade. These are the organizations which drifting along in Java 1.3.1 or .NET 1.1 or some pre-Cambrian version of C++.

Organizations can get caught in Gamma-hood for a variety of reasons.  One is client dependency.  If you are shipping software to external clients and they can't/won't upgrade their systems, you're caught.  If you're running on your own servers, Alpha-hood is yours to lose, and it's a shame that so many organizations do lose it. 

It's easy to fall off the upgrade path, but, having visited many teams, I notice that the ones that don't fall off perform better. 

A team's upgrade policy seems to be a reliable measure of health and seriousness. 

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d8341d798c53ef00e54fb067fe8833

Listed below are links to weblogs that reference Alpha, Beta, and Gamma Software Organizations:

Comments

I like this observation, but Alpha, Beta and Gamma are really points along a continuum --am I stating the obvious here?

I doubt that very many organizations are aligned with the leading edge of all of the tools, subsystems and components that they use.

There are some organizations that may be running really crusty versions of things because the consequences of not running those versions (1) are not known or (2) are just too horrible to contemplate.

I would not be a bit surprised to find an IBM 650 emulator running somewhere in production.

You see this everywhere, 10 year old versions of Perl, Python 1.5.2, ancient versions of MySQL that don't have transactions or views. On and on.

Usually the managers wet their pants because upgrading might cause problems. These are in settings where deploy takes a couple of hours and a rollback takes the same.

It's depressing, since I keep my home systems up to the minute.

Which reminds me, if it wasn't Christmas Eve I'd install Perl 5.10 tonight.

I once took a job at a Gamma software company. The worst career move I ever made. I should have realized when the smartest coder there was fired after I'd been there ten weeks.

Never ever ever ever again. Hey one benefit was that on the third day I bought a book from Amazon called "Working Effectively with Legacy Code." The job still sucked but the book was a good road map.

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment