今晚总算把《观止》看完了,看得比较快,基本上是当叙事小说一样看。这个书名看起来像文艺书,但实际上是讲述Windows NT这个操作系统的创造史。为什么Windows NT这么出色,因为在当时它的诞生改变了人们对操作系统的看法,它引入了现在我们看起来很理所当然但当时还没有的技术:抢占式的多任务处理、可安装在通用的硬件平台、支持32位内存寻址、支持大容量文件并具有容错功能的NTFS(NT File System)等等。当然这些系统功能并没有在书上描述,这本书从头到尾都是在讲述整个NT团队是如此在艰苦的进度压力和技术压力之下花了将近5年时间创造出NT。
这个NT团队的领导人就是Dave Cutler,性格独断脾气火爆,技术牛B,现在来说就是一个传奇的程序员,当他领导NT团队的时候已经是个快50岁的人了。有个小插曲或者会更令人记住他是谁,就是当他招聘小秘的时候会问一个问题“How do u think about the word ‘fuck’?”,只有那个回答了”Its my favorite word”的MM才拿到了offer。
从1988年10月开始到正式发布的1993年7月23日,历时接近5年时间,团队从开始的20多人到最后的200多人,在这5年时间里面NT团队面对的是各种功能需求的增加、遥遥无期的进度、不断冒出的bug,还有其他非技术问题,如家庭和爱人,可以说是可歌可泣,NT团队的每个成员为Windows NT奉献太多了。
虽然看得比较快,但是一些体会还是想记录一下,以后有时间再翻出来看或者也会有不同的体会。
从本来只有一个内核开发的团队,到后面慢慢增加了图形开发小组和网络开发小组,整个团队大部分人都是物理和数学出身,毕竟从理科出身的容易投入到计算机行业,加上当时计算机行业还远没现在这么热门。由于当时NT的目标定得比较高,因此很多迎合市场的需求都被添加到功能列表中,并要求兼容以前的DOS和Windows程序,不停地添加功能需求以及保证兼容性基本上就直接导致了进度问题,由于领导的Dave Cutler是个基本上为了NT放弃了家庭的人,因此给NT的团队带来的直接影响就是在进度压力之下的疯狂加班,纵然如此,但是在微软的给予的高股票期权和Cutler的压迫之下,团队的成员也是能积极高效地工作,其实这里,我还觉得有个原因是在这种环境之下驱动大家去工作的,就是大家都希望能够创造出一个出色的产品,虽然工作辛苦,但是这种渴望创造的欲望也是驱动团队成员努力工作的一个原因。
程序员、测试员和构建员是组成NT团队的主要3个角色,在那个年代,测试员和构建员的地位并不高,但是慢慢程序不断地被挑出bug并不断地被完善,越显得测试员和构建员的重要性。相比于目前自己所做的项目,哪怕是相差20年,目前我们项目的流程还是比不上那时的NT团队。每个程序员的commit都是基于不会导致构建失败的前提下,当然构建的时机可能是即时也可能是固定某个时候,但是每个程序员的commit都是使构建能正常进行的,整个流程都是井然有序地进行。而且,更让我欣赏NT团队的是,在项目的后期,Dave Cutler甚至是长期定居在构建实验室,来专门看每个程序员提交的各种代码,来保证程序代码的质量,那么多不知道他怎么看得过来。对于程序员犯的错误,Dave Cutler可是不留情面地批评,或者正是这种领导的压迫之下反而提高了团队成员的代码严谨,或者可以说是领导威严的作用。
团队规模变大,可能就增加了成员之间对技术问题的冲突,但是正如书上说,这种冲突有时候会激发对程序代码的改进,其实倒觉得这种冲突是来源于对自己代码逻辑的自信,或者说是个性鲜明,和提倡中庸之道的国内还是有点区别。
到了项目后期,真的可以算得上夺命狂奔,因为有了deadline,所以对bug的分类控制、暂停新功能需求的加入、不停的压力测试、客户的bug反馈和beta版的多次发布等等,各个成员都日以继夜地修正各种showstopper和一等级的bug。
最后Windows NT发布了,微软就站在了操作系统的顶峰了。而从始自终,Gates都没有对NT团队有什么干预,只是定期了解开发进度和进行产品的测试,给了NT团队很大的自由度。
《观止》这本书虽然只是描述了整个NT的创造史,其实更像一本项目管理的书。
外国人吗? 怎么博客全是英语的?