Module 01 · The Software Development Lifecycle
Roles in Software Engineering Projects软件工程项目角色
欢迎来到 软件工程项目中的角色 课程!在观看完本视频后,您将能够:
- 列出软件工程项目中的常见角色 👥
- 描述每个角色的职责 📝
- 解释每个角色的工作内容 ⚙️

软件开发项目中的常见角色
在一个软件开发项目中,有多个常见的角色,具体角色的名称可能根据所使用的方法(如 敏捷 或 瀑布式)而有所不同。有些公司可能会使用不同的名称来表示类似的职位,然而并非所有项目都需要所有角色。
本视频将讨论的角色:
- 项目经理 或 Scrum Master 🧑💼
- 利益相关者 🏢
- 系统或软件架构师 🏗️
- 用户体验设计师(UX Designer) 🎨
- 软件开发人员 👨💻
- 测试人员 或 质量保证工程师(QA Engineer) ✅
- 站点可靠性工程师(SRE)或 运维工程师 🖥️
- 产品经理 或 产品负责人 🛠️
- 技术写作人员 或 信息开发人员 📝

每个角色的描述与职责
接下来,我们将描述每个角色及其具体职责:
1. 项目经理(Project Manager) vs Scrum Master
在传统的 SDLC 方法中,项目经理负责确保项目顺利进行,促进项目相关的沟通。项目经理通常关注 大局问题,例如:
- 规划、调度和预算 📅
- 分配人员和资源 🧑🤝🧑
- 执行软件计划 ⚙️
- 团队沟通 📢

而在 敏捷开发 中,相应的角色是 Scrum Master。Scrum Master 的工作重点不在于规划,而是确保团队和个人的成功,促进沟通和协作。Scrum Master 需确保敏捷的核心价值观得以落实:优先考虑人与沟通,而非流程。
2. 利益相关者(Stakeholder)
利益相关者 是软件产品的设计目标对象,主要包括:
- 客户
- 最终用户
- 决策者
- 系统管理员
- 其他关键人员
利益相关者的职责主要是:
- 定义项目需求
- 提供反馈:在团队成员有需求疑问或解决方案不可行时,给出指导意见
- 参与 Beta 测试 和 验收测试,确保软件产品符合预期

3. 系统或软件架构师(System/Software Architect)
系统架构师(也称为 软件架构师 或 解决方案架构师)负责设计和描述项目的架构,并将架构传达给团队成员。他们的职责包括:
- 设计软件的内部结构和技术方面
- 提供技术支持,帮助团队解决架构问题
- 在 SDLC 各阶段提供架构支持
注意:软件架构会在另一个模块中进一步讨论。

4. 用户体验设计师(UX Designer)
用户体验设计师(UX Designer)的目标是平衡软件的 直观性 和 强大功能。他们从用户的角度定义软件的行为,确保:
- 软件与用户的互动顺畅
- 软件能够有效地传达其功能
他们的主要职责是:
- 设计用户界面(UI)并定义用户交互流程

5. 软件开发人员(Software Developer)
软件开发人员 负责编写驱动软件的代码,工作内容包括:
- 实现设计文档中的架构
- 将需求文档中的功能要求落实到代码中
- 实现用户体验设计师提供的 UX 要求

6. 测试人员或质量保证工程师(QA Engineer)
测试人员 或 质量保证工程师 负责确保产品质量,并确保软件解决方案满足客户需求。
他们的职责包括:
- 编写和执行测试用例,查找缺陷或漏洞
- 向开发团队反馈缺陷信息,确保软件质量

7. 站点可靠性工程师(SRE)或运维工程师(Ops Engineer)
站点可靠性工程师(SRE)或 运维工程师 负责将 开发 与 运营 相结合,确保软件和 IT 系统的可靠性。
他们的职责包括:
- 追踪系统事件,并组织讨论
- 自动化系统、流程和操作
- 协助故障排除,确保系统可靠性

8. 产品经理或产品负责人(Product Manager/Product Owner)
产品经理 或 产品负责人 负责明确产品的愿景,并深刻理解客户需求与最终用户的要求。
他们的职责包括:
- 主导开发工作,确保软件能够为 利益相关者 提供价值
- 确保产品符合客户的预期和业务需求

9. 技术写作人员或信息开发人员(Technical Writer/Information Developer)
技术写作人员 或 信息开发人员 负责编写面向 非技术读者 的文档。他们的职责包括:
- 撰写用户手册、报告、白皮书、新闻稿等文档
- 帮助最终用户使用软件,并帮助客户提供反馈

总结
在本视频中,您学习了:
- 软件开发项目中有多种角色,每个角色都有独特的职责。
- 项目经理 或 Scrum Master 负责项目的整体管理和团队协作。
- 利益相关者 定义需求并提供反馈。
- 架构师 设计并传达软件架构。
- UX 设计师 设计用户体验。
- 软件开发人员 编写代码实现功能。
- 测试人员 或 QA 工程师 确保软件质量。
- SRE 或运维工程师 负责系统的可靠性。
- 产品经理 或 产品负责人 负责确保产品满足用户需求。
- 技术写作人员 负责撰写易于理解的文档。
