极限编程 - 角色



在极限编程中,重点在于整个团队的协作,团队成员集中在一起并保持持续沟通。

然而,极限编程项目需要一些特定的角色才能有效运作,承担这些角色的人员需要承担相应的责任,并对其在这些角色中的贡献负责。建议为这些角色分配合适的人员,而不是试图改变人员以适应这些角色。

极限编程中的角色

在极限编程中被发现有效的角色包括:

  • 开发者(一些团队也称为程序员)
  • 客户
  • 经理(也称为跟踪者)
  • 教练

开发者

开发者的角色在极限编程中是最重要的。要成为极限编程中的开发者,你需要习惯以下内容:

  • 开发者权利

    • 你有权了解需要什么,并获得清晰的优先级声明。

    • 你有权始终产出高质量的工作。

    • 你有权向同行、上级和客户寻求并获得帮助。

    • 你有权进行并更新自己的估算。

    • 你有权承担自己的责任,而不是被分配责任。

  • 你将需要为以下主要责任负责:

    • 估算用户故事

    • 从用户故事中定义任务

    • 估算任务

    • 编写单元测试

    • 编写代码以通过编写的单元测试

    • 执行单元测试

    • 重构

    • 持续集成

  • 开发者技能

    • 结对编程

    • 沟通 - 必要的且细节充分的沟通

    • 始终使用隐喻来使用正确的名称

    • 只编写必需的代码。

    • 保持简单

  • 集体所有权

    • 如果有人更改了你编写的代码,无论是在系统的哪个部分,你都必须信任这些更改并学习。如果更改方向错误,你有责任改进,但要小心,不要责怪任何人。

    • 准备好承认你的恐惧。记住,你是团队的一员,勇气是极限编程成功的必要条件。

  • 在团队中,作为开发者,你需要扮演不同的角色,例如:

    • 程序员。

    • 架构师和设计师。

    • 界面架构师/UI 设计师。

    • 数据库设计师和 DBA。

    • 运维和网络设计师。

  • 有时,开发人员中的一员需要扮演测试人员的角色。

    • 帮助客户选择和编写功能测试。

    • 定期运行功能测试。

    • 报告测试结果。

    • 确保测试工具正常运行。

客户

在极限编程中,客户角色与开发者角色一样至关重要,因为客户应该知道要编写什么程序,而开发者应该知道如何编写程序。

这引发了客户角色的一些必要技能:

  • 以必要且充分的细节编写所需的用户故事。

  • 培养对项目成功的态度。

  • 在无法控制项目的情况下影响项目。

  • 及时做出关于所需功能范围的决策。

  • 愿意随着产品的演变而改变决策。

  • 编写功能测试。

在极限编程中,要求客户与团队保持持续沟通,并以统一的声音与团队沟通。这是因为:

  • 客户可能是多个利益相关者。

  • 客户可能是一个社区。

  • 客户并不总是负责人(代理)。

  • 客户可以是一个团队,其中可能包括以下成员:

    • 产品经理

    • 市场营销、销售

    • 业务分析师

    • 最终用户、他们的经理

    • 业务/系统运维

客户的主要责任包括:

  • 编写用户故事

  • 编写功能测试

  • 设置用户故事的优先级

  • 解释用户故事

  • 决定关于用户故事的问题

客户需要对这些责任负责。

经理

在极限编程中,经理的主要责任包括:

  • 定义计划游戏的规则。

  • 让团队和客户熟悉计划游戏的规则。

  • 监控计划游戏,修复任何偏差,并在必要时修改规则。

  • 安排和主持发布计划和迭代计划会议。

  • 在团队进行估算时参与其中,以提供关于现实如何符合他们先前估算的反馈,包括团队级别和个人级别,最终帮助他们在下次提出更好的估算。

  • 确保团队在迭代中取得进展并朝着下一个发布目标前进,同时保持承诺的进度和功能。

  • 跟踪功能测试缺陷。

  • 跟踪每个团队成员的实际花费时间。

  • 培养获取所有必要信息的能力,而不会干扰团队的工作。经理需要对这些责任负责。

教练

极限编程是团队中每个人的责任。但是,如果团队是极限编程的新手,那么教练的角色至关重要。

教练的职责包括:

  • 深入了解极限编程在项目中的应用。

  • 识别在出现任何问题时有帮助的极限编程实践。

  • 即使在其他人恐慌时也要保持冷静。

  • 默默观察团队,只有在预见到重大问题时才进行干预,并让团队也看到问题。

  • 确保团队能够自力更生。

  • 随时准备提供帮助。

广告