从NT开发过程中看到的东西_Showstopper! the Breakneck Race to Create Windows NT and the Next Generation at Microsoft书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > > Showstopper! the Breakneck Race to Create Windows NT and the Next Generation at Microsoft > 从NT开发过程中看到的东西
阿丹 Showstopper! the Breakneck Race to Create Windows NT and the Next Generation at Microsoft 的书评 发表时间:2009-08-13 12:08:09

从NT开发过程中看到的东西

    在这里要推荐下《观止-微软创建NT和未来的夺命狂奔》,非常精彩,讲述了windows NT开发过程中的人和事。这不仅仅是故事书,也可以看做一本项目管理方面的指南,可以看看这么巨大的项目(几百万行代码)所遭遇到的难题和痛楚。我更愿意将这本书当做《人月神话》的故事版,同样是创建划时代的OS,同样是管理众多人参与的大型的项目,也同样遭遇了种种困扰和痛苦,从这个角度也可以看出,人类的痛苦的相通的:)

   单纯从软件构建的角度去看这本书,可以说说我看到的东西,这些是我今天早上走在上班路上的时候想的,咳咳。

1、开发OS是烧钱的事情,NT开发接近5年,每年的花费据说在5000万美刀,那可是在90年代初期,换算成现在更是天文数字。从另一个侧面也说明了 linux系统的伟大。开发一个这么烧钱的玩意,如果没有管理层的强力支持,那么不是被砍掉,就是遭遇流产的命运,幸运的是NT团队得到了盖茨的鼎力支持,大概也只有他能这么烧钱了。Dave Culter从DEC辞职的原因也是因为管理层砍掉了他的团队。盖茨另一个做法是不干涉NT团队的开发工作,他只提出目标和期望,然后就偶尔过来看看,不对不知道的东西指手画脚,这点可不容易。

2、每日构建非常重要,NT团队的构建实验室一开始是每周构建,后来做到了每日构建。只有每日构建,持续集成,才能帮你掌控产品质量,及时发现潜在的问题。我们现在的项目使用了hudson,比CC容易配置一点,效果还不错。

3、测试极其重要,专业的测试团队对于大型项目来说尤其重要。除了测试人员之外,开发人员需要做自测,需要对自己check-in的代码负责,如果你签入的代码导致构建失败,那么Dave culter可能冲破墙壁进来,拍着桌子冲你咆哮。对check in必须做严格控制和跟踪,如果在项目的最后冲击阶段,除了showstopper级别的修正代码允许签入之外,其他的修改都不被接受。开发者和测试人员很容易存在对立,检讨自己,我对测试人员也存在偏见和某种程度上的轻视和厌烦,如果从就事论事和都是为一个目标努力的角度来说,测试和开发并不对立,两者是相辅相成,甚至于测试人员更为至关重要。

4、在一个长期而复杂的项目中,如何保持团队成员的士气也是个难事儿。软件开发归根到底是的因素是人,而非工具或者其他,关注人,其实就是在关注你的软件。鼓励士气的常见做法就是设定里程碑,在这个里程碑上发布一个重要版本,让大家看到希望,但是对于OS这样的巨型项目来说,里程碑不是那么容易设定,这从书中项目的不断延期可以看到。另外就是宽松的工作环境和假期,微软的工作环境有目共睹,能做到每个员工独立一个办公室的国内企业还没有吧。国外的开发者似乎很会玩,赛车、滑雪、空手道,其实不是我们不会玩,是我们玩不起,国内的待遇和生活压力让你想玩也玩不起。
   可是就算是再好的物质待遇,其实也换不来美好生活,书中充斥着开发者对家庭和婚姻的困惑和痛苦,为了NT,他们也失去了很多,对工作过度投入的后果就是失去平衡的家庭生活,再次验证上帝是公平的,有得必有失,就看你看重的是什么。

5、开发者的效率差异是惊人的,在《人月神话》里已经说明了这一点,开发者之间的效率差异可以达到惊人的10倍,在NT这样的团队里也再次验证了这一结论。

6、投入越多的人力,并不能带来效率的提升,当NTFS文件系统的进度拖慢的时候,微软的经理们考虑添加人手,但是经过慎重的考虑还是没有加人,因为文件系统是技术活,新人很难马上投入开发,而需要老手的带领和培训,引入了更多的沟通成本和培训成本。

7、优秀的代码无法通过行数来衡量,软件某种程度上还真是魔法的产物。

8、NT的一个教训是,应该及早设定你的性能目标,并在适当时候开始关注并优化系统。NT团队后期的很大部分工作都是在优化系统性能,并缩小尺寸。

9、设定Deadline常常是不靠谱的事情,对软件开发的时间估计也常常是不靠谱的事情,这一点从NT的一次又一次的延期可以看出。延期失望的不仅仅是客户,也会打击你的团队成员,遥遥无期的开发过程容易让人崩溃。

10、NT的开发贯穿了对市场的需求的考虑,有个牛X的产品经理还是相当重要的。当然,没有开发者喜欢添加新功能,特别是在已经完成一个新功能的情况下,以至发展到NT的开发者看到产品经理就不由得拿起球棒击墙的地步:)

   这本书花了我两个晚上看完,还是看故事有趣呀,上面所说只是我的印象,书中还有许多八卦故事老少咸宜,如果有出入,请看原著:) 有空还得重读下。

展开全文
有用 46 无用 3

您对该书评有什么想说的?

发 表

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“从NT开发过程中看到的东西”的回应

小皮 2009-12-27 11:34:54

  楼主总结的很不错。建议没有看的同学看过楼主的帖子就别买书了,翻译的很烂,很烂。计算机的图书一定要计算机专业的人来翻译才行,就像微软一定让那些写代码的人来做程序经理是一个道理。而且这种XX,XX,XX(等)翻译的书向来就品质不高。
  
  再者,技术的词汇,有时候不翻译反而会更好,否则就会造成一个showstopper级别的错误。

jay 2009-08-19 11:23:23

太薄了,两个小时就看完了。。

独守、寂寞 2009-08-13 20:44:32

hai zai kan mei kan wan

鹤少夜 2009-08-13 18:03:46

今天刚买了这本书……正在阅读中……

WQ 2009-08-13 17:00:35

对于类似的书籍,通常看过上面的总结就可以不看原书。谢谢!

星点@坚持正义的垂耳兔 2009-08-13 14:17:16

2、每日构建非常重要,NT团队的构建实验室一开始是每周构建,后来做到了每日构建。只有每日构建,持续集成,才能帮你掌控产品质量,及时发现潜在的问题。我们现在的项目使用了hudson,比CC容易配置一点,效果还不错。

这段说的应该是daily bulid吧...翻译的好烂...

[已注销] 2009-08-13 13:16:11

11 、为了你的家人和自己的身心健康,请远离卡特勒这种人。