http://blog.csdn.net/uxyheaven/article/details/50396951
从 Program Manager 看 Leader 是什么角色
转载请注明出处http://blog.csdn.net/uxyheaven/article/details/50396951
很多公司都自然而然的有个了Leader的虚职位, 比如iOS leader, Android Leader, 他们直接对技术经理或者是团队技术负责人负责. 这个角色具体有哪些作用呢?
大公司的项目经理叫Project Manager, 微软的叫Program Manager. 我们先来看看这两个职位之间的区别.
Project Manager | Program Manager |
---|---|
是团队的行政领导 | 和大家平等工作, 推动团队完成软件的功能 |
通常是团队和外界打交道的唯一领导 | 一个团队可以有很多个PM |
对项目的功能有最后的决定权 | 和其他团队成员一起形成决议 |
管事也管人 | 管事不管人 |
不一定做具体工作 | 一定做具体工作 |
大伙是不是觉得Leader角色和Program Manager很相似?
Leader也是和大家平等工作, 他推动团队完成产品需求. 一个团队一个端一个Leader. 遇到事情也是希望Leader是和其他团队成员采用商量的语气, 要团队成员共同做决定. Leader也确实没有行政上的管人权利. Leader还真的都是在干活, 需要要写代码.
Program Manager的出现让团队成员内部的互动出现了两个新特性:
- 负责一个功能的开发测试人员和相关的Program Manager密切合作, 再由Program Manager代表这一小组去和别的小组或客户代表打交道, 大大节省了交流的成本
- 有专人负责开发测试之外的许多事物和项目进度的管理, 让开发和测试人员专注于技术方面的工作
Leader的出现也让一个开发小团队出现了上述两个新特征. 额外的, Leader通常还需要负责部分核心模块的开发, 开发规范的定制, 新人的指导. 通常情况下Leader是团队技术最厉害的或者是资历最老的开发.
有同学要问了, 既然Leader那么厉害, 为什么不让他们领导开发人员和测试人员, 这样Leader工作起来不是更有利了么?
我们来看看为什么Program Manager没有这么做.
首先, 我们认为好的产品设计是在平等讨论(甚至争论)的基础上产生和完善的, 如果讨论的一方同事又是另一方的老板, 则无法进行平等和无拘束的讨论.
其次, Program Manager 的产品是规格说明书(Spec), Program Manager要凭借自己的能力, 把用户的需求展现成其他成员能够了解, 能够执行的语言, 从而赢得同伴的信任和尊敬. 如果Program Manager又是其他人的老板, 则不必写太好的Spec, 用命令即可说服别人. 再次, Program Manager不一定是很好的行政经理(管人的), 硬把管理不同的专业人员的任务加到Program Manager头上反而会坏事.
所以微软规定了Program Manager不是领导, 他是工作上的合作伙伴. Leader的角色也是如此.
所以我们要感谢那些做Leader的同学, 因为他们帮我们分担了大量的杂活, 他们的时间是间断的, 他们的技术深度成长速度没有我们快.
在一个产品中, Leader的具体任务有哪些呢.
我们还是先看看Program Manager的具体任务:
带领
团队形成团队目标, 远景, 把抽象的目标转化为可执行的, 具体的, 优美设计管理
软件的具体功能的生命周期(需求, 设想, 设计, 实现, 测试, 修改, 发布, 升级, 迁移, 淘汰)创建并维护
软件的规格说明书, 让它成为开发, 测试人员及时准确的指导, 而不是障碍代表
客户和用户的利益, 主动收集
用户反馈,预期
用户新的需求.协调并决定
各种需求有的优先级分析并带领
其他成员形成对缺陷, 变更需求的一致意见, 并确保实施收集
团队项目管理和软件管理的各种数据, 客观分析项目实施过程中的优缺点,推动
项目成员持续改进, 从而提高士气.
一个团队中Leader角色的具体任务和Program Manager很相似. 他同样需要带领团队, 需要参与大半的软件具体功能生命周期, 需要确保开发任务的顺利完成, 需要推动团队持续改进.
在这里诚心建议刚入行的年轻的程序员, 在没到高级程序员之前, 还是踏踏实实先学技术. 技术到了一定程度之后在考虑是技术线路继续走下去, 还是有机会就转管理.