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.
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.
Posted by: lee doolan | December 24, 2007 at 08:27 PM
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.
Posted by: Sad Programmer | December 24, 2007 at 10:45 PM
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.
Posted by: Peter Booth | March 26, 2009 at 07:18 PM