《告别失控:软件开发团队管理必读》一一第2章 理解程序员

第2章 理解程序员

告别失控:软件开发团队管理必读
从许多方面看,程序员之间的差异都非常大,只有很了解程序设计的人才能完全理解这一点。大多数公司的高层管理者对所有的程序员一视同仁,这是一个可怕的错误。微软公司的Bill Gates和Adobe Systems公司的John Warnock都没有犯这样的错误,因为他们俩本质上也都是程序员。

这种差异为什么很重要?也许不应该很重要,但事实上,这种差异真的很重要。历经多年的程序员管理工作之后,我们仍然惊叹于程序员之间的巨大差异,需要有区别地进行问题处理和激励。对我们而言,有一点是毫无疑问的:要想成功地管好程序员,首先必须真正地了解每个程序员。

有一点值得重视:我们发现一般情况下,程序员的年龄、性别、种族或文化不会造成太大的差异。根据我们对数以百计的程序员招聘与管理的经验,程序员之间的差异主要来自个人内在因素,而不是外在属性。当然,后天的训练和经历肯定是有影响的,但个人的天赋和与生俱来的特点才是真正的区别所在。

理解程序员的方法有很多种,我们从以下几个不同的角度来考虑:

程序设计工种;
程序员的类型;
领域知识;
程序员的工作要求与能力;
工作地点与关系;
代系特点;
个人特点。

时间: 2024-09-15 19:20:40

《告别失控:软件开发团队管理必读》一一第2章 理解程序员的相关文章

《告别失控:软件开发团队管理必读》导读

前言 告别失控:软件开发团队管理必读 软件开发常常被认为是难以管理的.进度安排和费用预算完全不靠谱的软件项目比比皆是.规范化的软件开发实践对这一状况有所改善,但也未能真正解决问题.我们软件开发行业已经积累了超过60年的技术经验,并已经投入了大量的时间,以及美元/日元/卢比/欧元来尝试把管理规范化,但为什么软件开发至今仍然如此难以管理呢? 本书用一个简单的观察结果来回答这个长期存在的问题:管理者首先必须学会管理程序员和软件团队的技巧.也就是说,必须学会了解员工-如何聘用他们,激励他们,进而领导他们

《告别失控:软件开发团队管理必读》一一1.2 成功的程序设计经理为什么难当

1.2 成功的程序设计经理为什么难当 大多数杰出的程序员并不热衷于当其他程序员的经理.他们知道团队需要软件经理,但乐得让别人来做实际的管理工作.他们通常不喜欢管理人员或项目. 管理程序员是很难的!"管理程序员很像是在放牧一群猫"--这句话常被引述,它揭示了高效.成功的程序设计经理难当的本质原因.猫的自由主义.个人主义色彩浓厚,而且狡猾.贪玩.好奇.独立.程序员也一样. 根据我们的经验,非常能干的软件经理是很稀少的.而只有这类很少见的软件经理才能成功地管理无拘无束的程序员并且乐在其中.

《告别失控:软件开发团队管理必读》一一1.1 程序员都做什么

1.1 程序员都做什么 首先,程序员的工作很有趣!Fred Brooks在软件工程的经典名著之一<人月神话>[6]中很好地总结了程序设计充满乐趣的原因. "第一,是纯粹的创造的愉悦--""第二,是做出对其他人有用的东西而带来的快乐--""第三,是设计组装谜题一样环环相扣的复杂部件,并观看着它们巧妙地运转而产生的吸引力--""第四,是持续学习的乐趣,这来源于任务的无重复特性--""第五,工作的对象是可以自由

《告别失控:软件开发团队管理必读》一一2.2 程序员的类型

2.2 程序员的类型 为了选择合适的职员,我们还需要理解另一种看待程序员的方法.在上一节讨论的几种类型中,我们侧重考虑了程序员所从事的工作的类型(即客户端.服务器.数据库.Web).实际上,从技术知识.实践经验和程序员的专长角度去考虑也是很重要的,按这样的思路可以把程序员分类为: 系统工程师/架构师:系统程序员:应用程序员:非真正意义上的程序员. 2.2.1 系统工程师/架构师 在所有开发类职员中,系统工程师/架构师是最有技术和经验的.要想理解所有相关的系统组件(操作系统.通信系统.数据库.在线

《告别失控:软件开发团队管理必读》一一2.8 小结

2.8 小结 本章的目的是帮助大家认识到,理解程序员并不是一项简单的任务,即使你当过程序员也不例外.我们提供的多种视角,只能帮助你找到最适合你的方法来管理那些必须雇用的程序员.管理人是很困难的,有些最有天赋的程序员同时也是最难管理的人.这是一把"双刃剑". 我们列出了多种个性类型供大家了解,但强烈建议大家不要简单地按这些类型对人进行分类.把每个人都作为不同的个体看待,你这位程序设计经理会更成功.

《告别失控:软件开发团队管理必读》一一2.5 工作地点与关系

2.5 工作地点与关系 近年来,软件开发管理的复杂度比以前大了很多.也许你很幸运,仍然保持在简单的环境中,但这样的日子很快就不会再有了.即使现在不受影响,早晚都会受到影响的:否则,你的企业将不再具备竞争力. 以前,听到的问题都是:"去哪里找一个程序员来做项目?"后来逐渐开始思考是招聘现场全职雇员还是招聘合同工的问题.现在,在哪里完成工作.怎样完成工作往往涉及大量的决策,需要仔细考虑. 通常,这些决策不由你来做出,它们可能是由你的领导或者项目情况而定的.无论如何,要想取得成功,必须解决好

《告别失控:软件开发团队管理必读》一一2.7 个性特点

2.7 个性特点 程序员除了具有不同的类型之外,还普遍存在着个性特点.特质和习惯,这些因素各自都面临着一些挑战. 学术界有着许多关于个性.如何对个人进行分类以及如何管理个性的理论.在这些理论中,迈尔斯和布里格斯的工作值得花一些时间来理解,他们俩在1942-1962年间建立了个性测试的理论基础,并提出了对个性进行分类的体系.迈尔斯-布里格斯类型指标(Myers-Briggs Type Indicator,MBTI)个性清单的作用是,使C. G. Jung描述的心理类型理论易于理解,在生活中更实用.

《告别失控:软件开发团队管理必读》一一2.1 程序设计工种

2.1 程序设计工种 了解程序员的第一种方法是分析他们的程序设计工作可以归为哪些类型.程序设计工作通常有下面4种类型: 客户端程序员: 服务器程序员: 数据库程序员: Web开发人员及其他脚本编写者. 当然,可能有许多特殊的程序设计工作难以确切地归结为上述某种类型.但总的来说,这4种类型已经覆盖了世界上的绝大多数程序员,其中每一种程序员擅长的问题解决方法.使用的工具以及侧重的产品方向都各不相同.一些极有天分的程序员能够胜任所有工作,但大多数程序员认为自己虽然能完成所有的程序设计任务,但其实最多只

《告别失控:软件开发团队管理必读》一一2.6 代系特点

2.6 代系特点 在工程师和程序员中,代系差异是一直存在的,而今这些差异已经对职场产生显著的影响.当前,团队的成功必须依赖三代程序员的通力协作,而这三代人的价值观.想法和驱动力都不同. 为了把工作做好,我们不仅需要了解自己的工作风格,还要掌握手下员工的工作风格.一种常见的办法是从代系的角度来看待他们,但问题在于人们对代系的划分还未达成广泛的共识.传统上是按出生时间来区分的: 婴儿潮一代(1946-1964年出生):X一代(1965-1979年出生):千禧一代(1980-2000年出生),有时也称