梦断代码 读后感(II) 交流和时间

2014-02-25  来源:本站原创  分类:编程  人气:2 

几个星期前,我给《现代软件工程》课的每一个团队都发了一本 《Dreaming In Code》的中文版 《梦断代码》,要求写读后感。这本书讲了这样的故事:一群很有经验的代码牛人在先进软件开发模式的指导下,没有资金压力,在更多大牛的带领下,原计划用一到两年的时间开发出一个备受期待的个人信息管理软件(PIM),后来花了七年时间才完成这一创举,但是已经无人喝彩。我是9月份读的英文版,后来又翻阅了中文版,也有一些感想如下。

梦断代码 读后感(II) 交流和时间

时间和交流:时间对每一个人都是公平的,对每一个软件项目也是这样。

nearly all software projects require only 1/6 of their time for the writing of code and fully 1/2 of their schedule for testing and fixing bugs. But it was rare project manager who actually planned to allocate developers" time according to such a breakdown. [p17]

书中援引理论家的话说,最高效的软件团队规模应该是一个人,因为这样就不用交流了。 随着人数的增加,依赖关系的复杂,新手,老手员工之间的不同步,交流的成本会随着几何级数增加。在这里插播一个有奖竟猜:


当Windows 研发团队在开发Windows 2000的时候,团队内部每天有多少封e-mail 交流?
a) 90
b) 900
c) 9,000
d) 90,000

对每一个团队成员来说,他/她不仅要完成手头工作,还有报告自己的进展(通过email 或其他形式),回答别人的问题,了解其他人的进展。每个人的时间都是有限的,那怎么能保证我们在应付所有的交流/沟通之后,能有时间完成“手头工作”?

一个微软的同事前两天跟我说,他们最近没写什么代码,集中精力做“planning” 去了,大家写了很多PowerPoint,改了很多PowerPoint。然后给VP, General Manger 做了两轮汇报,然后根据VP们的意见再修改,再汇报。。。 PowerPoint 的风格变得非常专业和花哨,但是他们仍然没有完成Planning,进入实质开发阶段。华丽的 PowerPoint 中的每一个条目,也需要花PM 很多时间才能写明白,让VP 了解,同时也要花一线dev/test 很多时间才能实现,但是VP,PM 和 Dev/Test 面对同一个条目,他们心里想的是同一回事么?

外部交流

在Chandler 项目中,幸运的是,他们没有这么多VP 要汇报 (真正的VP - Al Gore 只露了一个小脸),但是我注意到他们用于交流的时间也非常多。例如

Every day the developers shared a chat room via Internet Relay Chat (IRC) [p139]

1 internal and 4 external email list set up.

blogs, wiki"s...

这些都是花时间的!我看到团队成员还要回复素未谋面的爱好者的各种问题(例如质问他们为何不用某某框架,等等),当然这种透明度也满足了很多人的好奇心,开源,社区的优点么。。。 另一方面,项目管理人员发现他们面对着大量的任务没有时间完成。就像第一章 Doomed 的开篇就说到:

John is doomed, he has 500 hours of work scheduled between now and the next release... [p11]

团队中其他人也好不到哪里去。那在这种情况下,是花时间继续参加各种讨论,blog,提供Transparency,满足大众的好奇心,还是集中精力把自己“手头的事” 搞定?我从书中没有看到经验丰富的管理人员这时候采取了什么措施。事实上,在产品发布之后,没有证据表明,那些在IRC,Email,BBS 上发了很多议论的爱好者未必真正下载并使用你根据他们的意见开发出来的软件。那这么忙于交流是为嘛?!

事实上,这么多交流和信息并不能帮助人们回答一个最重要的问题 -

What had each programmer accomplished in the past week, and what task was next? [p141]

我的故事 - 在MS Outlook97 发布之后,网上对这个V1 版本有很多意见,也有很多期待。 其中很多用户在 NewsGroup (新闻组) BBS 上发表了强烈的建议,要求Outlook 支持直接阅读 NewsGroup/BBS 的内容,当时只有Outlook Express 有这个功能。Outlook 的开发成员一度认为用户的要求太强烈了,如果我们没有这个功能,可能V2就会很不受欢迎 (几个dev 已经做了一个初始版本)。 但是大家仔细分析后发现,在BBS上强烈发言的,就是那么几个人,因为他们老用BBS,因此他们的需求特别强烈,并且好像声势浩大,但是别的大部分用户根本就不上BBS,因此也没机会表达意见。所以Outlook 决定不做 NewsGroup 的功能,一直到现在。

内部的交流

除了外部的交流,还有内部的交流,随着一个人经验的增多,会有很多其他人来找你,为大大小小的事咨询你的意见。然而你自己也有无数的任务要完成,怎么办?微软的员工对这种情况也不陌生,微软团队允许一些人 “Go Dark”,他们可以关起门自己干活,敲门不答应,不回答一般的email,不参加会议等等。

据说很早以前,BillG 把开发OS/2 API 的任务交给了一个牛人,这位前辈接受任务之后,并没有开新闻发布会,建立email distribution list, 或者QQ 群,而是挂了一个和下面类似的牌子在办公室门外,把门一关,一个人闷头开发去了。

梦断代码 读后感(II) 交流和时间

我们知道交流很重要,但是软件不是在QQ 群中交流出来的(当然,有人在QQ 群中交流别人写好的软件),而是一些人一行行写出来的。 这个过程需要集中注意力,避免打扰。在一个 “集市” 风格, “共享” 的开发氛围中,如何能保证关起门来开发呢?

//答案是 d)

本文出自:http://yishan.cc/blogs/xin/archive/2008/11/17/ii.aspx

相关文章
  • 梦断代码 读后感(II) 交流和时间 2014-02-25

    几个星期前,我给<现代软件工程>课的每一个团队都发了一本 <Dreaming In Code>的中文版 <梦断代码>,要求写读后感.这本书讲了这样的故事:一群很有经验的代码牛人在先进软件开发模式的指导下,没有资金压力,在更多大牛的带领下,原计划用一到两年的时间开发出一个备受期待的个人信息管理软件(PIM),后来花了七年时间才完成这一创举,但是已经无人喝彩.我是9月份读的英文版,后来又翻阅了中文版,也有一些感想如下. 时间和交流:时间对每一个人都是公平的,对每一个软件项目

  • 梦断代码 读后感(III)远虑和近忧 2014-04-09

    前文回顾: 梦断代码 读后感 (I) 驱动和责任 梦断代码 读后感(II) 交流和时间 几个星期前,我给<现代软件工程>课的每一个团队都发了一本 <Dreaming In Code>的中文版 <梦断代码>,要求写读后感.这本书讲了这样的故事:一群很有经验的代码牛人在先进软件开发模式的指导下,没有资金压力,在更多大牛的带领下,原计划用一到两年的时间开发出一个备受期待的个人信息管理软件(PIM),后来花了七年时间才完成这一创举,但是已经无人喝彩.我是9月份读的英文版,后来又

  • 梦断代码 读后感 (I) 驱动和责任 2014-04-22

    几个星期前,我给<现代软件工程>课的每一个团队都发了一本 <Dreaming In Code>的中文版 <梦断代码>,要求写读后感.这本书讲了这样的故事:一群很有经验的代码牛人在先进软件开发模式的指导下,没有资金压力,在更多大牛的带领下,原计划用一到两年的时间开发出一个备受期待的个人信息管理软件(PIM),后来花了七年时间才完成这一创举,但是已经无人喝彩.我是9月份读的英文版,后来又翻阅了中文版,也有一些感想如下. 1)驱动 到底是什么驱动程序员和管理人员,测试人员长年

  • 这段js代码得节约你多少时间 2015-04-25

    这段js代码得节约你多少时间,学习js的朋友可以参考下. 1.应用案例: var Mouse = function () { // Look! no that = this! this.position = [0, 0]; if (document.addEventListener) { document.addEventListener('mousemove', ?); //this.move? } else if (document.attachEvent) { document.attac

  • 代码详解C#比较时间的三种方法 2015-03-06

    C#比较时间方法1 比较时间大小的实验 C#代码 stringstr1="12:12"; stringstr2="14:14"; DateTimedt1=Convert.ToDateTime(str1); DateTimedt2=Convert.ToDateTime(str2); DateTimedt3=DateTime.Now; if(DateTime.Compare(dt1,dt2)>0)//大于 { Response.Write("str1&g

  • 梦断复试 过来人讲述考研失败经历 2013-10-27

    不是只有成功才值得我们去赞美,不是只有考研成功者才有资格发言.有勇气回首昨天的失败,这本身就值得为他们鼓掌.几位可敬的过来人写下文章的初衷,都是希望学弟学妹们不要重蹈他们的覆辙,前车之鉴,有时拥有更大的善意和力量. 专业知识和心态都准备不充分 刘娜 2007年报考天津大学通信与信息系统专业 我本科的专业是电子信息工程,考研第一志愿报考的是天津大学的通信与信息系统专业,我是2007年参加考研,众所周知,那年的分数较往年偏低,往年400分才可以称得上不错的成绩,那年考上400分的考生却是凤毛麟角.我

  • 1次订阅,间隔4个月,8天时间22封邮件,只为领略酷讯 2014-05-05

    最近在读<梦断代码>,第一次知道这本书的时候就被"两打程序员,3年时间,4732个bug,只为打造卓越软件"这句话深深打动.不过今天不是说梦断代码,只是在我的一个哥们就要加入酷讯的前夜(庆祝糊糊不用再用神州电脑了!),借用这句话说一下我对酷讯的敬仰.下图是我陆续收到的22封酷讯酷讯特价机票预约结果的邮件列表: 事情的经过是这样的,大约在今年的4.5月份,我正在满怀激情的规划着9月份将要举行的婚礼.其中对我来说很重要的一项就是和老婆一起辗转南宁从陆路进越南,旅行15天左右.这

  • 37 Signals的实用最小主义实践 2015-01-22

    尽管有那些可能性--复杂度.延误和不可预知的改动--还是有许多软件写出来.交付出去.而且最终被使用.偶尔软件会很好.在一些罕见情形下,软件的确有创新和价值.在一些案例中,还真按计划达成了目标. 在这些稀有案例中,成功往往是铁一般纪律的副产品--一种坚决做出又在每次遇到挑战时大声重申的选择,限制着项目的范围.在软件的成功故事中,你总 能发现善于拒绝的人们.如同有意只在调色板上涂抹一种颜色的画家.宁肯写十四行诗也不写自由体诗歌的诗人,或者只固守小规模优势产品线的厂商一样,成功的 程序员也在约束中成长

  • 著名豆腐渣软件项目:美国联邦调查局虚拟案件文档系统 2015-04-29

    导读:最烂的软件项目是什么?相信每个人都有不同的答案.中国铁道部12306一到假期就歇菜的特性,肯定跻身网民们心目中的烂项目TOP10.最近,奥巴马政府主导下的美国医疗网站HealthCare.org以上亿行代码之巨,远超Windows和Linux等大型系统软件代码量,也成功跻身烂项目候选名单.不过总的来说,12306不放假的时候还能工作,HealthCare.org也只是因为代码数量太多而不是功能无法实现而被人诟病.不过,下面这个 项目:美国联邦调查局虚拟案件文档系统(FBI Virtual

  • 团队!团队!团队! 2010-11-08

    (本文于2010.10.01发表在<草根>杂志第四期,LAMP交流超级群(500人):106382633) 现如今的商业社会中,几乎所有的行业都在以前所未有的速度发展,优化.虽然在这样的条件下催生出了不少所谓的"全才",但是仅仅一个人或是一部分人往往不能具备处理各种方面事务的能力,无论你是创建一个公司,还是完成一个项目,都离不开团队的协助和支持,以至于当下"团队"的地位已被提升到与企业共存亡的高度对待,这本无可或非,团队乃是任何事业的主根基,也是任何成功

  • 很多时候,是否好好看完一本好书,对一个人的提升往往能达到质的区别 2014-10-31

    很多时候,是否好好看完一本好书,对一个人的提升往往能达到质的区别 刘未鹏: 列一下我所认为的,你面试微软前必须要读的十本书: Code: The Hidden Language of Computer Hardware and Software (<编码的奥秘>) Computer System: A Programmer's Perspective (<深入理解计算机系统>) / Windows via C/C++ (<Windows核心编程> / <程序员的自

  • 各学科领域入门书籍推荐 2015-04-18

    看到果壳问答里有人要求推荐各学科入门书籍,想起以前正好做过类似的工作. 是在2009年的时候,集合了科学松鼠会和豆瓣的网友,一起推荐了这些书. 当时的要求是:"先写下你的专业领域,再回答这个问题'如果一个受过高中教育.但完全不了解你这个领域的人想学习之,你推荐哪本入门书籍?'".大量网友参与,最后总结了以下这些书.不过,最后列出来的书籍,恐怕不完全是高中水平能掌控的,也难怪,不是所有领域都能轻易入门的. 所以,最后我将这个列表定义为:"对想了解某个领域的初学者来说最值得推荐的

  • 现代软件工程讲义 目录 2013-12-17

    软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较乏味的课程. 但是软件工程的技术对于投身IT 产业的学生来说是非常重要的. 经过几年的探索, 我总结了在16周的时间内让同学们通过 "做中学 (Learning By Doing)" 掌握实用的软件工程技术的教学计划. 这套讲义在下面的学校正式课程中运用过: 2007 - 2010 清华大学理论计算机科学研究中心 (姚班) 主要是大四上学期 2009 北航计算机系 大三上学期 2010 – 2011 中科大-微软 计算机实验班 大

  • web前端.c++.项目管理.java.php书籍10-40/本,转让 2011-02-24

    本人因转行,又因经济困难,所以转让一下书籍.按标价出售,人在北京.联系qq:602505 可在东城区.中关村.回龙观等地当面交易. 书新旧程度全部在9成新以上. 点击书名查看书籍介绍和原价. 书目录及价格: Tomcat权威指南 20元 算法导论 30元 梦断代码 20元 JavaScript从入门到精通 20元 Java面向对象编程(蓝皮) 20元 项目管理之美 (china-pub 全国首发) 20元 PHP高级程序设计:模式.框架与测试(Zend F... 20元 Head First J

  • php格式化时间戳显示友好的时间实现思路及代码 2014-08-15

    显示为2014-10-20 10:22显得很呆板,那么用php怎么实现友好的时间格式呢?下面将思路与实现代码与大家分享下 在项目中时间一律显示为2014-10-20 10:22显得很呆板.在微博.QQ空间等网站通常会显示为几秒前,几分钟前,几小时前等容易阅读的时间,我们称之为友好的时间格式.那么用php怎么实现呢? 大体思路如下: 如果是跨年并且大于3天就显示为具体的时间 如果是今天的 如果是一分钟内则显示几秒之前 如果是一小时内则显示几分钟前 如果是当天且大于一小时则显示为几小时前 如果是昨天

  • js显示当前系统时间的代码 2015-01-15

    有时候我们需要用js获取当前系统时间,那么就可以参考下面的代码 js获取当前系统时间 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) myDate.getDate(); //获取当前日(1-31) myDate.getDay(); //获取当前星期X(0-6,0代

  • 胜间和代-时间投资法 2013-11-02

    书名:时间投资法──让你的年收入增加10倍 作者:(日)胜间和代 关键:时间需要的是"投资",而不是"管理" 解决的问题 ·如何在相对较短时间内创造同样的成果? ·如何规划时间? ·如何对重要的事情进行时间投资? "虽然不具备紧急性,但是必定能为将来节约时间起到作用"─III投资的时间 "即不重要也不紧急"─IV闲耗的时间 "紧急且重要"─I消费的时间 "紧急但不重要"─II浪费的时间

  • iOS应用开发入门指南 - 编写 Objective-C 代码 2014-07-25

    如果你刚开始接触 iOS 或 Mac OS X 编程,首先要学习一点编程语言 Objective-C 入门知识.Objective-C 并不是一门复杂的语言,经过一段时间的接触,你就能体会到它的优雅.Objective-C 语言实现了严格的面向对象编程.它扩展了标准 ANSI C 语言,增加了定义类和方法的语法.它还推行类和接口的动态扩展性,使任何类都能适配和采用. 如果你已经掌握了 ANSI C 语言,下面的内容能够帮助你掌握 Objective-C 的基本语法.如果你有其他面向对象编程语言的

  • 11 个高效的同行代码评审最佳实践 2014-08-20

    简介:这 11 项针对轻量级高效同行代码评审最佳实践被证明是有效的,它们建立在一个通过结合使用 IBM® Rational Team Concert™ 与 SmartBear CodeCollaborator 对 Cisco 系统的开发进行案例研究的基础之上.它们可以帮助您确保评审既能够改进您的代码,又能利用好开发人员的时间. SmartBear Software 团队® 花费了数年时间去搜索已有的代码评审研究成果,并从来自超过 100 家公司的 6000 多名程序员那里,收集了"实践经验&qu

  • 一个省级博物馆的微信梦 2015-02-20

    第一家玩转微信的广东省博物馆,野心勃勃,不断通过微信推出新增在线服务,有的举措,例如微信导览平台,甚至可谓自断财路. 短短两年时间,微信以惊人的增长速度步入"青春期",张扬.莽撞,甚至迷茫.除了不断将触角伸向媒体(含自媒体).明星.餐饮.快消.电商(含社会化电商).图书.家电.医疗等领域,如今连博物馆也跟着微信疯狂了一把. 广东省博物馆微信正式进军公共服务领域,也成为该领域第一家玩微信吃螃蟹的官家.目前,广东省博物馆已正式启用微信公众账号,推出国内首例微信导览平台. 线上功能:用户可直