程序经理与项目经理 出处:含笑修行 http://blog.cnknow.com/blogview.asp?logID=318 这里程序经理是指一支程序员队伍的领导者,不管他的职务是开发组长,项目经理,还是部门经理。程序经理是技术性的基层或中层干部,是软件企业得以发展的生力军。程序经理的选拔是不容草率的事。不象有些事业单位,只要政治口号喊得勤快、能左右逢缘不犯错误就可混个领导当当。也不象一些官僚机构,只有两个人的办公室也要设正主任和副主任。如果碰巧正主任姓傅,副主任姓郑,还会斗个没完没了。 在一个管理混乱的软件公司里,如果某个程序员能大喊大叫并且干劲十足,那他就能成为一名程序经理。微软公司在选择经理人员时,总是把他们的技术知识和运用技术去赚钱的能力放在首位。程序经理一般就是程序员队伍中最聪明的那个家伙。比尔·盖茨曾这样描述聪明人[Cusumano1996]: 聪明人一定反应敏捷,善于接受新事物。他能迅速进入一个新领域,给你一个头头是道的解释。他提出的问题往往一针见血、击中要害。他能及时掌握所学知识,并且博闻强记,他能把本来认为互不相干的领域联系在一起使问题得到解决。他富有创新精神与合作精神…… 好的程序经理应该具备以下几个条件: 一、技术水平是程序员队伍中的最高级别 每个程序员骨子里头都有一股傲气,如果你不能技压群雄,他们就不会听你指挥。一个技术水平较差的人被任命为程序经理真是个悲剧,就象一个略有权势的太监,表面上有人对他点头哈腰,背后却被人鄙视。 二、能做最多且最难的工作 程序经理编程要快且好。别人要干一天的活,他半天就能做完,这样才会有精力去搞管理。程序经理应负责系统分析、系统设计这类最难的开发工作,并指导不同水平的程序员把各自的工作做好。如果人手不够,程序经理要能同时干几个人的活。 三、有人格魅力 软件开发是智力创作过程,你不能指望仅通过执行规章制度来产生好的作品。很多软件公司的程序经理都不是管理专业出身的,他们也不可能为了搞好管理而成天玩弄心机。技术出色的程序经理一般少有心术不正的,所以管理的重点应是“以身作则”、“公正待人”。如果程序经理在上班时趴在桌上睡觉,其他程序员也会这样干。如果程序经理发现有两个程序员趴在机器旁睡觉,不能只对其中一个大声吼叫:“你一编程就想睡觉,看看人家,在睡觉时都想着编程。” 如果管理者没有人格魅力,就没有人信服你,团队就不会有凝聚力,乌合之众不可能开发出优秀的软件。 结论:一个有活力的软件公司的各级经理都不会这样感叹,“因为我啥也不会干,所以只好当领导。” 程序经理和项目经理通常还是应该分开来谈的—— 比方说球队中的明星球员、电影中的明星大牌,比较类似程序经理; 球队的教练、领队,电影的导演、监制,比较类似项目经理或部门经理; 当然不排除明星球员或电影明星本身又可以当教练或导演这种情况,但比较少。 我觉得日常生活中其他行业对软件工程有一定的借鉴意义,尤其是在处理团队中每个人的定位上。呵呵 首先要看项目经理的职责: 控制项目质量、控制项目进度、控制项目成本。 控制项目质量: 要求项目经理有一定的软件开发经验,并且有组织团队开发的相关经验。 不一定要什么都会,但什么都要懂,如何确保代码质量、如何确保文档质量、如何确保测试质量... 控制项目进度: 要求项目经理有良好的组织、协调能力,和沟通能力,能够调动并长期保持团队成员的积极性。 如果是技术性非常强的项目,则要求项目经理对关键技术相当熟悉,这样才能配合开发经理管理好项目风险。 控制项目成本: 要求项目经理对项目的整体目标有非常深入的认识,很多时候,项目经理需要对许多矛盾作出权衡:提高质量,还是降低成本?减少功能,还是拖延进度? 我个人认为项目经理应该具有如下的条件: 1。对各种常用技术有宏观了解 2。优秀的谈判技巧 3。承受和处理压力的能力 4。协调矛盾的能力 5。问题导向 6。对成功的渴望 7。大方,亲切。 8。思维活跃 9。人格魅力 国外一般有管技术的和专门管理人事的。中国将二者合为一了,所以在中国几乎没有程序经理,而只有项目经理,这就要求项目经理是个拥有文武双全的将帅之才,而非单单文采武将的。 我觉得一个开发团队里的头头应该是两个人 一个是Technical Leader,他必须在技术能力上No.1,在项目的技术决策上能够拍板的人,这个人应该是一个队副的职位。 另一个是Manager,这个人应该是队长的职位,但他可以不管技术层面的东西,主要负责团队的管理,协调,以及与市场方面的沟通。 要是用一个人来干上面两个人的职位,恐怕无论如何都不太能带好队伍。
|