程序员到底该怎么管理?

8,585 阅读13分钟

序:管理学对程序员不起作用?

很多公司很擅长员工的管理,可以让员工和公司目标一致,然后其乐融融地共赢发展

这很容易做到。因为管理这门学科伴随着人类的发展而来,已经成熟到极致了,除非你们领导不愿意引用别人的经验,否则没有理由做不好。

然而,程序员好像有点奇葩,有些常规的管理方式对他们无效,甚至起反作用。这导致很多程序员被越管越乱,甚至影响到了企业的经营。

很少有人愿意花费精力去研究他们,或者研究者根本走不进他们的世界,更无法把他们从自己的世界里呼唤出来。

幸好,我不小心跌落进这个圈子,卧底多年,今日觉醒,决心投诚:是该揭开谜团的时候啦。

一、程序员是怎样一群人?

8c9240bce353b184df958d2b6c7db1c4.jpeg

1.1 程序员的优势

程序员的优势就是有技术

是的,程序员最大的优势就是有技术,这也是唯一优势。

这种优势在他们看来无可替代,比如:

你怎么能拿产品和比,我能画原型,他能写代码吗?

文案?编辑?去写公众号文章,你让她们来写代码,这个功能,明天就要!

不管遇到什么问题,程序员的杀手锏就是:我可以做XXX,他们能写代码吗?

只有程序员能写代码,对于程序员来说,可解一切。

1.2 程序员的劣势

程序员的劣势主要是以下七百多点

  • ……
  • 不善沟通
  • 眼界狭窄
  • 极端
  • 自傲
  • 认死理
  • 不洗头
  • …… 程序员的这些劣势,完全来自于他们的优势

写代码啊,你写不了,所以你得比我会沟通,得主动跟我沟通!

可能有友军要拔刀了,他认为我是在诋毁程序员。其实,我70%的时间也是在做程序员,但是其余时间做过产品UI运营文案管理主播写手等其他角色,当我从别的角色去接触程序员时,我就感受到了一股浓浓的程序员风格

相信到这里,程序员依然不承认他们有劣势,因为只有他们能写代码。

是的,这就是他们的世界:你进不去,他们也不出来,其实是出不来

程序员的这些所有劣势,完全由优势产生。这么看来……

1.3 产生的原因

可能很多人会觉得,程序员也是人类啊,应该具备社会人的基本素质。但是,为什么他们格外地不可理喻呢?!

是的,确实应该是这样,但也不是这样。

引用编程中的两个术语,一个叫“继承”,另一个叫“重写”。

技术人首先继承了社会人,就是社会人共有的素质技术人也有。

但是,在工作环境的作用下,比如与机器打交道的时间多于同人沟通,这让技术人又重写了相关的方法,抛弃了社会人的方法,改为执行自己的方法。

举个例子:

领导批评员工,员工虽然觉得被冤枉了,但是出于未来发展的需要,或者仅仅就是嫌找工作麻烦,忍了。这是社会人共有的,大家都这样。但是到技术人这里,就被重写了,领导批评技术员工,技术员工觉得被冤枉了,心想老子凭一身技术(会写代码),哪里不能混口饭吃,于是就和领导干起来了。

有技术这个优势,导致技术人流动性大,归属感差,不顾全大局,更关注眼前的局势。其实,掌握好了相应的方法,这些都是可以解决的。

二、如何对待程序员?

143db39a4bb357aa231a4d058ee2cb01.jpeg

2.1 承认他的技术

承认他们的技术,这是第一位。你既然用他,不也是因为他能写代码吗?否则,你就自己写了。因此,你不妨认可他,信任他,程序员对于信任是没有抵抗力的,他们有“士为知己者死”的侠义之风。如果,你首先想到的程序员肯定在糊弄我,那他肯定会转而糊弄你。

其次,才是完善他们的劣势,这是第二位。如果顺序弄颠倒了,过分指责劣势,会产生问题,往往这一部分会被很多管理者忽略

举个例子,一个销售卖货卖的好,但是看不懂代码,大家认为这很正常,因为大家都看不懂代码。但是,如果是一个程序员代码写得好,但是看不懂人情世故,大家却认为这不正常了,其实道理是一样的,这只是一种认知误区。

2.2 了解他的渴望

程序员中也分好多类人,有想管人的,有以教他人知识为自豪的,有想赶紧发工资还房贷的,有想干两年就创业的,他们的渴望需要视情况而定了,不能一概而论。

在此,我只说一般纯粹技术人的渴望。一般纯粹技术人的定义就是:生活压力不是很大,最近五年内只想以技术为职业,性格内向一线技术岗位人员。这类人也是互联网科技公司里的大多数的员工。

依照强烈程序划分,技术人的渴望依次是:技术成长>成果被认可>高薪>工作舒适度

这里面可能有个误会,高薪不是第一位,有人说我又开始洗脑了。这是有个前提的,那就是没有较大的经济压力,或者说薪水都一样的情况下,他们的渴望等级。

我的观察中发现,当问及技术人,如果给你降低一些薪水,但是让你跟随一个大牛共事,他们是愿意的。

有了这个排序,就可以干好多事情了。

先从高层次的进行满足,其他可以削弱。顶级需求无法满足的,就要用次级的加倍弥补。

比如:

  • 公司里的技术头,最好是个技术大牛。
  • 谈发展少谈公司发展,要谈他们的技术发展。
  • 技术员工不是抵触加班,只要让他们觉得干的有意义,成果被认可,不用加班费也行。

三、如何建设程序员团队?

708d62554f2680ba7838edc136f8c808.jpeg

3.1 技术团队的组建

组建技术技术团队,要看公司需求。

一般市场上分为两类,一类是专门接活的外包公司,这类公司的特点就是多个项目来也匆匆,去也匆匆。这种团队的最佳组成一般是“1+N模式”。就是1个能力一点的,带着N个能力一般的。这样对于业务稳定和成本控制都有优势。

另一种就是经营自己产品的公司,这类公司因为产品需要长期运维,多次迭代,周期比较长,对团队的要求如下:

  1. 人员要稳定。要重视信息的延续,要保证多数技术人员理解产品的内涵,杜绝出现断层。断层就是真正了解这款产品的技术人员没有了,新招来的技术只能从业务经理那里去了解。这是致命的打击,无异于重做。因此,需要控制人员外流,同时为了保证团队的积极性和应对离职风险,还需要一定比例的合理流动
  2. 不需要全部是能打仗的人。外包公司技术团队可能需要全员出动,因为来项目要快速抢钱。而做自主产品的技术团队不是全程高压的,有一定的生命周期,更新迭代的时候需要高压,正常运维时需要休养生息和团队成长。

做自己产品的技术团队最好的构成模式就是“A+B+C模式”,就是高等技术+中等技术+低等技术

首先,低等技术可以满足技术成长,因为有高等,有中等,路漫漫其修远兮。前期做着最基础的活,成长路径是先到中等,再到高等。两年内是稳定的。技术成长是他的第一需求。

然后是中等技术,他也有技术成长的需求,因为上头有高等技术。同时他也可以满足成果被肯定的需求,因为下面有新人可以带。但是成长到一定阶段他需要空间。如果有合适职位,他可以晋升到高等技术。他实在要走,如果薪资留不住,正好补充流动性

最后是高等技术。他这一层,不用技术成长了,或许会有成果被肯定的需求,但是更多的是他们薪资已经很高了。一般很稳定。当然也不怕他走,走了正好给中等留出一个空间

依照这种模式,分层级地满足技术人员的需求,既保证了合理的流动,也保证了信息不断层。

而全是高手的团队,尤其同一个工种下多个高手的团队,因为对技术的理解不一致,经常会吵架,反而不利于工作开展。

3.2 解决团队的迷茫

程序员很容易迷茫。

  • “又改需求,上次改的也没用上,这次还改个什么劲?”
  • “天天抬头看屏幕,低头写代码,什么时候是个头啊?”
  • “我的能力很强了,什么时候给我涨工资,难道非要提离职才行?”
  • ……

其实哪个职业都会有迷茫,只是程序员更容易迷茫。

和一些同行交流的时候,当问及他们对职业有什么规划时,有一部分人的态度是:啥规划,好好干呗,边走边看

可以想象,对自己的职业都没有清晰规划的员工,到了企业遇到困难时,势必会加重这份迷茫。

对此,我给出的建议是:当一个技术人员入职的时候,给他设定一个职业规划

你看,你自己没有规划,我们给你设计了一个,你可以参考一下。

  • 我们的技术工程师分为8个等级:
  • 第一等级是实习生,月薪是4000~5000,具备基础编程能力,可以做到一些简单页面的编写。
  • 第二等级是初级软件工程师,月薪是5000~7000,要求1年工作经验,参与过2个以上项目,可以在组长的指导下完成项目的一部分。
  • 第三个等级是中级软件工程师,月薪是7000~10000,要求2年工作经验,独立开发过3个以上项目,可以独立完成中小型项目。
  • 第四个等级是高级软件工程师,月薪是10000~12000,要求3年工作经验,参与过大型项目开发,熟悉开源框架。我们会为他们配置笔记本。
  • ……
  • 到了第六等级之后,说明你已经对于技术比较了解了,这时候我们会给你两种选择,你可以选择技术专家的路线,也可以选择技术管理的路线。
  • 我们技术管理的薪资是15000~25000,具备不用考勤的特权,但是要求也比较高,需要你做到……

当然这需要公司人力资源的支持。

即便公司不支持。聪明的技术管理在自己的一亩三分地里也可以这么说:

根据我的了解,我们这个行业普遍分为这么几个等级。依你现在的能力,你还处在初级软件工程师的层级,你比实习生要强,但是还有很大的进步空间,最近三年内,我们想把你往高级软件工程师的层级去培养。一方面需要你自己依照高级软件工程师的标准要求自己,另一方面我们也会时不时地给你一些难题,促进你成长。在这过程中,你会成长为高级工程师,同时也给公司带来你的价值。到时候,我们再来谈谈,你是愿意走还是愿意留,你想往哪个方向发展。

有了这些指导之后,员工会看到一条清晰的发展路线,知道自己后面的路径,可以降低迷茫的概率。

当员工遇到些难题或者困惑时,比如对需求的优化厌烦时,如果他自己能克服最好。如果他实在有些迷茫,你可以提醒他:别忘了,我们是要往高级软件工程师方向发展的哦,那时候还需要你去引导别人理解呢,现在难道自己都理解不了吗?加油哦!

程序员是一群极其可爱的群体,他们大多单纯善良理性可靠。但是,由于职业特性,也让他们变得有点教条、不善于变通,喜欢计划,不喜欢变化。

1.jpeg

甚至他们和女票本打算是去A商场逛街,结果女票中途改主意要去B商场,程序员都会很生气,说这是中途改需求。又或者女票出门去买裤子,结果买了个褂子,程序员也会说没有完成需求。

我也是一个程序员,没有贬低自己的意思。

以上所述的种种劣势,是我跳出程序员这个岗位,同其他职业交流的时候,别的行业人员给我抱怨的。

当我汇总起来,跟其他行业再交流时,他们居然把头点到地下说:

是的,是的,是的,就是这样,终于有人总结他们了,辛苦你了。

程序员喜欢封闭在自己的世界。

如果没有人打破,他们就一直沉浸在自己的世界,对外界不看,也不听,认为一切安好。

因为我发现,程序员的职场是有瓶颈的,有很多职业都能做到很高的职位,比如产品经理,比如销售,甚至财务或者人力资源这类后勤部门,都可以干到副总,总裁。但是,程序员却很少。

你可能会说:雷军李彦宏李开复这些行业领袖,他们也都是程序员出身啊。是的,没错,但是他们的综合能力已经跳出程序员的特性好几层了。

我们要想向他们看齐,必须清楚地认识自己

我这也算是打开个小门洞,起码有点裂缝透进来点,不管是对是错,不说随我,不听随你。


我正在参与掘金技术社区创作者签约计划招募活动,点击链接报名投稿