[转]如何成为一位卓越的技术经理?

原文:http://segmentfault.com/a/1190000000350282?from=timeline&isappinstalled=0


管理一支技术团队多是世界上最难的事情之一。若是你是一个经理,你须要和不少方面的专家合做,和你的上级协调产品需求,和负责协调产品交付件的同级合做,和将产品功能转化成技术需求的同级合做,带领直接汇报给你的团队等等。在某些糟心的时刻,你须要面对的是会把阿斯伯格综合症的送报小孩赶走的同事。

图片

我曾经担任过开发经理、开发总监的工做,也曾经是一个开发人员,在过去的几十年中,在管理技术团队这件事情的两边,我经历过许多很是不同的“管理风格”。从技术团队的角度出发,就成为一个卓越的技术经理必备的特质,我会给出一些建议。 程序员

首先,技术人员的工做环境始终飞速变化,我以为如何成为一个卓越的技术经理是一个很是重要的话题。 segmentfault

在过去的二十年中,咱们能够看到软件开发的模式有发生了巨大的变革。在大多数企业中,软件开发的周期变得短,并且管理层由于每一个季度盈利的目标而对产品开发施加更大的压力。对于许多初创企业,都须要在第一时间发布新的软件产品。这些状况都致使了在软件开发中咱们会一直使用各类变动管理的方法。
  app

在我仍是一个开发人员的时候,我明白了第一个道理。个人老板当时问我,你知道你的工做对公司有哪些贡献吗? 框架

我:『额…… 我吗,我就是在写代码。』 函数

老板:『好吧,你是在写代码。让我换一种方式来问你,你以为你写的每一行代码会给公司带来多少利润呢?』 工具

我:『(脑瓜爆炸中……)噢,不是?我以为,我不能……我历来没有…… 额……你在说啥?』 spa

 

个人老板过后向我解释,公司的想法是,每个开发人员都应当知道本身对于公司的贡献。固然这不是在讨论每一行代码能产生多少贡献,更主要的目的是,你知道你的工做会对公司的利润产生影响。你的工做会影响你所开发的产品,在其生命周期中,这个产品将帮助公司赚钱或是省钱。若是你能获得这些盈利或是节省的数字,除上公司的投入(项目上开发人员的工资收入),就能够知道你所在项目的大体收益状况。听完这些话后,我一会儿茅塞顿开。 设计

这件事情的意义在于,在真实的商业世界里,我在这里引用梳着黑色大背头的Michael Douglas关于贪婪带来的好处的说法:对于公司来讲,全部的事情都是赚钱相关的。(详见Michael
Douglas参演的电影Wall Street)。然而,做为开发人员,咱们专一于开发这一艺术性的工做上。咱们创造出的代码,将比之前更快、更好、更优雅地解决问题,完成任务。咱们就像画家通常在画布上尽情做画,直到完美,从无到有地创造,开发出使人兴奋、大呼碉堡的软件,这和利润有半毛钱关系? orm

技术经理们就像“动物园”的看门人同样(想到程序猿们……)。他们应当要可以使用咱们的语言,体谅咱们付出的劳动,理解咱们的问题,而且和咱们一同分享胜利的喜悦。同时,当他们没有在作这些事情的时候,他们给予咱们反馈,给予咱们产品的需求,表明咱们和他们的上级和同级的同事一块儿制定项目预算,确认开发的费用和团队人数。当某一个表面光鲜的销售姐姐由于要完成她的月度销售指标,将没有在当前开发计划中的产品功能承诺给了客户时,他们会帮助咱们去解释为何这样的状况会致使产品的发布日期延后一周。 blog

经理们是公司机器的润滑油,是公司军队中的军士长。他们知道如何把事情作完,什么时候要紧,什么时候要松。简单的说,做为开发人员,你工做上成功的几率基本上正比于你老板的职业技能和工做的有效性。在我一辈子的职场经历中,我变得珍惜和感谢优秀的经理人,我知道真正优秀的经理人就像能中奖的彩票同样稀少。读了下面的文章,你就能够知道你有没有中了『好经理人』彩票。

 

1. 优秀的经理要联系团队和我的 | Managers Connect

  • 一个卓越的经理会倾听团队的想法和顾虑。他会在公司要求的大框架下去衡量团队给予的反馈信息,努力在产品需求、交付日期和现实情况中达到平衡。
  • 一个卓越的经理会相信他的团队时时刻刻说的都是真话,并且只有真话,同时他会不带感情色彩地去辨别是非黑白。
  • 一个卓越的经理会在团队的需求和公司的需求二者之间进行权衡,并且他可以将同时知足多方面要求的项目计划进行到底。由于他相信这样作是正确的,并且在大多数状况下,这样作是通向成功的惟一道路。
  • 一个卓越的经理,会不时地和整个团队以及其中的全部成员保持密切的沟通。他会知道团队面临的挑战是什么,以及团队或其中的我的应该如何作才可以达到成功。
  • 一个卓越的经理会和团队和公司分享成功的经验,同时他会确保团队获得应得的荣誉。你老是不断地、及时地从你老板那里获得关于你工做表现的反馈,关于你在拟定目标上的进展情况,以及如何提升自身修养的建议,因此你老是能知道你在职业发展的道路上走得怎么样。

 

2. 优秀的经理要管理任务 | Managers Manage the Task

  • 一个卓越的经理应该首先是一个有技术背景的人。做为一个开发者,当你告诉你的老板,因你发现某些不可重入的(non-re-entrant)函数在运行中会发生系统中断,而须要重构一个特定方法的时候,你的老板应该可以知道你在说些什么东东,或者至少会对你有能力解决这个问题表示承认。
  • 一个卓越的经理要有技术的基础,虽然他可能再也不是某方面的专家,但他仍是有至关的技术能力参与到团队的技术讨论中去,或是在困难的状况下给予方法论上的建议和帮助。
  • 一个卓越的经理知道他当时招聘的技术专家是你,并非他本身,因此你的责任是在碰到问题的时候给予解决方案。
  • 好的经理管理的是任务,而不是技术。
  • 一个卓越的经理并不会由于他在某个特定的技术领域的经验而在一个项目计划中强加于你特定的技术,给你挖坑。他承认一般解决一个问题会有不少种方法,多年前的经验和方法在今日未必适用。他不会在没有考虑全部可能的方案的状况下,强制作出技术设计的决定,也不会由于本身之前常用某些技术解决方案,而把这些强加给团队。
  • 一个卓越的经理知道技术是突飞猛进,不断发展的,而找出某个特定任务的解决方法并实施最佳方案的人,应当是开发人员。

 

3. 优秀的经理要善于管理 | Managers Manage

一个卓越的经理是善于管理时间、任务、需求、规范、资源和人员的经理。他会拥有看到整片树林的能力,但同是他相信做为开发人员的你可以照顾好整片树林中的树木。他会经过各类可能的方法关注你的工做量, 了解你的进展状况。毕竟卓越的经理应当会使用各类必要的管理方法和工具来跟踪团队的工做和进展。这意味着你的团队应当会使用一些工具来跟踪和汇报天天的开发任务。这类工具能够是简单的缺陷跟踪系统(如 Mantis 或 Bugzilla),或者是完整的基于敏捷开发流程设计的系统(如 Greehopper)。无论怎样,这些工具会让你的老板可以以一种非主动的方式管理项目。同时,这类工具也可以提醒你老板在什么时间应该积极地介入到项目中来。

一个卓越的经理不会以“微管理”的方式来管理你的工做(除非你在工做上表现实在不好),并且不会常常天天经过各类可能的方式来骚扰你,来得到你最新的工做进展状况。他知道在你解决困难问题的时候,你的大脑须要一个不被打扰的环境,任何打扰只会拖延解决问题的时间。他会知道你何时须要这样的环境来完成工做。

若是一个卓越的经理不知道为何你对一项工做的估测时间增大之时,他会须要你提供时间估测的具体分析,并和你一块儿探讨。若是须要对你的时间估测进行改动的话,他会征得你的赞成,而不是强行地进行更改。另外,当计划外的工做被添加到你的计划中的时候,他会从新安排计划,以确保你能有足够的时间来完成这些工做。(《为何程序员老是不能准确估测项目时间》)

一个卓越的经理会为你提供你所须要的全部资源,以确保你可以在规定的时间内完成工做。
可是,若是你须要的新硬件、软件、或是对工做环境的改变超出了目前项目容许的范围,只要你证实这些变化的确可以提升你的工做效率,他会赞成的。做为一个技术团队的一员, 你的职责是理解投资回报(Return of Investment,ROI)的基本概念。这样的话,你就能像你的老板描述问什么项目计划外的支出可以帮助公司得到更多的回报。

4. 优秀的经理要尊重他人 | Managers Respect

一个卓越的经理会尊重他的团队的专业技能、 时间安排以及各类诉求。他会给团队成员提供各类须要的工具来帮助他们在规定的时间内完成事先承诺的工做。他会尊重你的我的生活和职业发展。当员工须要处理办公室里或平常生活中碰到的各类问题时,他会灵活安排员工的工做。对一个卓越的经理来讲,只要团队的工做在规定的时间内完成,他不会要求全部人严格按照进度去工做,他也不会过分关注每一项工做什么时候完成。卓越的经理人知道在特殊情况下团队须要额外的时间来完成一项工做,但他们知道,当团队夜以继日的在天天晚上、周末、假日加班的时候,这是例外,并非常态。一个卓越的经理理解当团队一周工做60个小时以上的时候,这是由于团队想这么干,并非被逼的。若是员工是被迫如此加班的话,他会意识到这是他本身在开发任务的时间管理上有问题,而不是由于团队的能力问题形成的。

 

5. 优秀的经理要表明团队 | Manager’s Represent

  • 一个卓越的经理会在各个方面表明他的团队,他会成为他所代领的卓越的团队的一个真实写照。他会是一个卓越的领导者,被他的团队视为是一个贡献者而不是一个拖油瓶。
  • 一个卓越的经理会起到标杆的做用,同时他会向全部的团队成员证实他本身也会付出我的的努力来帮助团队得到成功。若是一个经理指望本身的团队一天工做整8个小时,那么他本身也要工做一样长的时间。卓越的经理是那种“按我作的去作”而不是“按我说的去作”的那种老板。
  • 一个卓越的经理会以极大的热情在团队、部门、公司范围内表彰员工的杰出表现。他会常常对有对贡献的员工在公众场合进行表扬,同时确保他们获得物质上的奖励。相反,若是团队失败了,他会认为这也是本身的失败。
  • 一个卓越的经理会和他的团队一块儿分析一个特定任务或事件失败的缘由,这样他们就能够采起一些措施来防止再犯一样的错误。他会为团队的成功负责,他也会为团队的失败担负同样的责任。

 

我彻底了解一个经理的职责远远超出了他所带领的团队。我试图从一个团队成员,而不是一个一线经理,或是一个总监的角度来写这篇文章。对程序员来讲,在基层工做的一个好处是当你不知道你的上级在作什么的时候,你能够随便批评他们。相信我,一个一线的技术经理天天的工做包含了不少和管理团队无关的事情。若是你以为你老板的工做很容易,或者你会比他们作得更好,为何不去试一下作你老板在作的事情?我以为你是不会想要他们的工做或是相应而来的压力的。

若是一个团队有幸可以获得一位卓越的技术经理,这支团队应当积极地保护甚至培养和他们老板之间的关系。一般,开发团队可使用他们老板不知道的方法,经过额外的付出和努力来帮助他们的老板成功。一个卓越的经理会关心他的团队,一样的,一支卓越的团队也会如此地关心他们的老板。久而久之,团队和经理成为了有机的一体,像剑圣通常坚如盘石,望风披靡,成为组织中其余团队的标杆。

在卓越团队中的每个人,都应该反映出这支团队的经理的技能、态度和道德水准。

via 伯乐在线

相关文章
相关标签/搜索