作为一个普通的程序员,我也经历了从最初的激情万丈,到现在只把它作为一种普通的谋生手段,而这些改变大都发生在不经意间,根据我的亲身感受,我想提出一些对软件企业"工作环境"的看法。
根据软件工程的经典观点,人的情绪是软件开发的大忌。程序员情感和情绪的变化对其工作的影响要远远大于上级的压力所产生的作用,软件开发管理的目的就是为了消除个人化在软件开发过程中的影响,最好也要减少到最低限度,单独只强调压力给公司带来的恶果比比皆是。
国内大部分软件公司情况是这样,一层一层往下压,最底层的程序员最惨。上层不重视下层的感受,下层也不会主动想上层诉说,双方缺乏沟通,领导不重视企业文化建设,一味用条条框框约束员工,所谓"宽松的工作环境",一句空话!
那么,应该如何去营造这样的一个"宽松的工作环境"呢?
第一, 公司应该在制度上明确什么样的位置应该承担什么样的压力
人的本能决定,如果可以一下将压力转出去,给别人,是多么痛快的一件事情呀!于是,尽可能的将压力向下压是他最想做的事情,他个人情况一定会随着压力交给下面而转好,整个项目的压力肯定会升高,风险增加,这样便使得最底层的程序员成了开发中最不稳定的部分。
公司应该从制度上明确各层人员的职责和权限。大家应该分清什么样的压力应该由谁来负责,那么这么一层压力就应该在这个人身上承担,他所分担出去是下面的人可以也应该承担的压力,领导应该尽量承担压力。公司管理人员把责任和权限分配给部门经理,部门经理同样将责任和权限分配给项目经理,项目经理再进行责任和权限的分配...这些过程,就是我们实际的工作过程。在这个过程中底层人员,比如程序员,不是不用负任何责任,他们也要对他们的工作负责,只是责任有大小,不同职位的人员负责不同的责任,程序员应该负的责任是按时按质完成分配的任务。当然,这样的前提是需要完成的任务不是乱派的,而是经过考虑、商讨、权衡的结果,这个结果应该是在接受任务的人能够承受的范围之内(基于时间、付出、获得)。
上层领导说实话是没有多少责任的,也不应该承担很多实际责任,因为他们应该把精力放在公司的长远计划上面。领导人员要精简,用少数懂行的人来领导,就算平时几乎不做什么实际的事情,公司也照样转,谁来领导都一样。原则就是领导不要涉及具体事务。
项目经理是最大的责任者,一个项目如果无法完成应该直接追究项目经理的责任。这些责任不应该由程序员来承担。了解手下程序员的实际能力,制定适合的计划是项目经理的职责。明明知道某某可能会完成不了某项工作,拖慢了整体进度,为什么制定计划时没有发现?又为什么没有及时换人补救?说句玩笑话,项目经理的原则就是"背黑锅我来,送死你去"。
程序员只要把自己分内的事情做好就可以了。如果程序员能力差或者工作不积极总是无法完成任务,对此的评价应该由整个公司来做,而不是项目经理。
第二, 积极的沟通
很多国外公司,每一位经理都有一个例行任务,就是每个月都必须和下属进行一次单独的沟通,这是非常好的制度。而且这些经理大多接受过沟通技巧的培训,什么开放式提问技巧、引导方式、沟通礼仪等等,可见沟通已经提到了很高的位置。但这不是中国式的训话,沟通的目的是要下属真实地表达其内心的感受,而不是听唐僧说经。在大多数情况下,下属并不十分信任上司,害怕说真话,害怕被穿小鞋,这也是经理们不专业的地方之一。
大量的事实证明,最有效的沟通方式是非正式的沟通,也就是以私人身份为基础的沟通,比如就餐、度假的时候等等,总是就是抛弃身份,以真实的朋友身份进行沟通。这样,下属才能体会到自己是被重视、被理解的。如果自己的意见被采纳,或者上司能够针对下属的苦闷在日常工作中给予开导,员工的积极性会有非常显著的提高。
第三,建立项目奖金制度
你让我提前完工,我做到了。结果上面奖赏的时候,都是你的功劳,没有我的,我能甘心么?换你,你也不能吧?如果我做不到呢?上面惩罚的时候,你把责任都推到我身上,结果我被批评,你却没事了。咋啥功劳都是你的,啥苦劳都是我的啊?我可真是大头。有一定效用的奖励办法,对程序员们能提交高质量的产品有很大的帮助的。如果,领导让你在2天内干完本应该3天的工作,而没有任何奖励的话,一次两次似乎程序员们还可以忍受,但是次数多了以后,我向大家一定都会有一种抵触情绪的,至少我会有。这样,久而久之,程序员们的心里都会很烦躁的。工作的质量自然而然的就下降了。
做之前把奖金分配制度先说明白。这样大家心理清楚干完之后能拿多少,做起事来也没什么怨言。只要想着有奖金拿我想大家即使是自己加班也不会有多大抱怨。早干完早拿钱我想大家都认同这点吧。当然我不否认还是有些贪得无厌之人存在,你给多少钱都是抱怨拿得少干得多。这样的人我想最好的办法就是开掉。
项目奖励制度是一定要有的!甚至程度都不用太高,平均能和程序员半个月的薪水比就可以,但一定要有!这样做能够把程序员的积极性调动起来,让他们感到自己并不是整个项目中无足轻重的小卒,至少公司对他们的贡献是看到了,给予了评价了。
以上三点是一个软件公司所必需的最基本的三点,如果这些都做不到,那么程序员估计也就开始到处浏览招聘信息,精心准备自己的简历,另谋高就了。
根据软件工程的经典观点,人的情绪是软件开发的大忌。程序员情感和情绪的变化对其工作的影响要远远大于上级的压力所产生的作用,软件开发管理的目的就是为了消除个人化在软件开发过程中的影响,最好也要减少到最低限度,单独只强调压力给公司带来的恶果比比皆是。
国内大部分软件公司情况是这样,一层一层往下压,最底层的程序员最惨。上层不重视下层的感受,下层也不会主动想上层诉说,双方缺乏沟通,领导不重视企业文化建设,一味用条条框框约束员工,所谓"宽松的工作环境",一句空话!
那么,应该如何去营造这样的一个"宽松的工作环境"呢?
第一, 公司应该在制度上明确什么样的位置应该承担什么样的压力
人的本能决定,如果可以一下将压力转出去,给别人,是多么痛快的一件事情呀!于是,尽可能的将压力向下压是他最想做的事情,他个人情况一定会随着压力交给下面而转好,整个项目的压力肯定会升高,风险增加,这样便使得最底层的程序员成了开发中最不稳定的部分。
公司应该从制度上明确各层人员的职责和权限。大家应该分清什么样的压力应该由谁来负责,那么这么一层压力就应该在这个人身上承担,他所分担出去是下面的人可以也应该承担的压力,领导应该尽量承担压力。公司管理人员把责任和权限分配给部门经理,部门经理同样将责任和权限分配给项目经理,项目经理再进行责任和权限的分配...这些过程,就是我们实际的工作过程。在这个过程中底层人员,比如程序员,不是不用负任何责任,他们也要对他们的工作负责,只是责任有大小,不同职位的人员负责不同的责任,程序员应该负的责任是按时按质完成分配的任务。当然,这样的前提是需要完成的任务不是乱派的,而是经过考虑、商讨、权衡的结果,这个结果应该是在接受任务的人能够承受的范围之内(基于时间、付出、获得)。
上层领导说实话是没有多少责任的,也不应该承担很多实际责任,因为他们应该把精力放在公司的长远计划上面。领导人员要精简,用少数懂行的人来领导,就算平时几乎不做什么实际的事情,公司也照样转,谁来领导都一样。原则就是领导不要涉及具体事务。
项目经理是最大的责任者,一个项目如果无法完成应该直接追究项目经理的责任。这些责任不应该由程序员来承担。了解手下程序员的实际能力,制定适合的计划是项目经理的职责。明明知道某某可能会完成不了某项工作,拖慢了整体进度,为什么制定计划时没有发现?又为什么没有及时换人补救?说句玩笑话,项目经理的原则就是"背黑锅我来,送死你去"。
程序员只要把自己分内的事情做好就可以了。如果程序员能力差或者工作不积极总是无法完成任务,对此的评价应该由整个公司来做,而不是项目经理。
第二, 积极的沟通
很多国外公司,每一位经理都有一个例行任务,就是每个月都必须和下属进行一次单独的沟通,这是非常好的制度。而且这些经理大多接受过沟通技巧的培训,什么开放式提问技巧、引导方式、沟通礼仪等等,可见沟通已经提到了很高的位置。但这不是中国式的训话,沟通的目的是要下属真实地表达其内心的感受,而不是听唐僧说经。在大多数情况下,下属并不十分信任上司,害怕说真话,害怕被穿小鞋,这也是经理们不专业的地方之一。
大量的事实证明,最有效的沟通方式是非正式的沟通,也就是以私人身份为基础的沟通,比如就餐、度假的时候等等,总是就是抛弃身份,以真实的朋友身份进行沟通。这样,下属才能体会到自己是被重视、被理解的。如果自己的意见被采纳,或者上司能够针对下属的苦闷在日常工作中给予开导,员工的积极性会有非常显著的提高。
第三,建立项目奖金制度
你让我提前完工,我做到了。结果上面奖赏的时候,都是你的功劳,没有我的,我能甘心么?换你,你也不能吧?如果我做不到呢?上面惩罚的时候,你把责任都推到我身上,结果我被批评,你却没事了。咋啥功劳都是你的,啥苦劳都是我的啊?我可真是大头。有一定效用的奖励办法,对程序员们能提交高质量的产品有很大的帮助的。如果,领导让你在2天内干完本应该3天的工作,而没有任何奖励的话,一次两次似乎程序员们还可以忍受,但是次数多了以后,我向大家一定都会有一种抵触情绪的,至少我会有。这样,久而久之,程序员们的心里都会很烦躁的。工作的质量自然而然的就下降了。
做之前把奖金分配制度先说明白。这样大家心理清楚干完之后能拿多少,做起事来也没什么怨言。只要想着有奖金拿我想大家即使是自己加班也不会有多大抱怨。早干完早拿钱我想大家都认同这点吧。当然我不否认还是有些贪得无厌之人存在,你给多少钱都是抱怨拿得少干得多。这样的人我想最好的办法就是开掉。
项目奖励制度是一定要有的!甚至程度都不用太高,平均能和程序员半个月的薪水比就可以,但一定要有!这样做能够把程序员的积极性调动起来,让他们感到自己并不是整个项目中无足轻重的小卒,至少公司对他们的贡献是看到了,给予了评价了。
以上三点是一个软件公司所必需的最基本的三点,如果这些都做不到,那么程序员估计也就开始到处浏览招聘信息,精心准备自己的简历,另谋高就了。