Coursera 笔记

Module 01 · The Software Development Lifecycle

Roles in Software Engineering Projects软件工程项目角色

Coursera ↗

欢迎来到 软件工程项目中的角色 课程!在观看完本视频后,您将能够:

  • 列出软件工程项目中的常见角色 👥
  • 描述每个角色的职责 📝
  • 解释每个角色的工作内容 ⚙️


软件开发项目中的常见角色

在一个软件开发项目中,有多个常见的角色,具体角色的名称可能根据所使用的方法(如 敏捷 或 瀑布式)而有所不同。有些公司可能会使用不同的名称来表示类似的职位,然而并非所有项目都需要所有角色。

本视频将讨论的角色:

  1. 项目经理 或 Scrum Master 🧑‍💼
  2. 利益相关者 🏢
  3. 系统或软件架构师 🏗️
  4. 用户体验设计师(UX Designer) 🎨
  5. 软件开发人员 👨‍💻
  6. 测试人员 或 质量保证工程师(QA Engineer) ✅
  7. 站点可靠性工程师(SRE)或 运维工程师 🖥️
  8. 产品经理 或 产品负责人 🛠️
  9. 技术写作人员 或 信息开发人员 📝


每个角色的描述与职责

接下来,我们将描述每个角色及其具体职责:

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 或运维工程师 负责系统的可靠性。
  • 产品经理 或 产品负责人 负责确保产品满足用户需求。
  • 技术写作人员 负责撰写易于理解的文档。