《梦断代码》读后感(第1~6章)

    书名:"Dreaming in Code",作者:Scott Rosenberg(中译本:《梦断代码》,翻译:韩磊,电子工业出版社出版)。
 
  • 第1章 【死定了】
        在这一章中,作者主要讨论的一个问题是——在项目进展迟缓,面临延期交付窘境的情况下,是否应该征召新人加入团队?
        很显然,这样做的好处是:会有更多的人参与到项目开发中来,更多的人阅读代码,从而获得更大的发现并解决错误的可能性。作者在书中援引瑞蒙德(Eric S. Raymond,《大教堂与集市(The Cathedral and the Bazaar)》一文的作者)的原话“只要有足够多的beta版测试人员和开发者队伍,几乎所有问题都会很快被发现,而且总有人知道该怎么修复。或者用不太正式的说法,‘眼球足够多,缺陷无处躲。’我把这叫做‘李纳斯法则’。“而Linux操作系统和许多开源项目成功的案例就为这条法则做了十分生动的注脚。
        但是与‘李纳斯法则’相对应的,还有一条‘布鲁克斯法则’(《人月神话(The Mythical Man-Month)》,Frederick Brooks):”往已延误的项目中补充人力,只会使其继续延误“。这条法则也有其合理的依据:每加入一个新人,都需要开发团队暂缓开发进度,为新人讲解工程结构,使其融入整个工程,而这个过程本身便会拖累项目进度。
        我想这两条法则各有其成立的背景,而其中非常重要的一点就是团队内的交流成本。开源项目背后往往有一个庞大的开源社区,这个社区内的程序员们通常都是出于自己的个人爱好而为项目出力。一个新人在社区上提出的问题往往有很多人知道答案并能很快得到解答,这些人可能只是由于加入社区或关注项目更早,获得了更多的信息和经验,而非真正的核心开发人员,因而这个”帮助新人融合”的环节就不太会拖累工程的进度。总而言之,开源社区因其规模效应使得核心开发人员可以将精力集中在开发上,而每加入一个新人的“融合成本”均摊到余下的“社区志愿者”身上以后就变得十分渺小了。可是像卡普尔的这个规模相当有限的Chandler团队,成员是领受薪水的,每个人都承担了相当的任务,几乎都是项目开发中不可或缺的一员。这样的情况下,任何一个人的进度迟缓都会影响到整个项目的进展,因而布鲁克斯法则就会起主要作用。
        对于我们这个Focus小组来说(其实其他的软工小组也一样),还是和Chandler更像一些:每个成员负责项目中的某一块,且一个成员的延误会拖累整个项目。况且征召新人对我们来说也不现实,因此,为了保证项目进度的正常进行,PM就要保证每个开发人员都在正常的运作,并且最关键的是:在关键的时间节点上能够出活。在这一点上,我们也是深有体会的:项目开发的初期阶段,PM早早地制定好了项目框架和接口设计,负责数据存取和与Google Calendar同步的开发人员也较快地完成了任务,UI部分则相对进展慢一些,尤其是负责实现Task Pool的成员,因为忙于其他事情而较晚将精力投入到项目开发中来。期间PM向组内不定期的发邮件通告项目各部分的进展,让进展较慢的开发人员时时感受到压力的存在。最终,进展较慢的开发人员也通过在alpha release前4天开始拼命干活完成了预定任务,保证了整个项目的正常进度。
12:38 PM | Add a comment | Read comments (1) | Permalink | Blog it | [ASE课程]
http://scheduleyourlife.spaces.live.com/blog/cns!A564B56821C5E3FA!186.entry#comment
xin 邹欣 - Dec. 13, 2009 - Delete

在现在比较成熟的社区模式中,代码签入还是有各种等级的人来批准,不是谁想干什么就干什么。 从这一点来说,有点吸取了正式团队的做法。

现代软件工程系列 学生读后感 梦断代码 布鲁克斯法则相关推荐

  1. 现代软件工程系列 学生读后感 梦断代码 SpringGreen

    "拿来的代码所不能做到的部分,恰是项目与众不同的创新之处". <梦断代码> 终于看完了<梦段代码>.      其实整本书就是讲图灵机的不可判定性----软 ...

  2. 现代软件工程系列 学生读后感 梦断代码 软件难做

    http://cid-064ec84e17924332.spaces.live.com/blog/cns!64EC84E17924332!173.entry December 06 读<梦断代码 ...

  3. 现代软件工程系列 学生读后感 梦断代码 DTSlob (2)

    http://dtslob.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=amonth%3d1 ...

  4. 现代软件工程系列 学生读后感 梦断代码 DTSlob (1)

    1 As you see, I've marked this post Number 1. Let's leave the last post on "Dreaming in code&qu ...

  5. 《梦断代码》读后感 - 驱动,责任,交流,远虑

    这三篇读后感原来发布在我自己申请的域名 yishan.cc 上面,后来这个域名被墙了.   (原文写于2008年12月) 几个星期前,我给<现代软件工程>课的每一个团队都发了一本 < ...

  6. 《梦断代码》读后感2

    这次,我读了<梦断代码>第4章乐高王国,第5章管束奇客和狗,第6章搞掂设计方案. 在乐高王国这一章中,我看到了"牛仔程序员",就如同软件工程老师所讲的,四种人,第一等人 ...

  7. 梦断代码读后感(一)

    一个百无聊赖的下午,天空黑沉,寒风刮过大地. 无所事事我的想起了这本厚重的书--<梦断代码>: 梦断? 难道自己专业的书籍不该赞扬不该大肆宣传本专业吗? 梦断这个词很难让人联想到好的方面, ...

  8. 现代软件工程系列 学生和老师都不容易

    老师的难处 - V2.0 的困难 有笑话说某人请客, 客人无论是坐轿或是步行前来, 主人都能奉承一番. 有客人说自己是爬着来的, 主人奉承说  - 稳妥之至! 据说有些学校的有些课还是沿用 N 年前的 ...

  9. 梦断代码阅读笔记之一

    最近阅读了罗森伯格的<梦断代码>,算是近距离观察了十几年前软件开发的状态.这本书是作者对OSAF主持的Chandler项目进行田野调查  而写的一本书.本书是在讲一事,也是在讲百千事:是写 ...

最新文章

  1. 全面解析YOLO V4网络结构(附代码讲解)
  2. 在汇编程序中调用C语言的库函数,h转inc
  3. 再见 Maven,我用它!!!
  4. VTK:Points之FitImplicitFunction
  5. 在Oracle Linux 7上通过官方Repo在线安装SQL Server 2017
  6. WinForm UI设计与开发思路(转)
  7. Redhat Enterprise 6 下安装Oracle 11g报错
  8. doc.update
  9. rabbitmq AmqpClient 使用Fanout 交换机投递与接收消息,C++代码示例
  10. javascript学习一、js的初步了解
  11. C语言九九乘法表的代码(含注释)
  12. STC15F2K60S2单片机利用24C02记录单片机上电次数
  13. ceph的 cache tier实现分析
  14. Mac如何共享wifi热点
  15. 人文讲座之《阳明心学与今日中国》
  16. 还在为英语学习发愁吗?身为程序员的你可能需要这样一份“宝典”(上)
  17. MySQL入门系列:视图
  18. 春季实习生校园招聘总结
  19. csu1671 经营小卖部(DP 完全背包 好题)
  20. Could not inflate Behavior subclass

热门文章

  1. 转 从红帽、GitHub和Docker看开源商业模式的进阶
  2. 反射应用二:利用反射加配置文件实现多数据库的访问
  3. 动态规划 所有题型的总结
  4. Tomcat基础教程(一)
  5. 计算机网络——码元,波特,速率和带宽
  6. linux at24测试程序,linux 2.6下eeprom at24c08 i2c设备驱动(new style probe方式)
  7. 检测oracle的语句,oracle功能检测sql语句
  8. android自定义adapter怎么优化,Android必学-BaseAdapter的使用与优化
  9. Python找出某元素的索引下标
  10. QT学习笔记(三):Qt软件打包发布(QT5.8 _msvc2013_64+Win10_64)