本节书摘来自异步社区出版社《告别失控:软件开发团队管理必读》一书中的第1章,第1.2节,作者: 【美】Mickey W. Mantle(米奇 W.蒙托) , Ron Lichty(罗恩•利克蒂),更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.2 成功的程序设计经理为什么难当

大多数杰出的程序员并不热衷于当其他程序员的经理。他们知道团队需要软件经理,但乐得让别人来做实际的管理工作。他们通常不喜欢管理人员或项目。

管理程序员是很难的!“管理程序员很像是在放牧一群猫”——这句话常被引述,它揭示了高效、成功的程序设计经理难当的本质原因。猫的自由主义、个人主义色彩浓厚,而且狡猾、贪玩、好奇、独立。程序员也一样。

根据我们的经验,非常能干的软件经理是很稀少的。而只有这类很少见的软件经理才能成功地管理无拘无束的程序员并且乐在其中。

因为程序员都是些无拘无束的人,常见的激励方法往往不能奏效。除了进行必要的技术监督并把开发实践和过程落实到位之外,善于利用程序员的自我意识和改变世界的欲望也很关键。这就需要一类既能理解程序员的工作方式,又能理解工作本身的软件经理,他们不仅能有效地激励程序员超常发挥,而且能按时交付结果。

对许多职业来说,报酬是主要的动力源泉;但对程序员来说,工作本身和工作环境的重要性要比报酬高得多。程序设计是一个创新的过程,需要有效地处理特殊情况。优秀的经理必须注意到这些情况,并营造有助于程序设计的工作氛围。

本书从头至尾一直在表达这样的观点:成为高效、成功的程序设计经理是可能的。但我们认为,一般只有优秀的或杰出的程序员才能成为成功的程序设计经理。

当然,这通常只是问题的一部分。大多数程序设计经理被提拔为经理就是因为他们曾经是优秀的或杰出的程序员并且表现出了一定的人际交往能力—在引导其他程序员的行为方面展现出了自己的能力甚至可以说是兴趣。

程序设计经理一般都没有接受过正规的管理培训,他们的管理经验通常来自工作和他人的指责。在这些菜鸟经理中,一部分人获得了成功,一部分人很快就失败了,多数人则是经过一段时间之后才宣告失败。

对获得成功的程序设计经理而言,在他们所在的组织或者圈子里面,一般都会有一位导师,引领他们取得成就,并且在他们犯错误的时候给予保护。我们担任程序员以及程序员经理的时间差不多有近40年了,这些年我们招聘、管理过数以千计的天才程序员并当过其中很多人的导师。我们希望本书能够提供导师所能给予的指导,能够为那些在程序员管理方面只能独自奋战的经理们担任代理导师。

本书的目的不是改变程序员,事实上也做不到这一点。他们仍然会在设计之前编写代码,仍然只在必要时才提供有形的结果。我们的目标是提供一些见解、建议、工具、方法以及经验法则来帮你“放牧”软件项目中的“猫”,并且帮你管理团队中看似难以管理的程序员。

[1]  软件工程这个术语创造于1968年,用于描述“系统的、严格的、可量化的开发、运营与维护软件的实践”。参见《科学美国人》1994年9月的“Software’s Chronic Crisis”(软件的严重危机)一文。

[2]  美国计算机协会(Association for Computing Machinery,ACM)在20世纪80年代初期曾有一个职业认证项目,但后来终止了。20世纪90年代末,ACM调查了软件工程职业认证的可能性,但最终认为这种职业认证对业界的软件工程实践来说是不合适的。参看www.acm.org/public-policy上的“ASummary of the ACM Position on Software Engineering as a Licensed Engineering Profession”。

[3]  很多类似于微软、苹果、思科这样的机构都提供认证课程与测试,在业界广泛采用,但这些认证只针对特定的专业领域。它们可能是从事某项工作所必需的,但并不是整个行业所必需的。

[4]  能力成熟度模型集成(the Capability Maturity Model Integration,CMMI)是由软件工程研究所(the Software Engineering Institute,SEI)研发的流程改进方案,为机构提供必需的有效流程元素来提高他们的表现。参见www.sei.cmu.edu/cmmi。

[5]  Quoted in G. Pascal Zachary, Show-Stopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft (The Free Press/Simon & Schuster, 1994).

[6]  Frederick P. Brooks Jr., The Mythical Man-Month, Anniversary Edition (Addison-Wesley, 1995; originally published in 1975)。这本程序设计的经典书籍,是每一个管理程序员或者软件开发项目的人的必读之物。

[7]  多位业界领袖都表达过类似的观点,认为音乐家可以成为非常杰出的程序员。Mickey本人也是一位音乐家,所以从内心认同这个观点。

[8]  电气和电子工程师协会(the Institute of Electrical and Electronic Engineers,IEEE)提供对软件开发职业工程师的认证(Certified Software Development Professional,CSDP),它大体是根据软件工程知识体系(Software Engineering Body of Knowledge,SWEBOK;www.swebok.org)列出的实践设置。虽然这种认证是否值得追求本身仍是一个颇具争议的话题,但值得一提的是,在“正统”的工程领域里,认证机制是普遍常态。

[9]  For a pragmatic look at certification, see Jack Ganssle, “More on Certification,” September 7, 2005, www.embedded.com/ columns/embeddedpulse/170701175.(译注:该链接已失效,请参见http://www.embedded.com/ electronics-blogs/-points/ 4025582/More-on-Certification。)

[10]  Pete McBreen, Software Craftsmanship (Addison-Wesley, 2001).

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

  1. 《告别失控:软件开发团队管理必读》一一2.9 工具

    本节书摘来自异步社区出版社<告别失控:软件开发团队管理必读>一书中的第2章,第2.9节,作者: [美]Mickey W. Mantle(米奇 W.蒙托) , Ron Lichty(罗恩•利 ...

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

    本节书摘来自异步社区出版社<告别失控:软件开发团队管理必读>一书中的第2章,第2.6节,作者: [美]Mickey W. Mantle(米奇 W.蒙托) , Ron Lichty(罗恩•利 ...

  3. 《告别失控:软件开发团队管理必读》一一第1章 程序员为何难以管理

    第1章 程序员为何难以管理 告别失控:软件开发团队管理必读 程序设计作为一种严肃的职业已经存在60多年了.在美国,从事程序设计工作的程序员数以百万计,而全球这个数字更大.这些数字还不包括人数众多的学生 ...

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

    本节书摘来自异步社区出版社<告别失控:软件开发团队管理必读>一书中的第2章,第2.7节,作者: [美]Mickey W. Mantle(米奇 W.蒙托) , Ron Lichty(罗恩•利 ...

  5. 软件开发团队如何管理琐碎、突发性任务

    背景 开发团队如何管理琐碎.突发性工作? 企业的一些软件开发团队经常出现类似培训支撑等突发性工作,开发团队不清楚如何管理好类似客户培训这样的突发性支撑工作. 解决突发性工作的问题被很多开发团队所重视, ...

  6. 【DevCloud · 敏捷智库】软件开发团队如何管理琐碎、突发性任务(内附下载材料)

    背景 开发团队如何管理琐碎.突发性工作? 企业的一些软件开发团队经常出现类似培训支撑等突发性工作,开发团队不清楚如何管理好类似客户培训这样的突发性支撑工作. 解决突发性工作的问题被很多开发团队所重视, ...

  7. The Joel Test:Joel 用来评价软件开发团队成熟度的12个问题

    转自:http://www.cnblogs.com/supercpp/archive/2011/11/10/2245087.html 如果你与软件行业有若干联系,但是还不知道Joel这个人以及他的博客 ...

  8. 软件开发团队的管理要素

    软件开发团队的管理要素 最好的范例是领导 无论个人素养.技术水平和代码风格,管理者应该起到典范的作用. 最高的权力是威望 管理者的威望比手中权力更有信服力.在处处倚仗权力施压的团队中,高压必有反抗. ...

  9. 软件开发进度管理探析

    随着计算机信息技术的飞速发展,软件项目在开发过程中的进度管理越来越受到重视.如果进度管理做得好,软件开发项目将通过延长工作时间和提高质量来满足预算要求来减少.相反,工作时间会延长,这会降低质量或超出预 ...

最新文章

  1. 我的世界服务器里怎么无限随机传送,我的世界随机传送插件使用教程 权限指令分享...
  2. pat 乙级 1017 A除以B(C++)
  3. 信息学奥赛一本通 1855:【09NOIP提高组】潜伏者 | OpenJudge NOI 1.7 11:潜伏者 | 洛谷 P1071 [NOIP2009 提高组] 潜伏者
  4. 数据结构(C语言版)顺序栈相关算法的代码实现
  5. python来构建多层网络
  6. 为什么电脑插上网线半天才有网,是路由器的的问题吗?
  7. eclipse添加maven配置
  8. 关于Sa系列用户不能登录,只能本地windows身份验证的说明
  9. Web前端开发工程师到底是干什么的?
  10. Julia : 关于Atom中的Julia代码排版
  11. wps office有计算机应用吗,wps office
  12. php获取汉字拼音首字母的方法
  13. PNG透明图片叠加(Opencv实现,包括旋转缩放以及边界处理)
  14. 环境类sci期刊排名一区_计算机类期刊推荐:EI期刊求毕业,SCI大佬止步
  15. 过来人:软件测试自学还是报班好?需要掌握哪些技能?
  16. 怎么能快速的把pdf转换为word格式
  17. jquery-qrcode客户端二维码生成类库扩展--融入自定义Logo图片
  18. 收藏下来吧,超实用的:网页特殊符号HTML代码大全
  19. 树莓派支持uvi协议吗_树莓派 小米网关接入homeassistant系统
  20. mysql update分割字符串_mysql 截取字符串并 update select

热门文章

  1. 传统的http请求存在那些缺点
  2. radio 事件_nRF52832/51822系列RADIO外设介绍/使用
  3. android m版本 root,Android M 最大看点:又少了一个 ROOT 的理由
  4. python gevent缺点_python的flask框架结合gevent性能反而大幅度下降?
  5. ajax同步和异步的差异
  6. java kafka 设置分区_Java kafka如何实现自定义分区类和拦截器
  7. 通过webpack配置vue项目页面title
  8. Caffe代码导读(2):LMDB简介
  9. Java 守护线程概述
  10. Apache Maven 入门篇