相信任何一个成功的软件项目经理,都会经历失败的郁闷,成功的喜悦。经常在论坛上会出现某某软件项目经理的辛酸泪控。外行领导内行的事,时时发生,处处发生。项目的压力就象一座大山一样压在软件项目经理的头上,不断的夜战,项目不停的延时,不停的捉虫几乎成了每一个软件项目经理的必然道路。就在忙得焦头烂额的时候,高层的领导忽然宣布,撤消项目计划。一切Gameover!
本人也跟大多数软件项目经理一样,经历的这种风霜的洗礼。我相信,大多数有思想的人都会在努力的寻找项目成功的方向。今天,我并不算是一个成功的项目经理,但以仅有的经验希望与大家共享。同时,有一句话我觉得很重要,也很关键:你的项目失败了吗,请更多的在自已身上找失败的原因!
在众多的项目中,实践证明,一个成熟的软件项目经理应该要经过三步曲。
第一步:基础篇——技术
很难想象,一个不懂技术的软件项目经理如何能把自已负责的项目做好。有很多会画窗口和接数据库的项目经理,认为自己是技术牛人。这类人往往会不加分析,将别人的代码贬低一下,然后,觉得自已有一种飘飘然的感觉。我想这样你会成功吗?要掌握好的技术我想从下面几个角度阐叙。
一、从学习的角度来说:
要想掌握好技术,除了有好的理解能力外,勤奋、谦虚、愿沟通是必不可少的个人品质。关注知识面,倾斜知识点,这是获得高技术的一条途径。否则,世界上就很可能又会多一个夜郎。
勤奋:相信在这个行业里的人都会认识到它的重要性。如果不够勤奋的话,我相信很难在这个行业取得成就,技术天天一个样,如果不前进,就意味着后退。从项目经理的角度来说,如果项目经理本身不勤奋,不仅会影响项目进度,项目质量,很可能会影响项目成员的精神面貌。
谦虚:谦虚的人绝对不会轻而易举,不付责任的对别人的代码狂批一顿。谦虚的人,一定会去寻找和学习别人的闪光点。只有不断的吸收别的先时的东西才能丰富自己的东西。千万不要不加分析,只看了几行别人的代码就开始自大起来。这样,即使有金子,也会因为自大而丢失。其实,虚心的听取别人的意见,认真的看别人的产品或者代码,才能真正的更快的学到好的东西。如果,您还是一个入门级选手,请不要一天到晚的谈创新,可以说没有模仿,就几乎不可能有创新,也就是说如果您不愿虚心接受别人的东西,您就很难有创新。
沟通:沟通,也许在各行各业都已提到了一个相当重要的位置。在一、二十年前,也许您会经常听到某位大侠单独完成了某种创举,成了人们崇拜的对象。可今天,这种大侠,已经很难有生存空间了。代而取之的是,某军团,又攻克了一座什么样的宝垒。这样,沟通,可以说已经变得无比的重要。在软件业,沟通可以说是快速学习和掌握新知识,达到技术上的更高层次的最佳途径。
记得我在大二时,对电脑技术非常感兴趣,几乎夜夜为它为而忙,当然,也有游戏的兴趣,呵呵。现在回忆那段时光,用6个字总结:勤奋、自大、炫耀。由于我的勤奋,当时应该算得上“技术高手”了。喜欢批评别人的代码,批评别人的界面。甚至会为自已写的一个屏保,而觉得风光无限,晕倒!而跟同学交流时,炫耀大于学习。没想到我当年是一个地地道道的夜郎。
今天,象我当年一样的夜郎还不断的在涌出。我想,如果想真正的掌握技术,请拒绝夜郎。
二、从技术的深度来说:
技术的深度需要结合自己的工作实际情况,来确定在某一个知识点上的深入。成为某领域的真正专家。如果项目小组是专攻这个方向,这样的技术深度对软件项目经理来说是非常有必要的。可以很好的带领团队攻破技术难关。
如:图形处理技术、网络传输技术、设备驱动技术、数据库应用技术等。
三、从技术的广度来说:
一个成熟的软件项目经理,他必须拥有非常广的知识面。谈到知识面,就会有人说,我会Java、VC、VB、Delphi等,学习了n多的编程语言,这样我的知识面可以说非常广了吧。其实这是一个误区,一定要走出来。
技术的广度,并非指学习语言的多寡而论。广度应该包含两层含义:
1、技术的学习广度。
如果学习了Delphi语言,应该要关心各种相关知识面:
如:delphi的发展动态、windows的消息处理机制、相关数据库的编程知识、各种网络协议、分布式集中式的处理等。
2、技术的应用广度。
技术的应用广度,是指你可以用你掌握的工具,来实现各种各样的应用。如:可以开发分布式的处理软件(中间件),也可以做各种网络传输软件等。
第二步:提升篇——业务
对于大多数人来说,技术已经觉得没什么难度了。然而,行业软件的开发,决非技术可以解决问题的,要想成为项目经理,您仍需努力,提升业务知识,势在必行。谈到业务,就会谈到国内的ERP软件。可以这样说,国内的ERP软件厂商大都是失败的,我敢说失败的原因绝非技术,而败的大部分原因都取决于业务。
相对于ERP软件来说,国内的其它行业软件却要成功得多。如:财务、银行、证券、医疗、保险等行业软件。ERP软件本身的业务是非常复杂的,不象其行它行业软件一样,有很多的规范可以参照,正因为ERP软件业务的复杂性和灵活性,所以ERP软件是非常难以开发的,绝非几个程序员就可以闭门造车。根据国内外行业软件成功和失败的案例可以说明一个问题,应用软件,应该是应用在先,软件在后,一个好的软件项目经理,必须要理解这个软件的业务应用,并且应用自已掌握的技术才能够开发出成功的软件。这个项目组的项目才有可能成功。
建议,一个在技术上已经有基础的工程师,应尽量找些机会上一些工程,参加一些业务学习的机会,以提升自已的业务能力。从而能真正把握好业务需求,指导项目组的成员进行正确的项目开发。
一个好的软件项目经理,总能很好的理解客户的业务应用,掌握好业务模型。
第三步:艺术篇——管理
管理是一门艺术,这话一点也不假,大到国家管理,小到项目组的管理。当拥有了技术和业务两种素质以后,更高的层次应该是学习管理这门艺术。既然是艺术,就可以想象它的难度有多大了。管理的重要性,我想这里也不必多叙说了。以本人有限的经历在这里斗胆讨论一下项目管理艺术的几个方面。
1、有效的团队组织。
提升团队组织的工作绩效,提升组员的团队精神。这非常有利团队有效,有序的工作。有效的团队建设,这是管理的重要内容。
2、小组成员的沟通。
组员的沟通,可以很好的加强团队组织的凝聚力。可能更好的让项目良性的进行。而陪养这种气氛,形成有效的沟通,这也是项目管理的基本内容。
3、小组成员的考核。
在这个竞争的社会中,我想管理是不能缺少考核制度的。有效的考核有利于提升组员的积极性,同时,能形成一种竞争的气氛。当然,如果不能很好的应用考核,就会导致负面的效果,由此可见,考核是管理的一个关键点。
4、团队的学习。
学习是创新和发展的能源,注重团队的学习,才能让团队不断的发展。作为小组的领导者,一定要组织团队有效的,有针对性的学习,把握学习的方向。这种组织团队学习的能力也必须是经理人要掌握的。
5、小组成员的发展。
每一个人都会希望自己能做出好的成绩,能在公司有好的发展,如果自已看不到发展的曙光,就会影响到团队的工作。因此,软件项目经理还必须学会让组员获得发展的机会,获得一种成就感。