Alpha, Beta, CTP, RC, RTM - Is this good?
Till before the start of the current millennium, we were accustomed to working with release versions of the software. People were either not aware of all these various pre-release versions, or they were not even available from the vendor. I can recall having worked with MSVC 1.5, 2.0, 4.0, etc and always working with the release versions only. We would read documentation, if available, on new features being planned to be introduced in newer versions or many times it was some dedicated time spent post release of the product to understand the new functionalities available.
However with .net, MS has changed all that. Initially it was Beta bits that would be available for people to download and work with and specific partners would get a pre-beta version also to work with. General public hardly ever (apart from beta testers) got involved in using these pre-release versions. Now, we have not only betas, but regular CTPs (almost every month in some cases) and various RCs prior to the final release.
I feel that in a way it was good earlier, since we were not getting worried about compatibility issues of pre-release software, upgrade issues between various betas and CTPs, changing API names, features missing from final release build that we have already worked with during earlier bits. The typical time frame between a public beta and the final release of the product these days is anywhere upwards of 1 year. During an year lot of work happens on the product to make it release ready and this would include bug fixes, API name changes, addition of features, improving stability of features and even removal of features that are probably too ambitious to be completed within the planned release time frame.
However with the people now getting involved in betas, CTPs and RC builds, they get their hands dirty on the product much ahead of the actual release and this brings in additional issues of upgrade issues, newer bits don't install or work properly without clean un-install of earlier bits etc etc.
Having access to these early bits has a brighter side also. It allows us to experiment with upcoming technology and plan our own application development around it. If we know a new technology is about to be released and will have features that will make development of our planned application easier, it may be worth to wait a little for the release of the technology or get into TAP program with MS. More and more organizations these days start working with beta bits itself for their applications.
In a way this helps MS also. In general it is 1-2 yrs post release of a software that people really start using it. With the early bits now available, this people acceptance has come down drastically and many would be already building production systems and release them along the same time as RTM of the software. This mean faster product acceptance into the market.
So though having access to early bits is good for understanding what's coming in future and plan our own technology road map around it, it has also opened new challenges for the developer community in continuously having to learn and cope up with new versions of pre-release software.
I wonder what it would be like if the monthly CTPs that we have today, become daily CTPs in future ! Your comments are welcome.