也许文章的标题起的带有讽刺的味道,其实这也是本人的一个小小的疑问。
一个项目的领导者该不该对技术有一点深度的了解或者说项目经理应该是一个不错的高级程序员。我的头跟我说项目经理不需要写代码也不需要对技术有多了解,只要对项目的进度有个整体的把控就OK了。这种观念一开始我不太赞同,项目经理对技术的实现没有一定的了解,在安排进度的时候是不是会草率的了事。给程序员预留的时间也不能准确的控制好,是不是会导致项目的进度控制的不太合理;
在参与开发项目的时候尤其是有一定技术含量的时候,更要项目经理对技术的实现有自己独特的见解,能帮助程序员理清头绪。但是话说回来,项目经理不可能帮每个程序员都去解决技术问题。在一些中小企业,项目经理显的很“肥胖”,这种“肥胖”完全是脱俗的,对技术似乎已经到了一种炉火纯青的高度,总觉得技术无非就是增、删、改、查。这也是我的头跟我说的,程序员就是做增、删、改、查的。没有多少技术含量,敲来敲去都是那些东西。做为程序员的我们不太喜欢听这样的话,技术的深奥是不能用这种片面的话来概括的。
我们搞技术的,在领导看来常常有一种毛病,什么毛病呢?就是我们在解决技术问题的时候,喜欢较劲。领导会这么想也有他的道理,领导希望能把项目赶紧做完。在进度上领导永远最关心,不喜欢我们为了一个小小的技术问题,而耽误大量的时间。哪怕换一种相当麻烦的实现手段也行,保证进度第一。如果没个程序员都这样想,我担心恐怕项目的质量难以保证了。
由于项目经理的存在是随着项目的存在而存在的,我所在的开发部。项目完工后,就交给维护部门进行后期维护。经常听到维护人员的抱怨,代码写的乱、繁琐,难以维护,添加一个功能只能进行额外的编写代码,更本没办法切入代码中进行添加。这个时候项目经理已经不复存在了,哪怕知道这个项目是某个人带的,也许这个人又带了另一个项目。这样的恶性循环,受罪的是维护人员。我们公司的业务量比较大,项目的开发周期很短,一般一个项目基本上都控制在一个月之内。为了突进度,将大量的技术不错的程序员从维护部门掉出来,进行项目的开发。在这种节骨眼上,我看到的是项目经理已经不太在乎技术实现的方法了,只在乎技术实现就行了。基本上维护部门需要对我们开发的代码进行一个40%的重写,而不是重构。因为看不懂,或者说是很繁琐更本没办法维护下去。如果改出了问题,在线上报错,那么维护人员的代价就大了,轻则警告警告,重则扣钱。
所以本人一直不赞同项目经理是一个不懂技术的人,可能就是会简单的东西就带项目。很多公司都有一种现象,不关你的技术水平怎么样,只要你熟悉业务就能带项目,技术问题交给程序员,但是有没有考虑到你手下的程序员是不是大部分都是不错的。人多了不一定就能把事干好,反而让带新人的老员工分神。一个项目经理一定要是一个不错的架构者,虽不说你精通某种技术,但最起码要求你对整个技术框架有个自己的认识。
也许园子里的兄弟们不这么认为,这只是本人的一些想法,项目经理到底该不该熟悉技术。这样的疑问我想在园子里能找到答案。