回忆往事 Windows® 产品的预发布版本遵循相当标准的过程。首先是 alpha 版本,该版本供内部使用,并有可能与 Windows 产品团队之外的软件开发合作伙伴共享。
alpha 版本之后自然是 beta 版本,该版本将发送给更多用户使用。alpha 和 beta 版本用户之间的主要区别在于:beta 版本的发布对象包括非软件开发人员,例如喜欢测试预发布软件的最终用户,以及希望率先开始评估新 OS 以确定新产品不仅与关键的内部应用程序兼容,而且也与公司网络、标准硬件配置和系统管理工具兼容的公司。
最后,将是候选发布版。顾名思义,候选发布版即最终版本的候选代码版本。换句话说,“如果一切顺利,我们将发布该版本”。如果发现一些严重错误导致此预期无法实现,则会尽快修复该错误,并构建新的候选发布版,然后再次启动测试环节。Windows 95 发布的是其第六个候选发布版。
据我所知,Windows NT® 的员工们也遵守相同的版本命名模式,但他们遇到了一个问题:公司不愿意在 Windows NT 的 beta 版本中测试其关键应用程序。他们的逻辑通常类似于:“为什么要那么麻烦呢?只不过是 beta 版罢了。Beta 版是给那些爱好测试的家伙们准备的。无论如何肯定与最终版不同。如果现在做测试,那只不过是在浪费时间”。
类似地,软件公司也不关注在 Windows NT beta 测试期间发现的问题。“我们不支持 beta 操作系统”,他们会这样回答。
这些公司希望在实际候选发布版完成后再开始认真地进行测试,那时他们将不可避免地发现大量问题。某些问题公司可以自行解决,而其他问题则更加复杂,需要对 Windows NT 与前一版本的操作系统不“完全兼容”的地方进行处理。特定的项目功能可能会在工作时出现少数问题,而且部分此类问题可在很短的时间内解决。但有些问题则非常严重,需要推迟产品发布才可以解决。
这些候选发布版还会得到许多建议。我们曾收到类似这样的反馈:“我们认为如果按照这种方式安排按钮布局,UI 看起来会更好一些”和“如果这条消息换一种说法,我们的员工可能会更清楚地理解其含义”。这些建议如果在 beta 阶段提出,那将是非常好的建议;但是,如果在第一个候选版发布后再提,则此时再更改界面设计就太迟了。因为此时文档和帮助文件均已撰写完毕,产品也已翻译成几十种语言,而且用于手册和产品包装盒的屏幕快照也已经完成布局、转换、分色和印刷等工作。所有这些工作不能因为仅仅移动一个按钮就全部作废,然后再重做。
我回想起在 Windows XP 时代的一次会议上,就曾经为这种最后关头才提出的更改进行过讨论。提议更改要求对一个 20KB 的帮助文件进行修改,以便说明能够与新 UI 相对应。本地化和翻译代表通知我们,在极短的时间限制内重新翻译修改过的帮助文件将花费大量费用。
为消除对 beta 版本不重视的态度,Windows NT 团队求助于“等级扩张”。仍然会有 beta 版本,但最新的 beta 版本在仍有时间(但不多)执行一些微调工作时,将作为候选发布版,而过去的候选发布版则是现在的契约版。术语“契约”很好地传达了版本的真正状态:“该版本现已完成,除非确实遇到紧急情况,否则不要再去修改它”。
Raymond Chen 的网站“The Old New Thing”及同名著作 (Addison-Wesley, 2007) 讲述了 Windows 的发展历程和 Win32 编程。他认为可从中了解自己的风格。