【发布时间】:2022-01-10 21:56:10
【问题描述】:
program manager 和 software architect 有什么区别?
【问题讨论】:
-
我投票结束这个问题,因为 Stack Overflow 是针对编程问题,而不是组织政策或职业建议。
标签: architecture
program manager 和 software architect 有什么区别?
【问题讨论】:
标签: architecture
项目经理 = 更适合的项目经理。 软件架构师 = 穿着干净 T 恤的软件工程师。
【讨论】:
项目经理: 了解客户/市场要求并推动规范。他了解开发环境(语言、工具等),并以开发人员能够理解的方式编写产品规范。如果开发/测试团队需要明确要求,他们会去找项目经理。
建筑师: 给定一个问题,设计一个软件解决方案。这包括程序控制流、组件所在的位置、它们如何交互和类设计等。
虽然架构师的职位非常明确,但不同的公司对项目经理的意义不同。
【讨论】:
在“神话般的人月”中,Frederick P.Brooks 将项目经理比作制片人,将软件架构师比作电影剪辑师。
【讨论】:
程序经理:尊重程序员的非程序员
软件架构师:不尊重程序员的程序员
【讨论】:
在当前的“基于项目组合的项目管理”方式中,项目经理是项目管理办公室的领导职位,负责多个项目经理和多个进行中的项目。项目经理通常存在于大中型企业中,他们拥有项目工件并了解业务。他们向行政级别的管理层报告,并根据预算和时间表生死存亡。标题通常不与软件程序相关,而是程序的一般含义。在项目组合模型中,企业将项目组合组织成项目群,每个项目群都分解为项目。
企业中的软件架构师是负责在企业中集成多个系统和应用程序的技术人员。通过了解业务流程和支持每天运行业务的技术,这个人成为架构师。在企业中,架构师职业轨道已成为具有技术头脑的个人在不诉诸黑暗面(即管理)的情况下取得进步的一种方式。
【讨论】:
项目经理负责监督可交付成果(例如产品)的运行状况和进度。这包括管理人员及其时间、预测和消除成本超支、确保各个项目里程碑一致、就可交付成果的状态向利益相关者作出回应、定义标准和基础设施等等。
“软件架构师”是一个有点模糊的术语,它描述了一个输出是软件设计(也可能是构建)的人。这可以是从项目的一部分到整个产品的任何内容。软件架构师与项目经理合作,以确保软件的设计符合产品的意图和目标、遵守标准、遵循治理模型中规定的流程、满足财务要求等等。
【讨论】:
如果软件无法销售,您可以与项目经理(以及销售/营销)联系,如果软件无法使用,您可以与软件架构师联系。项目经理更专注于商业方面。
【讨论】:
我在软件开发中遇到了项目经理一词的两种截然不同的用法。
一个是我认为的微软版本,类似于其他公司的产品经理。他们是面向外部的,所以他们着眼于“利益相关者”(客户、企业等)对产品的期望,并将其传达给开发团队。我相信微软通常会将项目经理与某种技术负责人配对,后者实际上领导着开发团队。我对这种类型的项目经理没有任何直接经验(至少在那个名字下),我所知道的大部分内容都是通过阅读Spolsky articles 学到的。
该术语的另一种用法是我认为的英国 OGC Programme Manager 用法。由于我在英国工作了 11 年,我不知道这个词在美国或其他地方的使用范围有多广。这种类型的项目经理监督多个项目经理。从这个意义上说,“项目”是一项巨大的工作,需要协调多个项目,通常跨越多个学科。一个 IT 项目可能有一个或多个软件开发项目,以及一个用于设计和构建托管基础架构、创建支持组织的项目,以及非技术项目,例如规划营销活动。
“软件架构师”也有不同的用法,但一般来说,它们都倾向于表示比任何类型的程序经理都更有技术性的人。它通常是技术领导角色。
【讨论】:
项目经理从客户的角度了解业务需求和产品视图。因此,如果将产品视为项目,这就像项目经理一样。
软件架构师从开发人员的角度了解技术要求和产品视图。因此,这就像一个开发人员担任领导并确定事物的整体结构。
至少我是这样区分它们的。
【讨论】: