对于一个技术团队来说,员工的工作积极性和工作效率往往关系到项目的成败,甚至于公司的发展。那么怎么样提高工作效率和积极性,应该是技术团队主管首要之务。那么从一个技术人员的角度来讲,是怎么看待这个问题的呢?
首先,对于提高工作积极性,有以下几点看法:
1. 合理的项目时间的安排。
不合理的项目时间安排往往会导致项目开发人员的反感,让所有的项目成员参与到项目时间的思考中去,而不仅仅是项目经理。这样,可以让项目中开发人员可以对即将要完成的任务有一个概念性的认识,增强对于一些关键点和技术点的理解,而且项目的核心内容,对于时间的把握,往往是由项目开发的核心人员的能力去决定的,而不是定死的时间。通过这样方式安排出来的时间,可以得到项目组成员的认可,而且可以让项目组成员事先了解技术上的关键点。
2. 项目经理对于需求的把握
很遗憾,在参与的项目当中,一个已经完成的功能,项目经理会跑过来说,这个功能是这样的,而不是这样的,并且这个过程还会重复好几次。请不要责备技术人员,在这种事情上,往往项目经理的责任是大于开发人员的。撇开责任不谈,几次这样一搞,对于开发人员的自信和积极性是一个很大的打击。所以,在项目之初,项目经理应该务必熟悉需求,而不是很模糊的去想当然。这种问题,经常发生在喜欢“拍脑袋设计”的项目经理身上。
3. 适当的技术培训
对于一个技术人员而言,提高是很重要的。在一个技术团队当中,如果在适当的时间,适当的方式可以提高自己的技术能力和其他方面的能力,对于提高积极性会带来非常大的影响。提高技术能力,技术培训是一个比较快捷的方式,虽然这种方式不能让其他开发人员快速的提高,但是往往可以带来一些学习的技术和对一些新技术的认识。另外,对于一些新公司的员工,技术培训可以让新员工快速的掌握公司开发一些特有的东西,以方便快速融入开发团队中。
4. 技术交流时间
同样是员工的提高,技术交流的方式有很多,包括对于技术的讨论,技术资源的共享,甚至对于技术的争论。如果能够提供这样一个平台,培养所有技术人员交流的意识,对于技术人员的技术提高会带来非常大的帮助。
5. 一天的代码量?一天完成的任务?
作为一个技术人员,谁也不愿意项目经理隔个一段时间就跑过来问,这个做到哪了,怎么样了?能完成吗?显然,出于风险的考虑,似乎有这样的必要。但是,作为一个合格的技术人员,应该培养他们自己的风险意识。而不是由项目经理这样监管。为什么这样说?因为对于一个相对复杂的任务而言,往往不是靠时间的堆砌来完成的,可能大部分时间在思考与调研,而不是敲代码,但是这些东西又不是能反应在纸面上。那么怎么样来衡量这个的工作量呢?更有检查代码量的,怎么算呢?所以,解决这个问题,项目经理的监管是需要的,但是请降低频率,并且事先应该确定技术风险;另外,技术人员增强风险意识,对进度的把握,不能完成的时候,应该及时反应。
6. 计划就是变化?
在项目的开发过程当中,曾经听一个项目经理说“计划不就是为了变化吗?”,很惊讶,很不认同这样的说法。不否认在计划的过程当中,需要变化。但是计划的根本目的是为了降低风险,减少变化。如果频繁的变化,还需要计划干吗呢?在一个技术团队当中,计划如果总是这样,那么这个团队就不会有大的发展,而且这个团队的风险性极大。有点扯了,说这个和开发人员有关系吗?有!频繁的变化,会导致开发人员心生厌烦,而且对目标不明确,容易产生逆反心理,试问这样,如何有工作积极性呢?
能够提高工作积极性的因素当然还有很多(还有很关键的,比如待遇,咱高雅一点,不谈),每个技术人员都有自己的关键点与兴趣点,显然能关系到这些,就能提高积极性。
下面再从几个方面来谈谈提高工作效率。
1. 找出技术团队中,最有工作效率(不一定是最牛人)的那个人,学习他的工作方法,并推广之。
这一点是最重要的,技术人员有时候过于自信,往往不愿意去接受别人的方法或者思想,可是如果等能够有适当的方法,让他接受有效率的工作方法,会给整个技术团队带来非常大的提高。
2. 引导技术人员想的多一点,提高完备性意识。
对于一些需求不是很详细,开发人员如果只关注需求上的东西,就会觉得以后有不停的需求变更,那么以后还要再去改这些东西,显然这样工作效率会极其低下。如果在完成这个工作之前,把一些确定需要的功能尽量做全,按照自己的经验把需要的加上,养成这样的习惯之后,对于一些需要变更或者需要添加的东西,你会有这样一种感觉,哦,这我之前已经做了呀。这样不仅能提高自己的效率,而且也会提高自信心.
3. 通用功能组件化。
大多数技术团队都会把团队需要功能公用化,但是这些通用组件的集成方式,往往会是一个大问题.显然,如果能够有合适的组件,再有合适的集成方式,,团队的开发会有非常大的提高.
4. 固定功能自动化。
对于一些固定样式,固定做法的东西,组件化的方式显然并不方便,如果把这些方式能够通过自动化的方法去做,比如代码生成(虽然在很多项目当中并不适用,但是对一些后台管理系统,尤其业务逻辑不是很复杂的系统还是很方便的)。在适当的时候,用适当的自动化方法。
5. 核心员工起核心作用,代码引导开发。
经常遇到项目当中,很多员工不知道如何入手去做一些项目(并不是能力的关系,可能是经验不足,或者对开发方式不了解),这个时候,一个团队的核心员工就应该发挥作用。用这些核心员工的编码以及整个代码结构的设计去带动其他开发员工。在其他开发人员拿到工程之前,他会很自然的知道,我应该怎么去做项目。而不是按任务去分,这样,可能一个团队的核心人员完成的工作和其他的人员是一样的。这就会导致一来一般开发人员的开发效率低,二来核心员工会觉得自己工作的意义不大。