1、李鑫你好,请和大家介绍下你和目前所从事的工作吧?
大家好,我是李鑫,在万户网络技术部工作已经有七个年头了,目前任职技术二部部门经理,主要负责开发人员的工作协调、技术难点攻关和产品规划。
2、你对代码有着怎样的情感?对丰富的编程语言是否有什么特别的喜好吗?
在码农行业工作了这么长时间,无疑我是非常热爱这个行业的;虽然编码过程中有过焦虑有过烦恼,但我仍然坚定的认为这些都值得我为之付出青春和光阴的。
在编程语言方面,其实我说不上对哪一门语言有特别的偏好。我个人认为各种各样的编程语言就像是象棋棋盘上的棋子,应对不同的业务需求就像应对不同的棋局,不同的编程语言也像棋子一样,有自己独特的“七子着法”;优秀的开发者其实不应偏执于一门技术,应该选一两门主编程语言“深挖洞”,同时熟悉其它多门编程语言“广积粮”。
3、在最初做管理的两年里,人员流动率大,这两年人员趋于稳定,在这块团队管理方面有什么感悟。
啊……在任职成为技术部部门经理初期,我经历了很长时间的转型阵痛期,现在回想起来还要摸着我的小心脏,担心它会爆炸了(哈哈)。我的确在这个阶段中感悟到了许多!
在任职管理岗位之前,我的工作是负责一些复杂项目开发和ezEIP、ezSHOP两个产品的研发,那时候的感觉是整个人都锁定在这些项目和产品上,每天工作的目标就是以最好的状态完成手上的功能开发;而接手管理岗位之后,瞬间要面对公司所有的成百上千个在建项目的开发人手协调、广深上海几十个项目经理和售前的技术咨询、部门三十多名前后端开发人员的人员管理、各种疑难项目的难点攻关……当时的感受就像是一辆正在高速公路上飞速往前开的汽车,突然停在一个无限大的足球场正中间,不知道往哪个方向才是正确的。
在转型过程中犯过很多错误,也导致部门成员包括一些核心成员纷纷流失;幸运的是当时得到了上级领导的悉心指导和兄弟部门的体谅扶持,到现在部门也越来越壮大,部门的兄弟们也越来越给力!其实所谓的中层管理,就是配合高层领导制定的战略,按计划地执行并且稳定团队和维护执行成果,相对于高层领导而言,中层管理者是团队的管家。在自己团队内部,对于团队新成员来说,管理者是新员工的导师,在细心教导之外还需要有严厉甚至苛刻的要求;而对于团队核心骨干来说,管理者是这些成员的导游,除了给他们指明道路之外,还要让他们“玩”的舒心。我想这大概是我在团队趋于稳定的过程中的一些感悟吧。
4、你能为我们分享一些优秀的实践,描述一下技术主管应该怎样在团队中开展工作吗?
按照我目前的工作内容,除开代码和技术类咨询答疑之外的工作,大多都是资源协调和进度制定方面的工作内容;代码技术类的内容,对于非技术类的朋友可能会觉得很枯燥,那么我就资源协调和进度制定方面简单分享一下我的小小看法吧。
因为公司业务量非常大,同期开展的大大小小项目非常多,而团队内开发人员的技术水平也有高有低,在项目高峰期单个工作日内有三四十个待处理项目也是常有的事(单程序开发处理项目,有时还会更多),如何把这些待处理项目分配给每一位团队成员,并且确保每一位成员的工作量尽量平均、项目难度和该成员的技术能力尽量匹配、项目完成进度尽量不被拖延,成为了技术部管理者在日常工作安排中的一门学问。
其实说来也简单,就是将项目和团队成员进行归类,说白了就是将“事”和“人”进行归类。
关于“事”的归类,将要处理的事务分为重要和紧急两个维度,提醒大家多去做重要并且不紧急的事务。但对于像技术部这样的后端生产部门而言,是很难从多个项目中对比出哪个项目是更紧急、更重要的。
于是我自己构建了一个象限图,用耗时和成效两个维度来权衡哪些事务应该优先处理。项目处理之前,我先根据项目的需求点预估大概的工作量,同时预估这个项目处理完成之后会为客户、为公司能带来什么样的成效;根据以上的判断来决定哪些事情应该优先处理,哪些事情可以稍做延后。
对“人”的归类则是团队的梯队建设,了解各个团队成员的技术能力和他们以往做过的功能案例,将项目按难易程度和以往案例一一对应的分配给各个团队成员。
5、你是如何激励你团队程序员的,有没有好的方法分享?
外界对程序员的印象通常都是:冷漠、呆板、话少……但真实走近程序员才会发现:程序员的冷漠是外冷内热;程序员的呆板是因为他们是脑科动物,脸上没表情实际大脑在飞速运转中;话少是因为他们把口头语言的神经元用在了计算机编码语言上。真实的人情世故中程序员往往比心思细腻的少女更敏感,却又不愿口述表达。我的程序员之路当年也是从零起步,对于团队成员的心态方面,我往往推己及人:在我当年遭遇困难时,我需要团队的带头人给我什么帮助?在我当年取得成就,我期望受到怎样的认可?把自己的心境放到对方当时的处境上,同时和对方交心沟通,给予他们期望的帮助和应得的激励。
可能以上内容都比较抽象,说一个具体一点的:其实当程序员做了一个牛B功能的时候,会贱贱的期望秀智商;把他的成就公布给更多的人,让大家一起学习,既可以激励个人,也可以让团队成长。
6、在用技术手段完成某战略或运营目标的过程中,有何常见的难题?身为技术管理者,能不能分享下都是如何解决的?
难题就是进度!在市场运营过程中,经常会掉进“计划赶不上变化”的坑。的确,市场环境是随时会发生变化的,往往前面一批功能进度还没完成,市场策略已经变了,程序开发很容易就掉进“改!改!改!”的黑洞。
这其实是一个行业难题,没有终极解决方案的,在做到“技术引领市场”这种境界之前,我们必须要去迎合市场,我们能做的只是缓解这个问题带来的不适应。借用“敏捷开发”和“迭代增量式开发”的思想,将庞大的战略目标拆解成若干个子目标,在目标实施过程中随时准备好应对变化,同时在某个子目标达成后及时收取用户意见进行下一轮迭代。
7、关于大家期望的我们公司的技术创新方面有什么规划,有没有想打造一个什么强有力的技术平台?
当然有想过,而且其中一个平台的一期功能已经试运行有一段时间了,这个平台的目标分为几个:1、 以往我们的项目经验很大程度积累在开发者个人身上,开发者人员流失后这些开发经验都跟着流失了,我们的想法是可以把过往的项目经验也同时积累到平台上,同时减少新项目开发的工作成本;2、每个开发者有个人的编码风格,不同的编码风格出品的质量是参差不齐的,借助这个平台可以统一大部分的编码风格,降低项目错误率;3、在有条件的情况下,可以合并项目的开发工种,减少项目冗余的开发人手,提高出品效率;4、为更多项目上的创新技术提供一个统一的出入口和展示窗口。其它更多细节就不方便透露了,目前还在基于试运行版本上做更多迭代,试运行结束大范围普及的时候大家就知道啦!另外也有一些想法正在酝酿中,以后有机会再跟大家介绍。