思维的蜕变:从程序员到项目经理

来源:互联网 发布:两小无猜网络剧诈骗 编辑:程序博客网 时间:2024/04/29 04:37

文/火星人  出处/IT168
  因为我在参与的软件项目开发表现出色,公司在新一个软件开发项目上委派我做项目经理,全权负责项目各种事务的管理。繁忙的事务处理使我体力透支, 有一种脱了一层皮的感觉,但最使我心力交瘁的是从软件程序员到项目经理的一种思维方式和观念的痛苦转变。
  
  在软件越来越复杂,需求多变的情况下,程序员式的个人英雄主义已经行不通了,从程序员到项目经理需要主动转变思维方式,否则将陷入心灵和精神的痛苦折磨。在我负责项目管理时,痛苦的经历使我深深明白到转变思维方式和观念对于一个项目的成败是至关重要。

痛苦转变之一:跳脱典型的程序员思维

典型的程序员思维:代码是一切
  我在刚负责项目的时候认为保持团队高效的工作,和让项目成员有成就感当然重要,但如果连代码工作都完不成的话,就不能谈什么高效工作了。因此,在我接管项目团队的时候,我认为从某种程度上讲项目经理最重要而且唯一的目标就是控制代码编写进度,团队所有工作的成果就是要提交一份高效的代码。所以,成员代码的质量以及对代码的控制,是项目经理管理的主要任务。例如软件程序主要由代码组成,编码阶段就是整个软件项目的最重要的阶段,应该给与大量的时间,并且集中主要的资源。
  
  代码就是一切的程序员式经验让我尝到了做项目经理的第一个苦果。实际上,与以前相比,由于软件的规模和复杂度的增加,以及半自动化软件代码开发平台的出现,软件项目管理的中心发生了转移——不再着重编码阶段,而是着重系统总体/详细设计阶段。一般说来,软件项目管理中各种资源的合理分配比例是:项目论证、风险评估阶段10% ,项目需求分析阶段10%,系统总体/详细设计阶段40%,编码阶段10%,系统测试阶段30%。

项目经理眼光应专注于:项目控制和协调
  在我过往编写代码的程序员经验中,优秀的程序员与平庸的程序员效率差5-10倍。因此,我在项目启动的第一要务就是选择最优秀的程序员,并时时关注这些优秀程序员的进度表和满足他们的需求。我认为,用一个优秀程序员要比用2个或3个平庸的程序员来的划算。
  
  在多次痛苦经历后,我终于明白到项目管理第一要务应该是:控制项目范围,控制项目进度和合理分配各种资源。完成客户需求和公司任务应该要让每个成员都发挥作用,和都觉得有成就感,这样的项目经理才能算是比较合格的项目经理,而不仅仅只是关注最优秀的程序员。这个苦果让我明白到,即使是有优秀的程序员,如果缺乏项目控制和协调,要完成客户需求和公司任务往往也会是天方夜谭的事情。

跳离个人大侠主义,建立系统管理理念
  只有专注于程序设计,才能成为一名优秀的程序员,这是程序员的座右铭。然而这种专注所付的代价是忽视了团队合作,过于以自我为中心。有调查结果显示,许多程序员只局限于在某一小范围内结交知心朋友,探讨技术。但也正因如此,当程序员转变为项目经理时,就会发现处理项目各种纷繁复杂的事情时能力衰退,缺乏通达权宜,灵活反应的能力,这无疑不利于程序员综合素质的提高。
  
  因此,在程序员转变为项目经理,从从事“技术”到“管理”这一跨行上,必须转变思维方式和观念。项目管理是一种典型的系统管理,也是一种典型的管“人”的管理。在一个软件项目中,有成百上千的相互关联的活动,例如各种人际关系,资源和突发性事情。哪一种活动都可能会在工期、资源和预算等方面发生变化而对整个项目开发过程产生连锁反应。例如项目组成员存在不同的分工,他们各自的工作对项目目标都会产生不同的作用和影响,不能仅靠鼓励他们提高对项目的自发性的责任感,也不能仅靠评价机制来驱动他们共同承担项目的责任。
  
  项目管理的定律之一是“魔鬼藏在细节中”,项目经理必须在对项目各种活动变动全面了解的基础上,才能确定工作的焦点。因此,在程序员转变为项目经理最容易犯的就是“一叶障目,不见泰山”的错误,这个时候需要跳离大侠式的个人主义思考方式,建立系统化管理的思维方式,这是我从程序员转变过程中得到的一个重要教训。

原创粉丝点击