程序员“封爵之路”:工程师、架构师和项目经理有何区别?
编者按:CTO、项目经理、软件工程师……各种软件开发相关的职位琳琅满目,很多人并不清楚各个职位之间的共性和差异。需要清楚的是,国内的这些职位其实都是“舶来品”,大多是模仿硅谷技术企业而设立的。本文由外国专家撰写,详细分析了技术人员的职位职责和职业路径。需要注意的是,本文针对的是国外的软件开发行业,与国内环境略有不同。编译自medium原题为Software Roles and Titles的文章,作者Eric Elliott。
如果你的团队不完全符合我接下来的描述,也欢迎交流指正。事实上,我认为确实只有很少一部分团队和特定软件工作者的角色能够与我们即将要探讨的内容完美匹配——相比于特性,这只是一个更倾向于平均化的通用框架。
我将从管理职称开始,按资历由深至浅地分析各种角色。不过开始之前强调一点,永远不要被你的职称所束缚。在我看来,
总之,我喜欢以更高的责任来作为主动性的奖励。如果某位员工有主动的意愿和相应的技能去承担超过他们头衔的责任,我会更愿意去提拔他,这是一个很不错地培养潜力员工的机会。
工程院士
在我看来,组织不应该试图聘请“院士”角色。相反,我认为应该去找到最好和最合适的人,雇用他们。如果工程师具有相应能力,再授予这份头衔作为荣誉和奖励。
一位工程院士通常还会在公司担任另一个头衔。通常是CTO、架构师、工程副总裁等。他们能够领导、指导或作为组织其他成员的榜样和灵感。
CEO
首席执行官是组织中最具有权威的职位。通常情况下,他们为公司设定了愿景和目标。围绕着对于公司使命、战略和核心价值观的共识,CEO将每一位员工团结在一起。
一般来说CEO也是公司的公众形象,在某些情况下,还会成为品牌的代名词(例如,Steve Jobs与Apple,Elon Musk与Tesla / SpaceX等)
无论如何,如果要做出重要的组织决策,责任的核心就在于CEO。
如果你是首席执行官,请记住:你最终要对自己负责。虽然你应该相信自己的直觉,但不要忘记,即使是大多数有名的CEO都会有定期咨询的导师和顾问。因此,相信直觉的同时,也要寻找聪明、有见地的人来帮你寻求进步。
CTO
首席信息官/首席数字官/首席创新官
工程副总裁/工程总监
他们与产品和产品经理的负责人合作,以确保有一个良好的产品发现过程(他们不会引导它或负责它,只是确保有人在跟进并且做得好);以及,产品在实施交接之前,工程师会对设计可交付成果进行充分的审查。
许多创业公司规模太小,无法聘请全职工程副总裁,但尽早建立起良好工程工作文化仍然非常重要。
首席架构师
随着公司的成熟,首席架构师可能还需要与CTO密切合作,有时还需要与伙伴组织合作来开发一些集成类的服务。 在许多公司,CTO也担任首席架构师。
软件架构师
工程项目经理/工程经理/项目经理
项目经理通常与产品负责人和工程副总裁(如工程副总裁,CTO或中层经理)进行交流,以添加或删减工作细节,跟踪项目流程,完成详细的进度报告等。
工程经理需要充分了解各个团队成员的优势,并善于为相应的责任方分配工作单,但这应该是一项协作工作,寻求个别开发人员对他们的职业目标的反馈和他们想要关注的是,也在项目经理的工作范围内。
如果存在时间压力或工作积压,项目经理应与工程和产品负责人合作,找出根本原因并尽快让项目按计划运行。
一个常见的误区是,由于工程团队与产品团队紧密合作,因此,工程经理会直接向产品经理报告。我看到过很多这样的情况,这是一个错误。下文还会更详细地探讨这个问题。
技术主管/团队负责人
工程师职业上升路径
通常,工程师有以下两种职业道路:进入管理层,或继续走技术路线。
管理职位并不适合所有人。很多工程师都喜欢坚持技术道路。这种路径可能会经历多种方向、曲折和转弯,整体看起来像这样:
实习生——初级软件开发人员——软件开发人员/工程师——高级软件工程师——首席软件工程师——软件架构师——高级软件架构师——首席架构师——首席技术官——工程院士
而对于那些对人员领导角色感兴趣的工程师,进展可能看起来像这样:
实习生——初级软件开发人员——软件开发人员/工程师——团队负责人/技术主管——工程经理/项目经理——高级工程经理——工程总监——工程副总裁
避免组织功能失调
我参与过的最佳表现团队采取了无截止日期的方法。我们在不事先通知的情况下构建出色的产品,然后让营销团队推广已经完成的工作。
良好的开发团队必须确保责任分配有意义,不给工程施加不必要的时间压力,并且有一个优秀的产品团队参与产品开发过程,并与真实用户进行合作。
原文链接:https://medium.com/javascript-scene/software-roles-and-titles-e3f0b69c410c