第二章程序员与程序经理 工作在第一线的软件开发人员是程序员和程序经理,他们决定者软件的命运。良好 的程序员队伍和出色的管理是软件项目成功的必要条件。管理不是管制,不是去卡住人 家的脖子,因为程序员不是一群野鸭子。管理的目的是让大家一起把工作做好,并且让 各人获得各自的快乐和满足。当一个组织被出色地领导时,雇员甚至不知道他们己被领 导。在项目完成时,他们会自豪地说:“看看我们通过努力取得的成绩吧”。所以管理者 不能老惦记者自己是一个官,而应时刻意识到自己是责任的主要承担者。 我们经常会听到有经理头衔的人在高谈阔论:“编程我不会,做个项目还不esy?派 个人去搞系统分析,回头再叫几个程序员把需求译成程序,不就OK了吗?” 不懂英语的人准以为©y和O水是贬义词。要让软件项目失败很容易,只要符合下 列条件之一即可: (1)项目经理对软件一无所知 (2)技术负责人对编程不感兴趣: (3)真真编写代码的程序员是临时雇用的。 如果上述三个条件同时具备,就请放心失败好了。 让我们少幻想自己是比尔·盖茨,先当好程序员和程序经理再说。 2.1了解程序员 早期的程序员干活能从软件直通硬件,个个生猛无比。又因他们的作息时间、言行 举止与常人不太一样,久而久之就给人们留下了“神秘”、“孤僻”的印象。如今软件行 业被炒得热火朝天,有能耐的程序员即便躲在大山岙的军工厂里也能被挖出来。而更多 原本不是程序员的人操起几本“速成”、“二十一天通”等书箱也加入了这个行业。现在 国内号称有上百万程序员,这支大军鱼龙混杂,己搞不清那些是正规军,那些是民兵游 击队了. 真正的程序员都有如下秉性: 一、诚实 程序员在学习与工作期间几乎天天与机器打交道,压根就没有受欺骗或欺骗人的机 会。勤奋的程序员在调试无穷多的程序Bg时,已经深深地接受了“诚实”的教有。不 成实的人,他背定不想做、也做不好程序员。 有一名市场营销员和一名程序员都在新闻发布会上发言,将一项新技术的消息公布 千众。 市场营销员说:“这项技术比电话、品体管和原子弹三项发明加起来对世界文明的影 响都要大。” 程序员说:“这项技术在有限的领域内,在有限的程度上,解决了一些技术性的问
1 第二章 程序员与程序经理 工作在第一线的软件开发人员是程序员和程序经理,他们决定着软件的命运。良好 的程序员队伍和出色的管理是软件项目成功的必要条件。管理不是管制,不是去卡住人 家的脖子,因为程序员不是一群野鸭子。管理的目的是让大家一起把工作做好,并且让 各人获得各自的快乐和满足。当一个组织被出色地领导时,雇员甚至不知道他们已被领 导。在项目完成时,他们会自豪地说:“看看我们通过努力取得的成绩吧”。所以管理者 不能老惦记着自己是一个官,而应时刻意识到自己是责任的主要承担者。 我们经常会听到有经理头衔的人在高谈阔论:“编程我不会,做个项目还不 easy?派 个人去搞系统分析,回头再叫几个程序员把需求译成程序,不就 OK 了吗?” 不懂英语的人准以为 easy 和 OK 是贬义词。要让软件项目失败很容易,只要符合下 列条件之一即可: (1)项目经理对软件一无所知; (2)技术负责人对编程不感兴趣; (3)真真编写代码的程序员是临时雇用的。 如果上述三个条件同时具备,就请放心失败好了。 让我们少幻想自己是比尔·盖茨,先当好程序员和程序经理再说。 2.1 了 解 程 序 员 早期的程序员干活能从软件直通硬件,个个生猛无比。又因他们的作息时间、言行 举止与常人不太一样,久而久之就给人们留下了“神秘”、“孤僻”的印象。如今软件行 业被炒得热火朝天,有能耐的程序员即便躲在大山岙的军工厂里也能被挖出来。而更多 原本不是程序员的人操起几本“速成”、“二十一天通”等书籍也加入了这个行业。现在 国内号称有上百万程序员,这支大军鱼龙混杂,已搞不清那些是正规军,那些是民兵游 击队了。 真正的程序员都有如下秉性: 一、诚实 程序员在学习与工作期间几乎天天与机器打交道,压根就没有受欺骗或欺骗人的机 会。勤奋的程序员在调试无穷多的程序 Bug 时,已经深深地接受了“诚实”的教育。不 诚实的人,他肯定不想做、也做不好程序员。 有一名市场营销员和一名程序员都在新闻发布会上发言,将一项新技术的消息公布 于众。 市场营销员说:“这项技术比电话、晶体管和原子弹三项发明加起来对世界文明的影 响都要大。” 程序员说:“这项技术在有限的领域内,在有限的程度上,解决了一些技术性的问
题。” 看来为了让我们的民族更加诚实,学电脑真的要从娃娃抓起 二、简单一一实用主义 有人问一个数学家,一个物理学家和一名程序员:“一个盒子有几个面?” 数学家回答说:“有六个面,因为盒子是长方体。” 物理学家回答说:“有12个面,分为6个外表面和6个内表面。” 程序员回答说:“只有两个面,里面放电路板和硬盘,外面放显示器和键盘。” 目前即使最先进的计算机也不具备智能,程序员的基本工作就是把复杂的问题转化 为计算机能处理的简单的程序。如果一个问题复杂到连程序员自己都不能理解,他就无 法编出程序让更笨的计算机来处理。所以程序员信奉“简单 实用”主义。 也有不少做计算机“学问”的人颠倒行事。本来几句话、几行程序就能说明白的事, 非得要抬高到理论创新的程度,写成玄乎的文章去评教授或者弄个博士学位。所幸在第 线工作的程序员大多是实干的。 三、爱憎分明 程序员大都喜欢技术挑战,不喜欢搞测试与维护。高水平的程序员喜欢与高水平的 程序员一起工作,因为他们怕“与臭棋佬下棋,棋越下越臭”。程序员大都厌恶拉帮结派、 耍政治手腕。不信,数一数你认识的程序员,有几个是党派人士? 四、工作单调但不乏味 有人问编程大师:“程序设计的真正含义是什么?” 大师回答说:“饿了的时候就吃,困的时候就睡,只要时机恰当就进行程序设计。” 其实程序员的生活和工作已融为一体,尽管单调却不乏味,还能独享孤独。有诗为 证: 我编程三日 两耳不闻人声 只有硬盘在歌唱 结论:优秀的程序员没有理由不让人喜欢,他们远比怪僻来得可爱。 2.2了解程序经理 这里程序经理是指一支程序员队伍的领导者,不管他的职务是开发组长,项目经理 还是部门经理。程序经理是技术性的基层或中层干部,是软件企业得以发展的生力军 程序经理的选拔是不容草率的事。不象有些事业单位,只要政治口号喊得勤快、能左右 逢缘不犯错误就可混个领导当当。也不象一些官僚机构,只有两个人的办公室也要设正 主任和副主任。如果碰巧正主任姓傅,副主任姓郑,还会斗个没完没了。 在一个管理混乱的软件公司里,如果某个程序员能大喊大叫并且干劲十足,那他就 2
2 题。” 看来为了让我们的民族更加诚实,学电脑真的要从娃娃抓起。 二、简单——实用主义 有人问一个数学家,一个物理学家和一名程序员:“一个盒子有几个面?” 数学家回答说:“有六个面,因为盒子是长方体。” 物理学家回答说:“有 12 个面,分为 6 个外表面和 6 个内表面 。” 程序员回答说:“只有两个面,里面放电路板和硬盘,外面放显示器和键盘。” 目前即使最先进的计算机也不具备智能,程序员的基本工作就是把复杂的问题转化 为计算机能处理的简单的程序。如果一个问题复杂到连程序员自己都不能理解,他就无 法编出程序让更笨的计算机来处理。所以程序员信奉“简单——实用”主义。 也有不少做计算机“学问”的人颠倒行事。本来几句话、几行程序就能说明白的事, 非得要抬高到理论创新的程度,写成玄乎的文章去评教授或者弄个博士学位。所幸在第 一线工作的程序员大多是实干的。 三、爱憎分明 程序员大都喜欢技术挑战,不喜欢搞测试与维护。高水平的程序员喜欢与高水平的 程序员一起工作,因为他们怕“与臭棋佬下棋,棋越下越臭”。程序员大都厌恶拉帮结派、 耍政治手腕。不信,数一数你认识的程序员,有几个是党派人士? 四、工作单调但不乏味 有人问编程大师:“程序设计的真正含义是什么 ?” 大师回答说:“饿了的时候就吃,困的时候就睡,只要时机恰当就进行程序设计。” 其实程序员的生活和工作已融为一体,尽管单调却不乏味,还能独享孤独。有诗为 证: 我编程三日 两耳不闻人声 只有硬盘在歌唱 结论:优秀的程序员没有理由不让人喜欢,他们远比怪僻来得可爱。 2.2 了 解 程 序 经 理 这里程序经理是指一支程序员队伍的领导者,不管他的职务是开发组长,项目经理, 还是部门经理。程序经理是技术性的基层或中层干部,是软件企业得以发展的生力军。 程序经理的选拔是不容草率的事。不象有些事业单位,只要政治口号喊得勤快、能左右 逢缘不犯错误就可混个领导当当。也不象一些官僚机构,只有两个人的办公室也要设正 主任和副主任。如果碰巧正主任姓傅,副主任姓郑,还会斗个没完没了。 在一个管理混乱的软件公司里,如果某个程序员能大喊大叫并且干劲十足,那他就
能成为一名程序经理。微软公司在选择经理人员时,总是把他们的技术知识和运用技术 去赚钱的能力放在首位。程序经理一般就是程序员队伍中最聪明的那个家伙。比尔·盖 茨曾这样描述聪明人[Cusumano1996]: 聪明人一定反应敏捷,善于接受新事物。他能迅速进入一个新领域,给你一个头头 是道的解释。他提出的问题往往一针见血、击中要害。他能及时掌握所学知识,并且博 闻强记,他能把本来认为互不相干的领域联系在一起使问题得到解决。他富有创新精神 与合作精神. 好的程序经理应该具备以下几个条件: 一、技术水平是程序员队伍中的最高级别 每个程序员骨子里头都有一股做气,如果你不能技压群雄,他们就不会听你指挥 一个技术水平较差的人被任命为程序经理真是个悲剧,就象一个略有权势的太监,表面 上有人对他点头哈腰,背后却被人鄙视。 二、能做最多且最难的工作 程序经理编程要快且好。别人要干一天的话,他半天就能做完,这样才会有精力去 搞管理。程序经理应负责系统分析、系统设计这类最难的开发工作,并指导不同水平的 程序员把各自的工作做好。如果人手不够,程序经理要能同时干几个人的活。 三、有人格魅力 软件开发是智力创作过程,你不能指望仅通过执行规章制度来产生好的作品。很多 软件公司的程序经理都不是管理专业出身的,他们也不可能为了搞好管理而成天玩弄心 机。技术出色的程序经理一般少有心术不正的,所以管理的重点应是“以身作则”、“公 正待人”。如果程序经理在上班时趴在桌上睡觉,其他程序员也会这样干。如果程序经理 发现有两个程序员趴在机器旁睡觉,不能只对其中一个大声吼叫:“你一编程就想睡觉 看看人家,在睡觉时都想若锦程。” 如果管理者没有人格魅力,就没有人信服你,团队就不会有凝聚力,乌合之众不可 能开发出优秀的软件。 结论:一个有活力的软件公司的各级经理都不会这样感叹,“因为我啥也不会干,所 以只好当领导。 2.3程序员升为经理后是否还要编程 让我们先看看Microsoft公司的系统软件部门与应用软件部门的领导是怎样看待这 个问愿的Cusumano996]。Windows NT3.0项目的软件经理娄·帕雷罗里让他手下的经理
3 能成为一名程序经理。微软公司在选择经理人员时,总是把他们的技术知识和运用技术 去赚钱的能力放在首位。程序经理一般就是程序员队伍中最聪明的那个家伙。比尔·盖 茨曾这样描述聪明人[Cusumano1996]: 聪明人一定反应敏捷,善于接受新事物。他能迅速进入一个新领域,给你一个头头 是道的解释。他提出的问题往往一针见血、击中要害。他能及时掌握所学知识,并且博 闻强记,他能把本来认为互不相干的领域联系在一起使问题得到解决。他富有创新精神 与合作精神. . 好的程序经理应该具备以下几个条件: 一、技术水平是程序员队伍中的最高级别 每个程序员骨子里头都有一股傲气,如果你不能技压群雄,他们就不会听你指挥。 一个技术水平较差的人被任命为程序经理真是个悲剧,就象一个略有权势的太监,表面 上有人对他点头哈腰,背后却被人鄙视。 二、能做最多且最难的工作 程序经理编程要快且好。别人要干一天的活,他半天就能做完,这样才会有精力去 搞管理。程序经理应负责系统分析、系统设计这类最难的开发工作,并指导不同水平的 程序员把各自的工作做好。如果人手不够,程序经理要能同时干几个人的活。 三、有人格魅力 软件开发是智力创作过程,你不能指望仅通过执行规章制度来产生好的作品。很多 软件公司的程序经理都不是管理专业出身的,他们也不可能为了搞好管理而成天玩弄心 机。技术出色的程序经理一般少有心术不正的,所以管理的重点应是“以身作则”、“公 正待人”。如果程序经理在上班时趴在桌上睡觉,其他程序员也会这样干。如果程序经理 发现有两个程序员趴在机器旁睡觉,不能只对其中一个大声吼叫:“你一编程就想睡觉, 看看人家,在睡觉时都想着编程。” 如果管理者没有人格魅力,就没有人信服你,团队就不会有凝聚力,乌合之众不可 能开发出优秀的软件。 结论:一个有活力的软件公司的各级经理都不会这样感叹,“因为我啥也不会干,所 以只好当领导。” 2.3 程序员升为经理后是否还要编程 让我们先看看 Microsoft 公司的系统软件部门与应用软件部门的领导是怎样看待这 个问题的[Cusumano1996]。Windows NT 3.0 项目的软件经理娄·帕雷罗里让他手下的经理
们像他一样每天花一半的时间编写代码: 我在组内制定了许多规则,其中最重要的一条是每个人都得编程,谁也别想坐在那 儿发号施令.我发现管理者很容易失去目标,他们总是无法认识到问题的本质并且反 应迟缓。如果你始终不放弃编写代码,你就能对项目的进展情况了如指掌,及时发现并 解决问题.我大概每天花一半的时间偏写代码并寻找项目的缺陷 作为应用软件领域的经理,克里斯·彼得斯也持同样的看法。在他任WOrd项目总 经理时就认为 在一些大公司内部,各部门经理把具体操作的层次向下移。你一旦当上开发部门经 理,很快就会以自己身居高位、日理万机为由放弃编程;同样地,开发小组的组长会以 自己重任在肩而不愿编程:至于程序员也会觉得自己十分繁忙、分身无术而不再多编写 程序。虽然我是270名员工的领导,似乎不再需要做什么具体的工作了,但我还是为 Word新版本编写了一个特性。 程序员升为经理后一定要编程,这个道理已经说得很清楚了。最怕的是“虚心接受, 坚决不做”;或者仅是做个样子,每天花一分钟时间编程,编译器还没运行完就关掉了。 2.4经理与技术队伍的建设 如果是经营一个加工厂或一个饭店,经理们可以不必懂技术。因为他们的常识,以 及通过耳闻目睹或者咨询都能解决实践中的问题。在软件领域,技术的力量是无穷的 一天之内就可使整个产业发生巨变。也许你在商业上很精明,但无法保证自己在技术浪 潮中安然无恙。软件公司的各级经理最好既精通技术又懂管理 个出色的领导,加上一支技术过硬的队伍,才有可能创造业绩。不能光指望请来 孙子或诸葛亮当教练,就能让弱不禁风的男足去捧世界杯。不少人总喜欢自吹中国人很 聪明,最适合搞软件开发。可至今也没有做出几个很光彩的软件来,这与十三亿人口不 呼应啊。新中国历来喜欢与可怜的印度相比较来展现丰富多彩的优越性,可是软件产业 没法与人家比。工作在第一线的程序员与程序经理应该意识到:好兵好将都不是天生的 是后天练出来的:既要学会冷静地分析问题,又要充满激情地去工作。 软件公司总希望能物色到慨精通技术又善长商业的优秀人才做经理。但已经出名了 的优秀人才难以请到,也难以留住。所以把公司中的普通员工培养成为优秀人才是重要 的举措。公司的老板不要对程序员抱有偏见,以为他们只配与机器打交道。一个高水平 4
4 们像他一样每天花一半的时间编写代码: 我在组内制定了许多规则,其中最重要的一条是每个人都得编程,谁也别想坐在那 儿发号施令. . 我发现管理者很容易失去目标,他们总是无法认识到问题的本质并且反 应迟缓。如果你始终不放弃编写代码,你就能对项目的进展情况了如指掌,及时发现并 解决问题. . 我大概每天花一半的时间编写代码并寻找项目的缺陷。 作为应用软件领域的经理,克里斯·彼得斯也持同样的看法。在他任 Word 项目总 经理时就认为: 在一些大公司内部,各部门经理把具体操作的层次向下移。你一旦当上开发部门经 理,很快就会以自己身居高位、日理万机为由放弃编程;同样地,开发小组的组长会以 自己重任在肩而不愿编程;至于程序员也会觉得自己十分繁忙、分身无术而不再多编写 程序。虽然我是 270 名员工的领导,似乎不再需要做什么具体的工作了,但我还是为 Word 新版本编写了一个特性。 程序员升为经理后一定要编程,这个道理已经说得很清楚了。最怕的是“虚心接受, 坚决不做”;或者仅是做个样子,每天花一分钟时间编程,编译器还没运行完就关掉了。 2.4 经理与技术队伍的建设 如果是经营一个加工厂或一个饭店,经理们可以不必懂技术。因为他们的常识,以 及通过耳闻目睹或者咨询都能解决实践中的问题。在软件领域,技术的力量是无穷的, 一天之内就可使整个产业发生巨变。也许你在商业上很精明,但无法保证自己在技术浪 潮中安然无恙。软件公司的各级经理最好既精通技术又懂管理。 一个出色的领导,加上一支技术过硬的队伍,才有可能创造业绩。不能光指望请来 孙子或诸葛亮当教练,就能让弱不禁风的男足去捧世界杯。不少人总喜欢自吹中国人很 聪明,最适合搞软件开发。可至今也没有做出几个很光彩的软件来,这与十三亿人口不 呼应啊。新中国历来喜欢与可怜的印度相比较来展现丰富多彩的优越性,可是软件产业 没法与人家比。工作在第一线的程序员与程序经理应该意识到:好兵好将都不是天生的, 是后天练出来的;既要学会冷静地分析问题,又要充满激情地去工作。 软件公司总希望能物色到既精通技术又善长商业的优秀人才做经理。但已经出名了 的优秀人才难以请到,也难以留住。所以把公司中的普通员工培养成为优秀人才是重要 的举措。公司的老板不要对程序员抱有偏见,以为他们只配与机器打交道。一个高水平
的程序员既然能学好数字逻辑,能理得清楚软件中很多象“嵌套”这类“鸡生蛋并且蛋 又生了鸡”的错综复杂的关系,从理论上讲当个县长也不成问题。 现在很多女士不会烧菜,却能把菜的营养讲得头头是道。虽然这是个值得哀叹的社 会问题,但我们应该有信心期待:如果她们非得天天烧菜不可,那么不久就能把菜烧得 又好吃又有营养。许多程序员不懂商业,不是智力上的原因,主要是个人兴趣和环境所 致。软件公司的老板应该这样鼓励有灵气的员工:“你能把技术做得那么棒,还怕搞不好 管理?放心干吧:”的确,很多技术人员是在工作中领悟如何管理的,他们经过挫折与磨 练,逐渐升为组长、项目经理,乃至成为公司重要的决策者。 优秀的程序员喜欢与优秀的程序员一起工作,这是一种理想的愿望。一个普通的软 件公司不可能有非常多的优秀程序员,即便有,他们也不可能天天聚在一起干同一件事 并且和睦得无法形容。中国自封建社会起就有喜好内斗的风俗习惯,几千年下来早已渗 透到社会各个角落,那怕黄河水流断了,估计这民风也会延袭下去。要使程序员队伍稳 健,必须有合理的等级制度来维护。等级制度并不限制自由和民主,它能让自以为聪明 绝顶、谁也不服的人们懂得如何合作与奋斗。就象有了一架梯子,每个人才有机会爬上 墙头摘下那向往已久的野花。当梯子散成一堆木棍时,只可能造就几个实炭翁。 下面我们尝试着建立一个程序员队伍的等级制度。 把技术水平分为四级,第一级最低,第四级最高。第一·级技术水平的程序品主要名 核编程基本功,要求质量合格(他们主要来自刚毕业的大学生)。第二级技术水平的程序 员编程质量要高,微过几个软件项目,有数年的工作经验,并能指导新手的工作。第三 级技术水平的程序员主要考核系统分析与系统设计的能力,要求其技术有足够的深度和 广度。第四级技术水平的程序员是成功的饮件产品的设计师,他不仅技术超群,并且能 使技术转化为有价值的商品。 把管理(这里仅指软件业务的管理,不考虑行政事务)水平也分成四级。第零级最 低,第三级最高。第零级管理水平的人没有管理职务,就是普通员工。第一级管理水平 的人是开发小组的组长,可带领几名程序员工作。第二级管理水平的人是项目经理。第 三级管理水平的人决定某些产品是否题开发,以及如何去占领市场。 每个程序员都有明确的技术级别和管理级别。技术级别与管理级别有一定的联系, 一般地,第一级技术水平的人只能做普通员工:第二级技术水平的人可以当一名组长: 第三级技术水平的人可以当一名项目经理:第四级技术水平的人可成为公司产品的决策 者。如图2.1所示。本书作者目前的技术水平当属第二级,管理水平符合组长的要求。 作者在读中学和大学时就曾美滋溢地当过课代表,也就是组长级别 技术级别 管理级别 四级 决策者 三级 项目经理 开发组长
5 的程序员既然能学好数字逻辑,能理得清楚软件中很多象“嵌套”这类“鸡生蛋并且蛋 又生了鸡”的错综复杂的关系,从理论上讲当个县长也不成问题。 现在很多女士不会烧菜,却能把菜的营养讲得头头是道。虽然这是个值得哀叹的社 会问题,但我们应该有信心期待:如果她们非得天天烧菜不可,那么不久就能把菜烧得 又好吃又有营养。许多程序员不懂商业,不是智力上的原因,主要是个人兴趣和环境所 致。软件公司的老板应该这样鼓励有灵气的员工:“你能把技术做得那么棒,还怕搞不好 管理?放心干吧!”的确,很多技术人员是在工作中领悟如何管理的,他们经过挫折与磨 练,逐渐升为组长、项目经理,乃至成为公司重要的决策者。 优秀的程序员喜欢与优秀的程序员一起工作,这是一种理想的愿望。一个普通的软 件公司不可能有非常多的优秀程序员,即便有,他们也不可能天天聚在一起干同一件事 并且和睦得无法形容。中国自封建社会起就有喜好内斗的风俗习惯,几千年下来早已渗 透到社会各个角落,那怕黄河水流断了,估计这民风也会延袭下去。要使程序员队伍稳 健,必须有合理的等级制度来维护。等级制度并不限制自由和民主,它能让自以为聪明 绝顶、谁也不服的人们懂得如何合作与奋斗。就象有了一架梯子,每个人才有机会爬上 墙头摘下那向往已久的野花。当梯子散成一堆木棍时,只可能造就几个卖炭翁。 下面我们尝试着建立一个程序员队伍的等级制度。 把技术水平分为四级,第一级最低,第四级最高。第一级技术水平的程序员主要考 核编程基本功,要求质量合格(他们主要来自刚毕业的大学生)。第二级技术水平的程序 员编程质量要高,做过几个软件项目,有数年的工作经验,并能指导新手的工作。第三 级技术水平的程序员主要考核系统分析与系统设计的能力,要求其技术有足够的深度和 广度。第四级技术水平的程序员是成功的软件产品的设计师,他不仅技术超群,并且能 使技术转化为有价值的商品。 把管理(这里仅指软件业务的管理,不考虑行政事务)水平也分成四级。第零级最 低,第三级最高。第零级管理水平的人没有管理职务,就是普通员工。第一级管理水平 的人是开发小组的组长,可带领几名程序员工作。第二级管理水平的人是项目经理。第 三级管理水平的人决定某些产品是否要开发,以及如何去占领市场。 每个程序员都有明确的技术级别和管理级别。技术级别与管理级别有一定的联系。 一般地,第一级技术水平的人只能做普通员工;第二级技术水平的人可以当一名组长; 第三级技术水平的人可以当一名项目经理;第四级技术水平的人可成为公司产品的决策 者。如图 2.1 所示。本书作者目前的技术水平当属第二级,管理水平符合组长的要求。 作者在读中学和大学时就曾美滋滋地当过课代表,也就是组长级别。 技术级别 管理级别 四级 决策者 三级 项目经理 二级 开发组长
一级 一普通员工 图21技术级别与管理级别 2.5向错误与失败学习 不管是生活或工作,人们都应该向错误与失败学习,目的是让我们在短暂的健康年 华中少犯错误、少失败,多做几件正确的对社会有贡献的事。 导致软件项目失败的因素很多,如果不去找借口的话,就会发现错误的根源在自己 身上:知识贫乏、才能低下、经验不足、骄做自负。我们必须正视自身的不足与缺 点,才会学到经验教训。可人们常有太多的虚荣,为了克服心理障碍,白白浪费了很多 本该用于创造的精力 假设犯错误的人是诚实的并且是勤奋的。他愿意不带虚荣地改进自己。当这个人突 然面对失败时,可能觉得自己一无是处,也许会不知所措,也许会病急乱投医。程序员 都有一种共同的体会:在调试程序时,时常碰到只有十几行的程序竟会产生上百个编译 错误:最后发现这么多的错误其实是由某一行程序错误引发的。当我们在工作中碰到摔 折时,先要冷静地分析问题(事出有因哪),找出问题的内因与外因。内因是最主要的, 应该予以最先解决。 前几年,中国出现了一个叫“法轮功”的邪教,教徒达数百万之多,人民群众深受 其害。不久前,全国的主要媒体对“法轮功”进行连续数月的声讨与揭露。目睹了很多 受害人的哭诉后,相信人们能够明白“法轮功”是邪恶的、反动的。但在愤怒与心痛之 余,我们不禁要反思:为什么那么多人轻信邪教?人们是否接受了教训? 在电视上看到很多人的确作了深刻的检讨:“我真是后悔啊,跟错了李洪志(法轮功 的头头)这个坏蛋,我对不起社会“。以后我一定要听党组织的话,党叫我干什么我 就干什么,决不上坏人的当。” 我觉得这些受害人一点都没有醒悟:他只知道法轮功是个邪教,并不知道自己为什 么信了邪教。有些事情只要用脑袋去想一想就能分辨是非,可人们就是不去思考,却渴 望能跟对“福星”,甘愿把自己的脑袋拴在别人的裤带上。难道这就是人民的纯朴与可爱 吗?回顾一下历史,在“文革”时期,亿万人民跟着合法的党组织大干伤天害理的事, 一干就是十多年哪!可见世界上哪个人哪个组织都不能确保绝对的英明。 所以说“迷信”是傻子碰到骗子的结果。傻是内因,被骗是外因。傻子碰到好人未 必能做出好事,傻子碰到另一个骗子就会做出另一件傻事。为了不让自己“傻”,善良的 人们应该用脑子去多学一些知识,努力让自己来把握命运,不要急着把一生托给某个人 或某个组织。 软件人员在遭受项目失败并开始反省时,不要只是就事论事地仅把眼光锁在特定的 项目上,吃一堑应该长好几个智才对。本书作者刚刚失败过,乐意乘热讲讲感受。 我在读本科和硕士研究生时,一直信奉“创造性的事业要靠激情来推动”。我把这个 口号贴在办公室里,并扔掉物理学专业天天编程。在读硕士研究生的第一年,我卖出了 第一份软件。到我读博士研究生的第一年,我心想事成地获得了全国大学生电脑大赛软 6
6 一级 普通员工 图 2.1 技术级别与管理级别 2.5 向错误与失败学习 不管是生活或工作,人们都应该向错误与失败学习,目的是让我们在短暂的健康年 华中少犯错误、少失败,多做几件正确的对社会有贡献的事。 导致软件项目失败的因素很多,如果不去找借口的话,就会发现错误的根源在自己 身上:知识贫乏、才能低下、经验不足、骄傲自负.。我们必须正视自身的不足与缺 点,才会学到经验教训。可人们常有太多的虚荣,为了克服心理障碍,白白浪费了很多 本该用于创造的精力。 假设犯错误的人是诚实的并且是勤奋的。他愿意不带虚荣地改进自己。当这个人突 然面对失败时,可能觉得自己一无是处,也许会不知所措,也许会病急乱投医。程序员 都有一种共同的体会:在调试程序时,时常碰到只有十几行的程序竟会产生上百个编译 错误;最后发现这么多的错误其实是由某一行程序错误引发的。当我们在工作中碰到挫 折时,先要冷静地分析问题(事出有因哪),找出问题的内因与外因。内因是最主要的, 应该予以最先解决。 前几年,中国出现了一个叫“法轮功”的邪教,教徒达数百万之多,人民群众深受 其害。不久前,全国的主要媒体对“法轮功”进行连续数月的声讨与揭露。目睹了很多 受害人的哭诉后,相信人们能够明白“法轮功”是邪恶的、反动的。但在愤怒与心痛之 余,我们不禁要反思:为什么那么多人轻信邪教?人们是否接受了教训? 在电视上看到很多人的确作了深刻的检讨:“我真是后悔啊,跟错了李洪志(法轮功 的头头)这个坏蛋,我对不起社会.。以后我一定要听党组织的话,党叫我干什么我 就干什么,决不上坏人的当。” 我觉得这些受害人一点都没有醒悟:他只知道法轮功是个邪教,并不知道自己为什 么信了邪教。有些事情只要用脑袋去想一想就能分辨是非,可人们就是不去思考,却渴 望能跟对“福星”,甘愿把自己的脑袋拴在别人的裤带上。难道这就是人民的纯朴与可爱 吗?回顾一下历史,在“文革”时期,亿万人民跟着合法的党组织大干伤天害理的事, 一干就是十多年哪!可见世界上哪个人哪个组织都不能确保绝对的英明。 所以说“迷信”是傻子碰到骗子的结果。傻是内因,被骗是外因。傻子碰到好人未 必能做出好事,傻子碰到另一个骗子就会做出另一件傻事。为了不让自己“傻”,善良的 人们应该用脑子去多学一些知识,努力让自己来把握命运,不要急着把一生托给某个人 或某个组织。 软件人员在遭受项目失败并开始反省时,不要只是就事论事地仅把眼光锁在特定的 项目上,吃一堑应该长好几个智才对。本书作者刚刚失败过,乐意乘热讲讲感受。 我在读本科和硕士研究生时,一直信奉“创造性的事业要靠激情来推动”。我把这个 口号贴在办公室里,并扔掉物理学专业天天编程。在读硕士研究生的第一年,我卖出了 第一份软件。到我读博士研究生的第一年,我心想事成地获得了全国大学生电脑大赛软
件展示第一名。那时候我自以为翅膀己经硬了,再回顾前些年的艰苦,不禁有“媳妇熬 成婆”的悲壮感觉。于是我在杭州这个小地方略作宜传,在1997年10月份开了一家软 件公司。 我开始把“振兴民族软件产业”列入日程,并且提前担忧将来钱挣得太多用不完该 怎么办。半年之后,我开始为软件产品作宜传,可并没有出现订单如潮、接应不暇的形 势(事实上压根就没有反应)。我已经意识到市场没找对,但仍觉得软件中的技术很有价 值,准备再开创“东方不亮西方亮”的新局面。于是我向只有一面之缘尚在北大方正工 作的一位朋友求助。他是真真的软件高手,当我小心翼翼地展示约10万行C+代码的 软件时,他竞在十几分钟内就指出多处重大的设计错误,使我目蹬口呆地意识到整个软 件系统的价值为零。那种心痛啊,就象眼睁睁看着孩子被狼吃掉一样。 1998年10月,这位朋友再一次从北京飞到杭州,三下五除二替我把只活了一年的 公司给关闭掉。他放心不下,觉得我“恶病需用猛药补”,于是意尤未尽地把我捉到北大 方正插在他管辖的部门,让我学习怎样做事情。北京寒冷的冬天可以营造一种凄凉的气 氛,冲去一切可以自我原谅的借口。我并不是太爱虚荣的人,知道这次失败是我的毛病 积累到一定水准忍不住喷发出来的结果。我绝不能以年纪尚轻不太懂市场与管理为理由 轻率地敷衍过去。我把自己察觉到的数十个毛病列出来,日后一个一个克服掉。.本 书的大部分内容取自我在一年前的教训录。 改错之后,现在我不仅不难过而且挺快乐。觉得第一次失败很浪漫,值得怀念。刚 开始写这本书时,我那位北京的朋友把脚伸到杭州来散步,顺手又给了我几帖药,可以 用到我毕业。看来缺点是改不完的,补短和扬长要一起来。 2.6提高综合素责 前面给软件开发人员加了过多的赞誉 一个技术出色的程序员可以自豪,但不可以 目空一切。上天不可能赋于一个人太多的优点,以致于他没有表示谦虚的余地。 我们在求学时可能太功利太挑剔,导致知识结构非常单薄,只怕到了晚年也成不了 大器。当程序员擅长技术时,还要时刻留意弥补自己并不擅长的非技术才能。扬长补短 才能提高综合素质。 假如能回到中学时代,我希望能把文科学好。那时侯盛传“学好数理化,走遍天下 都不怕”。我读中学时很无知,郡视一切文科,现在后悔莫及。高考语文成绩54分(只 比我的期望值低6分)。写作文的最高目标就是不逃题,考试前我总是反复祈祷:我没干 过坏事,保佑我作文不逃题吧:上大学的第一天我竞然无法用普通话说出“去洗澡怎么 走”,只好晃动澡票与辅导员打哑语。中学的历史、地理课也被我糟踏了,考试时只会填 写任课老师某年某月某日在我家乡英勇就义,比谁的成绩更接近零分。更让我沮丧的是, 这些行径都不是我发明的,我顶多是个累屁虫而已,一点回忆的自豪成都没有。 扔掉文科只学理科并不等同于“放下包袱,轻装前进”,倒象是摘掉了控制系统的机 车,开不了多远就翻车了。我搞了八年的软件开发,没做出象样的软件来。倒是有同行 意外发现我的文笔不错,是当作家的料。我发现自己在不该开花的地方结了一颗瘦涩的 果子。曹操之子曹彰曾建议:“大丈夫当学卫青、霍去病,立功沙漠,长驱数十万众,纵 横天下,何能为博士耶?”要后悔的事情太多了,只能现在做得勒快些。明知自己不成 >
7 件展示第一名。那时候我自以为翅膀已经硬了,再回顾前些年的艰苦,不禁有“媳妇熬 成婆”的悲壮感觉。于是我在杭州这个小地方略作宣传,在 1997 年 10 月份开了一家软 件公司。 我开始把“振兴民族软件产业”列入日程,并且提前担忧将来钱挣得太多用不完该 怎么办。半年之后,我开始为软件产品作宣传,可并没有出现订单如潮、接应不暇的形 势(事实上压根就没有反应)。我已经意识到市场没找对,但仍觉得软件中的技术很有价 值,准备再开创“东方不亮西方亮”的新局面。于是我向只有一面之缘尚在北大方正工 作的一位朋友求助。他是真真的软件高手,当我小心翼翼地展示约 10 万行 C++代码的 软件时,他竞在十几分钟内就指出多处重大的设计错误,使我目瞪口呆地意识到整个软 件系统的价值为零。那种心痛啊,就象眼睁睁看着孩子被狼吃掉一样。 1998 年 10 月,这位朋友再一次从北京飞到杭州,三下五除二替我把只活了一年的 公司给关闭掉。他放心不下,觉得我“恶病需用猛药补”,于是意尤未尽地把我捉到北大 方正插在他管辖的部门,让我学习怎样做事情。北京寒冷的冬天可以营造一种凄凉的气 氛,冲去一切可以自我原谅的借口。我并不是太爱虚荣的人,知道这次失败是我的毛病 积累到一定水准忍不住喷发出来的结果。我绝不能以年纪尚轻不太懂市场与管理为理由 轻率地敷衍过去。我把自己察觉到的数十个毛病列出来,日后一个一个克服掉。.本 书的大部分内容取自我在一年前的教训录。 改错之后,现在我不仅不难过而且挺快乐。觉得第一次失败很浪漫,值得怀念。刚 开始写这本书时,我那位北京的朋友把脚伸到杭州来散步,顺手又给了我几帖药,可以 用到我毕业。看来缺点是改不完的,补短和扬长要一起来。 2.6 提高综合素责 前面给软件开发人员加了过多的赞誉。一个技术出色的程序员可以自豪,但不可以 目空一切。上天不可能赋于一个人太多的优点,以致于他没有表示谦虚的余地。 我们在求学时可能太功利太挑剔,导致知识结构非常单薄,只怕到了晚年也成不了 大器。当程序员擅长技术时,还要时刻留意弥补自己并不擅长的非技术才能。扬长补短 才能提高综合素质。 假如能回到中学时代,我希望能把文科学好。那时侯盛传“学好数理化,走遍天下 都不怕”。我读中学时很无知,鄙视一切文科,现在后悔莫及。高考语文成绩 54 分(只 比我的期望值低 6 分)。写作文的最高目标就是不逃题,考试前我总是反复祈祷:我没干 过坏事,保佑我作文不逃题吧!上大学的第一天我竟然无法用普通话说出“去洗澡怎么 走”,只好晃动澡票与辅导员打哑语。中学的历史、地理课也被我糟踏了,考试时只会填 写任课老师某年某月某日在我家乡英勇就义,比谁的成绩更接近零分。更让我沮丧的是, 这些行径都不是我发明的,我顶多是个跟屁虫而已,一点回忆的自豪感都没有。 扔掉文科只学理科并不等同于“放下包袱,轻装前进”,倒象是摘掉了控制系统的机 车,开不了多远就翻车了。我搞了八年的软件开发,没做出象样的软件来。倒是有同行 意外发现我的文笔不错,是当作家的料。我发现自己在不该开花的地方结了一颗瘦涩的 果子。曹操之子曹彰曾建议:“大丈夫当学卫青、霍去病,立功沙漠,长驱数十万众,纵 横天下,何能为博士耶?”要后悔的事情太多了,只能现在做得勤快些。明知自己不成
大器,但愿意亡羊补牢,力求学得更深更广。 不要让人觉得程序员只管钻研技术,可以不懂世事并且应该自由散漫。程序员不该 因为幼稚而显得单纯,应该是成熟了才变得单纯,才配得上这个充满活力的职业。 2.7小结 本章讲述做好程序员和程序经理的一些道理,为了剥去阻碍我们进步的那些虚伪 多唠叨了几个故事。 中国经历了很多打斗、整人的革命,却没有一次杆上工业革命。在如今计算机横行 的形势下,我们不能再掉队了。90年代初期,中国出现了一些程序员英雄,曾让我们激 动过、崇拜过。但这些孤胆英雄们很快地几乎全消亡了,他们只留下故事,没留下更多 的价值。再一次让我们意识到“振兴民族软件产业”不能依靠几个人一朝一夕的辉煌。 软件人员勤奋学习和工作,不该只图将来能做成几件事情的快意,而应力求事业长盛不 衰,才能推动整个民族软件产业持久稳健地发展
8 大器,但愿意亡羊补牢,力求学得更深更广。 不要让人觉得程序员只管钻研技术,可以不懂世事并且应该自由散漫。程序员不该 因为幼稚而显得单纯,应该是成熟了才变得单纯,才配得上这个充满活力的职业。 2.7 小 结 本章讲述做好程序员和程序经理的一些道理,为了剥去阻碍我们进步的那些虚伪, 多唠叨了几个故事。 中国经历了很多打斗、整人的革命,却没有一次赶上工业革命。在如今计算机横行 的形势下,我们不能再掉队了。90 年代初期,中国出现了一些程序员英雄,曾让我们激 动过、崇拜过。但这些孤胆英雄们很快地几乎全消亡了,他们只留下故事,没留下更多 的价值。再一次让我们意识到“振兴民族软件产业”不能依靠几个人一朝一夕的辉煌。 软件人员勤奋学习和工作,不该只图将来能做成几件事情的快意,而应力求事业长盛不 衰,才能推动整个民族软件产业持久稳健地发展