项目管理需要的知识,是一个体系的知识,包括项目管理本身的知识体系,以及项目管理要应用到的领域所需要的知识体系,然后就是管理的技能,当时最重要的,是软技能,也就是人际关系技能。
管理的核心:人。
管理的四大要素:
1. 选择正确的人
2. 为他们分配正确的工作
3. 保持他们的积极性
4. 帮助团队凝聚起来并保持团队的凝聚力。
1、 选择正确的人
首先要学会看人。虽然我不是人力资源专家,但是我清楚一个软件项目的成功所需要的成员素质,主要就是沟通能力和责任心。
由于工作需要,我面试过一些人,有毕业生以及有工作经验的,有各个大学的,大专生和本科生。我就开始学习如何考察一个人是否符合团队需要。
一般来说,面试的时候,问题有职业生涯规划是什么,未来期望在公司获得什么样的成长,对软件工程的认识,对自己的职业技能的描述,这都是常规问题。比较重要的是,我对每个人都会问,是否有团队开发项目的经验,不过大多数都没有。而且在大学期间,有完整作品的学生也比较少,大多数是作业。
一个人的气质类型都不太一样,有说话比较快的,也有说话慢条斯理,有自信心满满的,也有胆小的。管理要根据每个人的不同性格特征来进行管理才能获得成功,所以管理人员必须研究人的心理学。
初步面试完毕,进入试用,就要考察他的主动性。《把信送给加西亚》里面说到,别人没有叫我们就主动去想事情做,那样获得的回报是令人敬佩和羡慕的,别人叫一次我们就去做,那样获得的回报是可观的,别人叫两次我们才去做,那样获得的回报是社会平均水平,别人叫三次才去做,获得的回报是微薄的,别人叫了多次才去做,那样不仅仅没有回报,反而会被人责骂。但是最终结果都要去做事情,我们何不主动些呢?
有些人就等着分配任务,然后完成任务,领工资,根本没有去为公司着想,为自己着想,这种人只能永远被人利用。有些人会想办法改进,并且经常有好的创意,这种人最终会获得成功,因为他主动了。我们选择的人要选择比较主动,能够及时领悟公司的任务并且及时去做甚至改善的人。所以选择人是一门学问。
2、 为他们分配正确的工作
分配工作是很容易的,但是要做到正确分配工作就有学问了。
我进行分配任务的时候,刚开始是任由他们自己决定要做什么,然后我再综合的进行一个整理,后来发现这样子任务并不能分配的较为合理。接着就是我自己给员工分配任务,后来发现,这样子分配的任务员工有些接受不了,例如时间,技术难度等等,员工往往会有情绪。
所以总结了以往的经验,分配任我采取了宏观控制加上微观调整。首先我要明确的知道每个员工的各项知识技能水平。我制作了知识技能水平考核表,以此来把握每个人的技术水平,接着,根据项目纵向划分成各个模块,模块的大小以及数量是有讲究的。每个人都负责从表现成到数据访问层的编写,这样做好处第一是可以让大家把握自己项目的框架,培养员工的项目管理基本知识,第二是避免按层次划分中出现的互相扯皮现象,比较适合于创业型企业的中小项目。然后根据员工以往的项目经验,让每个员工谈谈对各个模块的认识,以此来推荐他做什么模块。员工对感兴趣的模块会说的比较多,比较有见解。接着再根据他们的以往的编程经验,速度,定出两周内要完成的任务,不能定太多周,因为项目刚刚开始时无法预知进度的。
分配正确的任务的要点,就是最好要先集体说明一下项目的各种需求,让每个员工知道这个项目的规划。接着要单独的和每个员工谈话,让他做喜欢的工作。如果出现冲突,我就在中间起协调作用,让大家分别谈谈对项目的了解和建议,以便知道某个人想做这个模块的动机是因为认为比较简单想让自己的工作轻松一些,还是认为比较难有挑战性,想挑战自己的技术高度。接着再根据他以往的项目经历,来说服他做他擅长的模块,以便提高项目的成功率。因为项目管理中很重要的一个原则是,一个成员做的工作,应该是重复过去成功的项目经验,而不是挑战他的技术高度,否则对项目是有害的,会导致项目失控。也就是说他个人的技术水平可能得到提升了,但是这是以项目作为他的试验品为代价的,这个人的提高只能在下一个项目中体现出来,正所谓前人栽树后人乘凉。
分配任务的时候要非常谨慎和小心,因为往往公司员工比较不敢对领导提出异议,所以就会造成任务完成质量不高或者不能按时完成,使项目管理无法按计划进行,这是我最深刻的体会。在团队成型初期,我们必须按照一定的难度和数量来分配,并给予足够的技术支持和帮助,在做的过程中要不断跟踪,等到团队成熟以后,对项目进度的管理将会越来越顺利,越来越准确。
3、 保持他们的积极性
首先,人的积极性是个很有趣的东西,把握拿捏不好分寸,就会影响到一个人做事情的积极性。
在这里我引用一段很经典的X,Y理论:
X,Y理论可以用来分析一个经理的管理行为,如果这个经理的思想是X理论的思想,那么他就会采取比较强硬的措施,例如军队式的管理方法。这种经理就会用各种严格的规章制度来强迫人们进行工作,触犯了规章制度就会受到经济上的惩罚。我认为这种管理方式只适合一些标准化操作程度比较高的企业,对于软件行业来说,人才得到了极大的重视,近期人才流动性较大,员工的个性也比较强烈,无法应用这种强硬的措施。
人较低需求层次是生存,高层次是自我实现,在软件行业中,生存已经不是问题,每个人都抱着自我实现的目标而奋斗,所以我认为在软件行业中采用Y理论比较适合,即一定要让员工参与到决策中。举个例子,有一个员工曾经向我抱怨,没有让团队的人参与一些事情的决策,他觉得不像团队,做事情效率比较低下。所以要让大家有积极性,就要让人感觉,这个项目是大家努力的结果,是大家团结的结果,而不是某一个技术牛人的结果。
我曾经在项目管理中采用了两种方法,一种是比较自由的方式,就是划分好模块,规定好一些项目规范以及界面规范,至于需求等等实现等等由大家一起自由发挥,结果效果一般。第二种就是完全由我控制,我规定好需求,规定好界面,甚至细化到每天要做什么,结果更加失败,员工感觉没有自由了。程序员和艺术家一样,既要有条条纲纲的限制,又要有一定的自由空间,所谓带着枷锁跳舞就是这个意思。所以作为项目经理必须把握好管理的松紧度,根据员工个性的不同来拿捏分寸,这需要经过一定时期的积累和磨练才能够炉火纯青,毕竟,管理也是艺术,需要悟性,不是从书本上就能够学得到的,要让如此复杂的人保持积极性,管理人员要付出更多的努力。
4、 帮助团队凝聚起来并保持团队的凝聚力
光光人的积极性还不够,每个人的用力方向还必须一样才能发挥团队的能量,团队是有一个生命周期的,分别是形成,躁动,稳定,表现。我在大学期间建立的团队就经历了这些阶段。那么在项目管理者面临的问题就是,如何使团队顺利经历这几个阶段,尽快达到表现阶段。
当团队形成的时候,一切都是新鲜的。我们团队尝试性的做一些任务,寻找哪些人比较合群,并且了解大家的性格以及特长。因为团队形成的时候,大家的工作热情比较高涨,但是容易出现焦虑,因为在团队中,他们的定位都不明确,所以作为团队的管理者在这个阶段应该做的是建立团队文化,例如团队名称,口号等等,甚至连什么时候开会,什么时候往也要事先有个规划,然后让团队的人之间互相充分的了解,然后做一些合作的工作来让大家了解在这个团队里面应该如何进行沟通协作。
接着当团队的目标和结构慢慢的清晰了以后,队员们开始躁动,开始关心自己的职责和权利,例如自己在团队里面负责什么模块等等,项目经理就要在这个阶段解决和协调队员之间的种种冲突,制定好规章制度和一些做事情的流程,并且倾听队员的不满。
然后团队渐渐稳定,生产力不断提高,项目和队员的能力稳步增长,目标清晰,成员之间已经形成一个整体,那么到这个阶段项目经理就比较轻松了,只要进行一些团队之间的关系处理,以及让大家进行一些重大决策就可以了。最后一个阶段就是表现阶段,那么这个阶段我认为是丰收阶段,团队成员配合已经到达非常默契的程度,基本上不需要频繁的交流,一切都有现成的流程,效率空前的提高。我经历的团队中最后达到这个阶段,开发效率令人感到非常满意,仅仅用了两个多月就完成了一个与我们以前快1年的项目差不多复杂的东西。
所以项目经理的职责就是在团队的各个阶段为团队保驾护航,保证大家的凝聚力,让团队的成员时刻充满责任感和自豪感。
总结
管理人员处于团队的中心,对管理人员本身的素质要求都比较高,而且管理人员与其他人员之间的关系也尤为复杂,属于圆心和圆周的关系,一旦处于圆周的人想靠近或者疏远管理人员,那么管理就不能圆满,管理人员对待所有人应该都是平等的,包括绩效考核,表扬与批评,个人关系等等。如果出现不平等就会有流言蜚语出现。
管理有很多工具和方法,这些都是通过学习的,唯有对人的管理,是属于软技能,需要一定的经验和悟性,需要管理人员对日常的小事情进行思考,总结,对自己处理事情的方法要进行合理性的评估,对每个人的个性要充分了解,对不同的人要用不同的管理技巧,不能搞一刀切。总之管理是为目标服务的,只有项目成功了,管理人员就是成功的,项目经理必须为这个项目负责!