技术经理:一个软件产品的灵魂
昨天阅读了腾讯一个技术总监的教训和经验这篇文章后,很有共鸣。
在传统公司里面,一个软件产品,甲方可能只有一个项目经理角色。项目具体的技术实施由乙方团队负责。这时,甲方项目经理作为系统的负责人,其实是身兼多职。既是项目经理,同时可能还是技术经理、产品经理。
在互联网公司里面,可能没有项目经理这个角色。
也有一些公司,设置了两个角色:项目经理和技术经理。技术经理的工作职责是主要是对内,确保交付的进度和质量。项目经理的主要职责是对外,给团队争取一个相对宽松的外部环境。
不管头衔如何,作为一个软件系统的负责人,应该完成哪些工作内容项目,才能确保项目成功实施? 还是有章可循的。
本文尝试从技术经理和项目经理两个角色,来分别描述各自应该负责哪些工作内容。
技术经理
一个复杂系统的负责人,必须亲手领导和参与建造,才能有足够的能力去负担起这个责任。技术经理的60%的时间要参与开发工作。
一、开发工作(60%)
-
提出非功能需求-性能需求
-
提出非功能需求-自动运维需求
-
代码主要框架设计
-
系统架构设计
-
亲自编写风险较高的代码
-
解决线上紧急问题
二、团队培养(30%)
-
代码评审
-
技术方案评审
-
技术学习与探索
三、管理工作(10%)
-
团队成员绩效评定
-
任务的分解与进度审核
项目经理的工作职责
与项目实施相关的所有工作,都需要项目经理协调落实。不是自己亲自做,就是安排相关人员完成。
根据经验,项目经理的工作主要包括以下三个方面的内容。
一、进度
-
制定工作计划
-
进度跟踪和延迟预警
-
工作总结与汇报
二、资源
-
外部支持的沟通。(如svn权限开通、专业团队支持)。
-
面试
-
与老板谈判争取资源
-
团队活动
三、需求沟通
-
与需求方沟通建立互信
-
需求的管理(需要BA的支持)
技术经理是一个软件产品灵魂,技术经理一定要把主要精力放在开发和设计上。
在有些传统行业,由于采用外包开发模式,一个优秀的开发人员,往往还没有亲自参与开发几个大的项目,就被安排来做项目经理。从而频于应付各种事务性工作,专业领域得不到提升,毫无成就感,这也是一些公司职率高的原因之一。