IT技术管理的一些工作思维

一、引言

当前,在国内还比较少有专业的IT职业经理人,通常作法是提拔在项目开发中表现比较突出或者技术精湛的开发人员来当管理,而这样的人员刚开始带团队的时候是没有任何管理经验,是一路“拼”出来的,所谓杀出一条血路。本人也是如此,所以时刻要求自已不停地学习各种管理的方法和工具,正如老子说的“道为体,术为用。”

二、个人与团队

不少人刚转型管理的时候,可能更多的关注事,而不是关注人。不断的把任务分派下去,到点验收,期待得到一个好的结果。遇到任务出问题,就会指责。这样只能导致一遍又一遍的出问题。任务分派下去以后,是否需要和同学聊聊难点,说说你的想法,有问题给予一些简单的指导。出问题的时候,首先应该引导而不是指责。

管理者是团队中的指战员,掌控着整个团队前进的方向和打法。不是一个人在战斗,你的行为影响着整个团队的战斗力。

作为程序员,习惯了单兵作战,不断的钻研打磨自己的技术,就能高效的完成任务,提高战斗力。而管理人员,是需要指挥一群人,去打赢一场又一场的战斗。

所以要做到:

  • 你要给予团队里的成员包容,给予引导而不是指责
  • 给予每个人锻炼的机会,事无巨细的帮助或者亲手操刀,只会毁了团队
  • 夸张点说,管理者决定了整个团队的战斗力,请为团队成员负责也为自己负责
  • 培养人是管理者的职责,团队的进步才是真的进步

三、并行工作

做了管理以后,会发现自己被各种事情同时缠身。经常不仅仅要处理技术那点事了,还可能同时在处理多件事情。要维系干系人、要做任务 WBS(工作分解结构)、要沟通需求、要项目演示、要协调团队关系、要处理各种紧急情况、甚至于要填报材料、要写合同、要解决客户乱七八糟的问题等等。总之刚开始的时候你会发现,你事情多的做不完,被各种事情缠的脱不开身。但这又是你的工作职责,必须要去处理。

而程序员最擅长的就是抽丝剥茧,把一个复杂的需求逐渐理清,结构化后编写成代码。同样的,你也需要在这些纷乱的任务中抽丝剥茧,有章有法的去处理开来。

这些事情如果处理不好,你会发现自己一直处于忙碌之中,而不知道自己到底在忙些什么。

长此以往,你会对自己失去信心,项目也会一塌糊涂。但从另一个角度来说,如果你能有条有理把这些杂乱的任务整理清楚,你一定会有质的飞越。

所以要做到:

  • 拥抱混乱,但别陷入其中
  • 这是展示你真正技术的时刻,如何做好个人时间管理,是你最重要的一课

四、兵马未动,粮草先行

程序员总认为:码代码才是正事,其他事情都是扯淡。但是别忘了,你肯定也经历过需求改来改去导致的痛苦、设计稿一改再改带来的重复劳动、没有设计就开发导致的各种问题。既然我们身为程序员的时候,已经经历过这些苦楚,那为什么要让我们的同事再经受一遍呢?

所以,请重视项目前期的阶段。去搞定干系人、去敲定需求、去定稿设计、去指导代码设计。这些工作完成的越好,开发过程越顺利,项目进度越有保障。

身为团队管理者,你需要额外做很多事情,保障项目的进度。很多事情等到开发阶段再介入,你会发现为时已晚。

所以要做到:

  • 先设计后开发
  • 防范于未然的能力,比救火能力更重要

五、不断挖掘,发现本质

人家讲程序员想得都比较简单,习惯了别人说什么,就做什么。但其实我们也应该多问问为什么。而管理者认为需要有透过表象发现本质的能力:

  • 需求来临的时候,你能否透过现有的需求发现客户更深层次的需要?
  • 某同事任务完不成的时候,你能否透过日常点滴发现他完不成的原因?
  • 测试团队和开发团队起冲突的时候,你是否能透过日常的交流发现矛盾的根源?
  • 团队士气低落的时候,你能否透过大家的表现悉知团队状态低落的问题所在?

要想做到一步到位透过表象发现本质我认为是很难的,需要大量的锻炼。我们保持一颗好奇之心,就能把问题的本质掌握的八九不离十。不断给提出问题,同时去挖掘问题的答案。

六、以人为中心,而不是机器

程序员天天和机器打交道,习惯了非 0 即 1 的二进制生活。但管理者是需要和人沟通的,与人打交道。所以面对我们的同事,面对整个团队,应该多考虑人,以人为中心。

所以要做到:

  • 减少应激反应,多听取别人的说法,不要急于反驳
  • 保持同理心,多从同事的角度想想,出错前做好预防工作
  • 不要轻易给同事下结论,贴标签,人都是会改变的,这次不行不代表下次也不行
  • 不能为兄弟们挡刀并引领兄弟们前进的老大是不值得追随的,弟兄们在你手下做事受尽委屈,争不了一口气,那这个老大也做不长

七、平衡

相信大多数程序员都有个毛病,追求完美。代码格式要最舒服,代码逻辑要最简洁,细节一抠再抠;就像强迫症一样,追求自己代码的完美;作为程序员来说,这是一个非常棒的习惯。

但作为管理者来说,最需要的是平衡。一味的追求完美,会导致项目成员压力大增,成本不可控制。作为管理者来说,我们都希望自己带的项目细节无可挑剔,功能一应俱全,代码质量无懈可击,团队氛围融洽得体,项目质量高的无以复加,项目周期如约达成。但其实项目里,所有事情都是互相平衡的。工期和细节打磨之间的平衡、成本与需求开发的平衡、批评与赞扬之间的平衡等等。

平衡是一方面,另一方面是迭代。保持迭代,一步一个脚印的把项目逐步推进。

所以要做到:

  • 把握平衡的尺度,是项目逐步趋于完美的路。
  • 不要追求一步到位,完美是迭代出来的。

八、少写代码可以,脱离技术不行

我们上面说会有很多琐事缠身,可能导致你几乎没有写代码的时间了。这是正常的情况,你的工作不是去当机枪手,你的工作是指挥大家战斗。但这就代表我们要脱离技术了吗?我认为不是这样的。我们可以少写代码,但我们不能抛弃技术。

我们程序员做管理,最大的好处就是,不会出现外行指导内行的情况。所以我们即便转型了,也要时刻保持对技术的敬畏和对技术的关注。你可能不需要对各种技术的细节了解的特别透彻,但要心里有底,知道各种技术的适用范围、使用条件、优势劣势等等。保证在项目需要的时候,能够快速选型。而作为一个团队管理者,最大的一个好处在于可以让团队同事去学习,让他学习整理后来教你,以达到快速学习的目的。

所以要做到:

  • 不要抛弃技术,它总有一天会拯救你
  • 学如逆水行舟,不进则退

九、总结

程序员的管理不要搞得很复杂,也做不到如人民币,把事情做好,自已开心就行。