Skip to content

Insiders' Viewpoint! Job Roles in Software Engineering Teams 专家视角:软件工程团队中的职位角色 👩‍💻👨‍💻

欢迎来到 软件工程团队内部视角:职位角色 课程!在本视频中,我们将听取专家们讨论在软件工程团队中可能遇到的各种职位角色。💬


职位角色概述 🔍

在我参与的工程团队中,我们有 产品经理技术负责人(Tech Lead)质量保证(QA)、几位 QA 分析师测试工程师,以及 UX 设计师。每个角色都有其独特的职责和协作方式。下面,我们将详细讨论这些角色及其职责。

image.png

image 1.png


产品经理的职责 🧑‍💼

产品经理的主要任务是确保团队按照业务需求顺利进行,确保所承诺的功能按时交付,以避免项目滞后。产品经理负责:

  • 与销售、营销团队合作,确定需要开发的功能和创新点

  • 了解客户需求,推动未来的创新和改进方向

产品经理通常在团队中扮演着类似 Scrum Master 的角色:

  • 组织 站立会议(Stand-ups),讨论团队进度

  • 跟踪 JIRA 中的任务,确保项目按计划推进

  • 在遇到问题时,帮助团队解决问题,确保大家保持在正轨上

image 2.png


软件工程师与其他角色的协作 🤝

在软件工程中,通常有多种角色与开发团队紧密合作。以下是几个关键角色及其与软件工程师的合作方式:

项目经理/程序经理(Project/Program Manager) 🗂️

  • 项目经理 帮助团队设置 时间表,确保目标得以达成,协调项目进展,解除阻碍,并将项目状态及时向 利益相关者 汇报。

  • 他们的职责是帮助团队实现目标,确保各方需求得到满足。

image 3.png

架构师 🏗️

软件架构师通常负责设计系统架构,并确保开发团队理解架构设计。

  • 架构师关注 大局,确保技术架构与业务需求的匹配。

image 4.png

image 5.png

软件开发工程师 👨‍💻

  • 软件开发工程师的主要任务是将 业务逻辑 转化为 计算机逻辑

  • 在一些公司,开发角色可能被分为 架构师编码人员,有时开发工程师可能会同时涉及到 DevOps基础设施建设自动化测试 等工作。

image 6.png

UX 设计师 🎨

UX 设计师 负责设计用户体验,确保软件符合用户需求。工作内容包括:

  • 设计 Figma 原型,并提供给开发团队实现

  • 与开发团队密切合作,确保设计被准确实现

设计师从草图到 设计稿 的迭代过程中,会与开发人员反复沟通,确保界面符合用户需求。

image 7.png

image 8.png


测试人员与质量保证工程师 🛠️

QA工程师

QA工程师的工作是确保软件质量,保障产品功能的正常运行。他们的工作流程包括:

  • 编写测试计划,进行详细的 测试文档 编写

  • 确保开发人员的代码没有引入缺陷,进行回归测试

测试流程

  1. 代码审查:开发人员完成代码后,提交给 技术负责人资深工程师 审查

  2. 功能测试:代码完成后交给 QA 测试团队,确保没有破坏现有功能

  3. 缺陷反馈:若出现问题,QA 会提供详细的 测试文档,开发人员根据反馈修复问题

  4. 问题修复与验证:开发人员修复后,QA 会重新验证修复的内容,并检查是否引入了新的问题

image 9.png


与UX设计师的协作 🎨

在开发过程中,UX设计师 会提供详细的设计文档或 Figma 规范,开发人员根据这些设计进行编码实现:

  • 例如,若团队正在开发 结账页面,UX设计师会提供页面设计和功能规范,开发人员则根据这些设计文档来编码。

与其他工程师的协作 🔄

在一些公司,不同的角色之间会有更加细分的职位,如:

  • DevOps 工程师:负责基础设施搭建、监控和报警等工作

  • 质量保证工程师:负责自动化测试、集成测试等工作,确保产品在开发全生命周期内的质量

与站点可靠性工程师(SRE)合作 🌐

SRE 是一个结合了 软件工程IT 系统管理 的角色,他们负责维护和部署软件,确保软件能够正常运行在生产环境中。

与产品经理的协作 🛠️

软件工程师通常需要频繁与 产品经理 沟通,以明确产品功能和开发方向:

  • 讨论开发计划、时间安排和功能需求

  • 与产品经理共同讨论功能实现的技术细节,权衡技术与业务的折衷

image 10.png

image 11.png

image 12.png


团队协作与沟通 💬

软件工程团队的成功往往依赖于 紧密合作定期沟通

  • 定期的 团队会议头脑风暴跨部门合作,有助于确保各角色的协调合作。

  • 避免 瀑布式开发(Waterfall)导致的沟通障碍,采取 敏捷开发 方法能促进各个职能角色间的协作。

image 13.png


总结 📋

在本视频中,我们了解了软件工程团队中的不同角色及其职责:

  • 产品经理 负责确定需求并提供业务方向

  • 开发工程师 负责编写代码并将业务需求转化为技术实现

  • 测试工程师 负责确保软件质量,进行全面的测试

  • UX设计师 负责提供用户体验设计并与开发团队合作实施

通过 紧密的团队协作有效的沟通,软件工程团队能够高效完成项目开发,确保软件质量和按时交付。