正文
一个有大局意识、能预想到你的需求如何可以分解为模块和组件的设计师?
一个习惯于主动行动、能很好地配合管理层的工程师?
or :
-
在短时间内可以编写数千行代码?
-
快速做出对客户非常重要的原型系统。
-
快速领会业务流程,设计围绕根本需求。
上面提到的这些特质,它们互相并不是排斥的。但第一种类型的程序员可能是经验丰富的老手,后面那种类型的更可能是充满热情的新手,关键看你的岗位、行业需要怎么样的人。
当我了解清楚自己的实际需求后,我需要针对职位进行描述,这样无论通过猎头、猎聘网、Boss直通、51Job等等方式,都可以让读者查看是否该岗位符合他的实际情况。职位描述如下所示,一般包含以下三部分内容:
我把普通程序员分类为“独狼”和“农民”这两类,“独狼”更多喜欢一个人完成工作,也就是说,当问题出现时,他们的第一反应是去独自解决问题。他们常常跳过规划,最终得到一次性的解决方案。
从团队角度来看,我更加希望软件开发像种地一样。农民会有条不紊地了解地形、研究土地的化学组成成分、种植、浇水、除草,最终收获粮食。可靠、可扩展、可维护的软件都是这样有条不紊地开发出来的,这其实是日积月累的能力。
许多“独狼”都是优秀的程序员,但是你需要对他们进行“贴身”管理。他们有着当主角和引起团队内部纠纷的倾向和能力,需要做的是尽量多地关注他们的工作,了解他们具体的工作内容,如果出现问题要马上采取措施纠正,否则最终情况可能会失控。
只能当“独狼”的程序员不会在任何一家企业待太久。要么是你对他们总是自顾自地向前冲感到厌烦而辞退他们,要么是他们对长期受限制感到厌烦而主动辞职。
这一类人指的是承担需要极大努力才能完成的任务,并最终取得成功的人。在付出这些非常人所能承受的努力方面,“英雄”和“独狼”有点相似,但“英雄”更能够在团队工作和开发过程获得成功。此外,“英雄”大多是团队内部培养出来的,不是从外面雇佣过来的,很多时候他们会在企业中崛起为超级明星。管理“英雄”具有一定的挑战。如果你总是希望他们付出超人的努力,时间长了后会发现使用过度,造成和你之间的矛盾。
此外,作为技术团队管理者,你也需要有一定的技术功底,能够让“英雄”觉得可以从你这里学到什么,这样才能合作更为愉快。最后,需要对“英雄”的薪资、福利有所倾向,并且多和他们沟通,让他们自己选择技术方向,并把他们放入关键项目里。
内向的人表现为非常沉默、内敛,几乎感觉不到他们的存在。他们可以把工作完成得很出色,但是对团队执行力或者在会议上几乎没有什么贡献。他们在一对一的时候能进行交流,但退回到人群里以后几乎消失了。
在会议上让他们发言时,当他们分享自己的意见或见解时,要给予正面的支持,这样可以逐渐帮助他们建立自信,让他们感觉到自己对于团队是有贡献的。找机会跟他们交谈,当面认可他们的贡献。与他们的交流要单独进行,通过一些小事情与他们建立特殊的联系,例如分享工作经验、交流管孩子心得。总之,想方设法建立更紧密的联系。
尽量避免团队里存在具有很强负能量的人,他们会通过挑拨离间和散布不满情绪来毒害整个开发团队,并且对组织造成严重的破坏。如果没有他们,那些负面情绪可能永远不会出现。比如“团队管理者根本不关心大家”,带有负能量的人会进一步夸大事实,把一些细枝末节的事情说成是管理层故意针对程序员的行为。客气点说,这样的言论是公然藐视真理和道德的。发现这类人,尽快沟通或处理吧。
不管是一心想当“老大”,不择手段压制同伴的奇葩,还是对人很粗鲁的奇葩,或是到处借钱的奇葩,对于各类奇葩,早点让他们走,无论他们的水平有多高,都不要犹豫,也不要期望自己能够改变什么,他们的性格是受了家庭或者个人经历严重影响的。让这些人尽快远离团队,这样整个团队都会轻松很多。
做好新员工入职工作非常重要。这是一个向新员工表达你对他们非常看重,而你的团队管理与运行状况也十分良好的机会。
在大多数公司里,团队管理者一般都要负责为新员工寻找工位。我需要考虑团队现有的人员配置,找到与新员工个性适配的老员工,另外还要考虑到新员工的代码职责,以及团队领导、技术领导和架构师的座位。
我的习惯做法是带着新员工逐一认识团队成员,自己带着他去食堂吃午饭,并指定新员工的导师(技术上的),然后和他聊聊最近一个月打算给他安排的工作等等。