怎么做革命性创新产品?
5659
2019-10-24 09:48    文章来源:阿朱说(azhushuo)作者:吕建伟
文章摘要:ShowStopper,有搅局者、精彩表演者的意思。

ShowStopper,有搅局者、精彩表演者的意思。

微软出版过四本书,我个人感觉不错:
1、开发类:软件开发的科学与艺术
2、开发管理类:微软的秘密
3、研究开发类:观止(就是这本书),介绍 NT 这个微软史无前例的革命性产品如何研发
4、研究类:追随智慧-微软亚洲研究院成立

《观止》和《追随智慧》,蛮适合在商业公司做研究的人看的。很多人对在商业公司如何做研究,以及如何管理研究,都比较陌生。这两本书看完,大家都能找到恰当的尺度。

(1)史前

一、IBM

1946 年,世界上第一台计算机问世,是基于电子管的。

一开始人们使用一种特殊打字机,这种打字机可以把人们敲入的计算机指令直接打孔为二进制卡片。1950 年,汇编语言发明。1951 年,美国海军军械储备局的赫伯发明了编译器。1956 年,IBM 发明了 Fortran 语言,这是世界上第一个被正式推广使用的高级开发语言。

1959 年,IBM 发明了晶体管计算机,采用了晶体管线路,磁芯存储器,印制线路这些先进技术。可以说,是 IBM 开创了计算机这个商业产业。

一开始的软件和硬件是绑死的,软件想跑在其他型号的计算机上就需要重新修改和编译。1964 年,IBM 推出 System 360 计算机,至少在 IBM 大型主机系列中可以做到软件是可兼容的。

1969 年,IBM 受到美国司法部《反托拉斯法》的调查。1970 年,IBM 害怕被拆分,于是 IBM 宣布,硬件、软件、服务三者分开独立计价。1971 年,三个 IBM 德国公司的高级雇员发现这是机会,于是创办了 SAP,成为了世界上首个商用企业应用软件产品公司。

二、DEC 公司

DEC 公司创办于 1957 年。1959 年推出 PDP-1 小型主机,价格比 IBM 大型主机要低很多,但性能差距却并不很大。

1971 年,29 岁的卡特勒加入了 DEC 公司。

1975 年 4 月,DEC 开始启动 VAX 小型机的研发。1977 年 10 月,DEC 推出 VAX 小型主机,里面的操作系统 VMS 就是卡特勒率领人开发的。

三、Unix

1969 年,Unix 诞生于 AT&T 的贝尔实验室。但是 Unix1.0,却是在 1971 年,Ken Thompson 在 DEC 的 PDP-11 小型主机上开发出来。

但是 Unix 真正可用,是 1974 年,Dennis Ritchie 发明了 C 语言,Ken Thompson 与 Dennis Ritchie 用 C 语言把 Unix 重新写了一次,然后在 1974 年 7 月发表到 The Communications of the ACM,才为世人所知,结果引起了学术界的广泛兴趣并对其源码索取,所以,Unix 第五版就以「仅用于教育目的」的协议,提供给各大学作为教学之用。

1977 年,加州大学伯克利分校开发出 BSD(Berkeley Software Distribution),成为著名的 Unix 免费开源版本。

四、微软

1977 年,盖茨从哈佛大学退学,和艾伦创办微软,卖 BASIC 编译器,一开始主要跑在 MITS 公司的 Altair 计算机上,Altair 计算机使用的是 Intel 8080 CPU。

1980 年,IBM 选中微软为其新 PC 机编写操作系统,这就产生了 MS-DOS。原本 IBM 没打算在个人电脑市场好好发展,但是猝不及防的订单让 IBM 开始正视这块市场。1984 年,IBM 和微软合作开发 OS/2。OS/2 1.0 于 1987 年 12 月上市。

但是,1980 年,微软自己还基于 Unix 开源版本,把只适用于小型主机的 Unix,可以适用于 Intel 微机 CPU。另外,还提供了硬件错误恢复策略,还有文件系统瘫痪、电源故障和其它错误后的自动修复功能。增加了一些新的功能,包括共享数据段,以及改善了交互进程通信等。

1982 年,SCO 和微软合作开发 Xenix。1984 年,Xenix1.0 发版,它还能在 DEC PDP-11 和苹果 Lisa 电脑上执行,Xenix 具备了多用户多任务的工作能力。但是,微软于 1985 年发行了 Windows1.0。

微软还与 1984 年和乔布斯合作,为 Mac 电脑开发办公套件。Word1.0 产生于 1984 年,1985 年又产生了 Excel 1.0。

1988 年,微软和 Sybase 公司合作开发 SQLSERVER,在 Sybase 的基础上生产出了在 OS/2 操作系统上可以使用的 SQLSERVER1.0。1994 年,微软和 Sybase 分道扬镳,微软继续独立开发,于 1995 年推出 SQLSERVER6.0 大获成功。在这里要提一句,1992 年,微软还并购了 Fox 公司,这就是著名的个人电脑上的数据库 Foxbase。

至此,微软操作系统、Office、数据库三大件终于集齐。

五、苹果

1976 年,乔布斯和沃兹创办苹果公司。1977 年,苹果公司推出 AppleII,这是人类历史上第一台个人电脑。1980 年 12 月 12 日,苹果公司上市。

1979 年,乔布斯到施乐 PARC 实验室参观,被图形界面与鼠标、所见即所得打印、SmallTalk 面向对象编程语言、电脑联网四大技术震撼,随后乔布斯撬走了 PARC 实验室的 15 名核心骨干研发人员。1983 年,Lisa 电脑推出,这也是人类历史上第一个商用的图形界面的电脑。但是没想到微软在 1985 年也推出了 Windows1.0。

1985 年,造出来 Mac 电脑的乔布斯由于内部斗争,以及 Mac 的销量不佳,被苹果董事会赶出苹果,创办了 NeXT。不过乔布斯这次也挺鸡贼,他在操作系统方面,用了免费开源的 Unix Mash 微内核和 BSD 代码,他在开发语言方面用了业界免费开源的 Object-C 开发语言。这都是 1985 年的事了。

(2)卡特勒

一、挫败

1971 年,29 岁的卡特勒加入了 DEC。1975 年,卡特勒加入 VAX 小型机的研发项目中,担任 VAX 小型主机的操作系统 VMS 的研发负责人。1977 年,VAX 成功推出。

但是卡特勒看不惯 DEC 公司的官僚作风,扬言要离开 DEC。DEC 的 CTO 最看好卡特勒,于是在 1981 年告诉卡特勒,你可以建立一支团队,你来创建一个全新的服务器操作系统。然后卡特勒就招募了一帮好手不断在实验室倒腾。

直到 1985 年,DEC 公司才让卡特勒立项,正式商业开发下一代小型机 Prism 以及它的操作系统 Mica。1988 年 6 月 18 日,DEC 取消了这个项目。

想一想,卡特勒已经在 DEC 待了 17 年,这时候的卡特勒已经 46 岁。

即使他有 VMS 的成功研发经验,但是他为了酝酿出下一代服务器操作系统,他仍然花了 4 年研究实现,4 年开发时间,但仍然连个屁都没有。

要知道业界,生产一代硬件和操作系统,往往时间周期是 4 年时间。

二、加入微软

1988 年 8 月 4 日,卡特勒加入微软。

而这时候的微软,1986 年已经上市,微软已经于 1987 年发布了 Windows2.0,与 IBM 合作的 OS/2 也于 1987 年发布。并且 1984 年,微软和 SCO 已经成功研发了 Xenix 操作系统。也就是说,微软在个人电脑上研发操作系统,已经颇具能力。

没想到,这一去,Windows NT 的研发周期长达 5 年。要知道,微软 1985 年推出 Windows1.0,1987 年推出 Windows2.0,1990 年推出最火爆的 Windows3.0。1992 年 4 月,Windows3.1 发布。看似是就一个小版本,但是这个小版本可了不得,CD 播放器、True Type 字体、支持以太网网络、支持 Windows 工作组网络共享协作安全控制。微软的工作周期是这个样子。

我们随后会看到卡特勒是怎么控制 Windows UI、网络、安全。

三、师父鲍尔默

鲍尔默是盖茨的哈佛好友,也是微软的元老,还是微软的总经理,万人之上一人之下。

他表面看起来热情冲动、强硬推进,其实他心思缜密、怀柔,对项目成本预算、风险、市场都有很好的敏感性。

他做卡特勒的入职引导 Metor,真是盖茨煞费苦心。

鲍尔默做了几个入职原则:
1、分工:卡特勒负责内核态,微软其他团队负责用户态
2、功能:要可移植性,既能让 OS/2 应用跑起来,又能让 DOS 应用跑起来,还能让 Windows 应用跑起来
3、进度:不急,先花 6-9 个月时间熟悉 PC 机的特性,并且规划出一份可交付成果清单

这三点原则可谓老辣啊。

四、团队

看看卡特勒的核心团队:
1、硬件:索特
2、软件内核:皮亚佐利(他创建了 Client-Server 模式的内核态-用户态操作系统内核)
3、文件系统:米勒(他创建了 NTFS 文件系统)
4、Open API:拉科夫斯基
5、文字输入与显示:斯托维尔
6、安全:吉姆凯利(他创建了 Active Directory)

连卡特勒一共 7 人,除了斯托维尔是皮亚佐利从外面招聘来的,其他都是 DEC 一起配合工作了快十年的老人。很明显,没有任何微软的人。

看看卡特勒的外围团队:
7、Windows UI:威特莫
8、网络:鲁宾
9、外设驱动:李史密斯

这是微软的人,但都是外围团队。

五、融合

因为卡特勒从 DEC 跳槽微软的时候也带来了 7 个高手,而且工作风格和微软现有研发团队格格不入。微软 CTO 麦沃尔德担心卡特勒不能很好做团队配合(事实果然如担心的一样),麦沃尔德就想试探一下卡特勒在团队融合方面是否 OK。

他就派了微软最牛的程序伍德加入卡特勒团队。伍德,西雅图本地人,耶鲁大学计算机博士(人很聪明专业能力很强),湖滨高中学生(盖茨就读这所贵族高中),态度也很谦和,更重要的是他不是书呆子(实用主义者)。还还完整地成功地开发完了 OS/2,有丰富的操作系统开发经验。

庆幸的是,卡特勒他们团队接纳了伍德。这让微软 CTO 麦沃尔德松了口气。

(3)嚎叫的熊

一、倒逼

针对鲍尔默的期望,卡特勒自己还另有私心,不仅想向上兼容各个用户态应用,而且还想向下兼容各个主流 CPU 芯片,如 Intel,如 MIPS。但盖茨从一开始目标就很明确,就是 x86,但盖茨不知道卡特勒的私心。

所以,卡特勒梳理完对下一代服务器操作系统时做了三个期望:
1、可移植性:能兼容多个厂家的 CPU(这不是盖茨的目标)
2、个性化:能兼容多个用户态应用,如 OS/2、DOS、Windows
3、可靠性:不能因为操作系统崩溃、断电、磁盘损坏等原因造成数据丢失

我个人对可靠性印象最深刻。我过去用 Windows95、Delphi 跟踪代码时,老会跟踪跟踪就蓝屏,所以我养成了一个习惯,写点代码就不由自主按一下 Ctrl+S 进行保存。

1989 年 7 月,距离卡特勒到微软已经快一年了,盖茨必须要看看这帮家伙到底做出了点什么。

盖茨看到的是:一堆裸露的硬件元器件,可以点亮,并且在屏幕上显示一行字:Hello World!

这代表 CPU、内存、磁盘、电源、文件系统、引导程序、显示外设、字符显示,OK 了。

盖茨迫不及待需要一个倒逼时间表,问 NT 啥时候发布。卡特勒和盖茨做了一个讨价还价:1、NT 上不能跑 OS/2 应用也不能跑 DOS 应用(这其实已经破坏了鲍尔默和卡特勒一开始期望的个性化)2、NT 需要重写外设驱动程序(这意味着微软蓄积的大量硬件合作伙伴需要重写驱动程序并且重新测试,这个工作量可海了去了,这其实有点破坏了卡特勒最初提出的可移植性)。盖茨痛苦的接受了,卡特勒给出了时间截止日:1990 年 3 月 30 日刻黄金主盘。也就是说:NT 需要在十个月后发布。

因为盖茨有个著名言论,那就是:微软离死亡只有十八个月。所以微软的项目最长不能超过十八个月。

显然,卡特勒这次的倒逼时间是公司要求,而非现实时间。

二、项目经理来了

马瑞兹来了,来担任 NT 的项目经理。这又是显示了盖茨的煞费苦心。

微软的研发组织架构是:项目经理、产品经理、架构师和开发工程师、测试工程师。

马瑞兹是老手,曾经在 Intel 做过 5 年,熟悉 CPU、熟悉硬件。而且他一来了微软就负责过 Xenix、OS/2、Windows,也就是说,他对服务器操作系统、图形应用、跨操作系统应用都很熟悉。而且他的资源整合、项目推进能力很强。

后来,在微软 Windows 部门老大争夺战中,马瑞兹没有获胜,他就离开了微软,合伙创业了 VMWare。VMWare 虚拟机应用,恰好和他这段工作经历有关。

马瑞兹的目标是要把卡特勒的 NT 团队、威特莫的 Windows Shell 团队、鲁宾的网络团队整合在一起。

三、NTFS

很显然,NT 延期了。

说好的 1990 年 3 月发布,但是 1990 年的夏天,米勒和木村还在头疼要不要给 NT 做个新的文件系统。因为他们在兼容 DOS 和 OS/2 文件系统时痛苦不堪。不做吧,太痛苦了,做吧,时间不够。

但是他们忘了目标,不管是盖茨、鲍尔默、麦沃尔德、马瑞兹,都对 DOS 和 Windows 的不稳定性很看重,希望 NT 这回能彻底搞定。

当然,卡特勒也在最初设计的时候列了三大目标:可靠性。

为了保证可靠性,他们设计了 Client-Server 内核模式,让 CPU 和内存控制稳定下来;为了保证可靠性,他们要求重新设计和开发外设驱动程序,让外设控制稳定下来。现在唯一稳定不下来的就是存储系统的控制。

马瑞兹是率领过 Xenix 操作系统团队的,他能判断事情的重要性。所以他允许 NT 再次延期到 1991 年夏天,把 NTFS 文件系统加入进去。这意思就是:NT 要按照最初计划延期一年了。

(4)又延期了

一、又延期了:整合

事实上,到了 1991 年夏天,第一版集成的 NT 才完成,NT 内核终于和 Windows 应用、网络整合在了一起。至于说外设兼容性、应用兼容性,都还没来得及时间。

先进入自己吃自己的狗粮时间吧。自己酿的苦果得自己先尝。先让 NT 的研发团队首先采用 NT,让他们在上面编程序。

这不禁让我想起了 Vista 的研发过程。Vista 开始于 2001 年,计划在 2003 年发布。但实际上,2007 年才发布。

按说,已经在 2001 年发布的 XP,已经是 NT 内核了,只是上层附加了.NET 平台。

.NET 是全新的应用开发和运行平台。有.NET 虚拟机、编译器、开发语言(如 C#),也有.NET 组件模型(比 COM 更好的组件模型),也有服务间通信中间件 WCF,也有 UI 层 WPF。这是 1999 年由盖茨担任首席架构师亲自率领的.NET 战略。

想当年,1995 年美国互联网开始大热,1998 年手机大热,1998 年 JAVA 定义了 J2SE(桌面)、J2ME(移动)、J2EE(服务器),SUN 在企业级应用、互联网应用兴风作雨,让盖茨眼红不已。JAVA 有虚拟机、编译器、JAVA 开发语言,也有 EJB 组件模型,也有 RPC 进程间通信,也有桌面 UI、移动 UI、服务器 Servlet/HTML UI。

Whistler 和 Blackcomb 都是加拿大卑诗省的大型滑雪胜地,而 Longhorn 只是两座山脉之间的一个酒吧,要从 Whistler 到 Blackcomb,你必须经过 Longhorn。而 XP 的研发代号就是 Whistler,Vista 研发代号就是 Longhorn。也就是说,微软本来打算就是让 Vista 当个从 Windows NT 内核往.Net 更高一层应用内核升迁的过渡。没想到这个版本一下子憋了 6 年,和 NT 一样长。Vista 给了 Windows 团队致命一击。

Vista 犯的毛病和 NT 一样,又大又性能慢、研发时间长。而且 Vista 最终也没实现最初的定义设想:做一个 WinFX 新的文件系统,让桌面电脑本地搜索操作手法和在互联网上一样。

微软的人一开始乐观的估计 Vista 延期就延期呗,反正有 NT 珠玉在前,一旦出来,Vista 将会和 NT 一样成功。可惜历史不能复制(但是为什么 NT 却侥幸地成功了呢?这可是微软第一个完全自我研发的商用服务器操作系统)。

现在来看,CORBA、COM/.NET 组件、EJB 组件,现在回到了 Docker+Serverless。不知道盖茨是该哭呢还是该笑呢?我们看故事的同时,我们再深刻思考一下:.NET、EJB 当年解决的问题,现在解决了没,是怎么解决的?.NET、EJB 遗留下来的问题,现在解决了没,是怎么解决的?

二、又延期了:Active Directory

安全就根本没在所有人的目标定义中。

我们看看最初定义的三个目标:
1、兼容多个型号的 CPU,卡特勒倒是最后完成了,但这不是微软的目标
2、兼容多个型号的用户态应用,这个没有完成
3、可靠性。这个倒是完成了,用 Client-Server 内核模式、NTFS 文件系统、新外设驱动程序保证

1991 年 10 月份,大家才提出来安全怎么办?这离 NT 项目组立项已经 2 年多了。

安全,这也是个让我个人滑铁卢的事。

我曾经率领了上百人重构一代 ERP 全部套件。我最初的定义也是三个目标:
1、稳定性:不要让不同子模块修改影响了其他模块(我使用了物理分离、服务化的思路)
2、性能:要从架构层面解决复杂任务处理、高并发处理、海量数据查询统计处理的性能(我使用了各系统物理隔离部署、读写分离、多层缓存、主数据管理、数据仓库的思路)
3、可兼容性:不要让前端 UI 层每次都适配测试各个版本的主流浏览器(我建立了专门的 UI 架构组重新设计了统一 UI 层);不要让不同版本的子模块集成开发时费死牛劲(我梳理了接口现状定义了接口标准以及接口检查工具,并且全部整改成标准接口)

但是,我万万没有想到的就是:安全。

公司决策层要求放入安全,我觉得现在的团队(100 多人)、现在的改动量(全部 ERP 子系统)、现在的研发周期(长达一年)已经非常复杂了,大家都已经非常疲劳了,不要再加入大目标了。

但是....。

但我看到 NT 团队在高压研发 2 年后也被强制塞入安全性这个大目标时,我心有戚戚然。

不过好在,NT 团队成功了,Active Directory 成了 NT 伟大的特性,项目周期从 1991 年 10 月份又被拖到了 1992 年 4 月份。

三、尾声

1992 年 4 月份完成了 NT 的安全性控制,还有三个重要工作:
1、应用兼容性
2、外设兼容性
3、性能优化、性能压测:NT 团队都没有时间做代码的性能优化。NT 尺寸太大了,性能太慢了。最终,卡特勒宣布,NT 第一版本,放弃性能优化,但他承诺,下一个版本很快发布,目标就是性能优化。其实,卡特勒和他的 NT 团队再也承受不住 4 年的高强高压工作了,哪怕是一根稻草。卡特勒为了发布,把一个版本的事情被迫拆成了两个版本。

就光做应用兼容性、外设兼容性的测试和修改,就花费了一年的时间。

NT 最终发布,在 1993 年 3 月。

发布后,大量的 NT 团队成员离开微软,有的朝天开枪扫射缓减压力,有的长期接受心理辅导治疗。


版权声明:

凡本网内容请注明来源:T媒体(http://www.cniteyes.com)”的所有原创作品,版权均属于易信视界(北京)信息科技有限公司所有,未经本网书面授权,不得转载、摘编或以其它方式使用上述作品。

本网书面授权使用作品的,应在授权范围内使用,并按双方协议注明作品来源。违反上述声明者,易信视界(北京)信息科技有限公司将追究其相关法律责任。

评论