极限编程 - 角色
在极限编程中,重点在于整个团队的协作,团队成员集中在一起并保持持续沟通。
然而,极限编程项目需要一些特定的角色才能有效运作,承担这些角色的人员需要承担相应的责任,并对其在这些角色中的贡献负责。建议为这些角色分配合适的人员,而不是试图改变人员以适应这些角色。
极限编程中的角色
在极限编程中被发现有效的角色包括:
- 开发者(一些团队也称为程序员)
- 客户
- 经理(也称为跟踪者)
- 教练
开发者
开发者的角色在极限编程中是最重要的。要成为极限编程中的开发者,你需要习惯以下内容:
开发者权利
你有权了解需要什么,并获得清晰的优先级声明。
你有权始终产出高质量的工作。
你有权向同行、上级和客户寻求并获得帮助。
你有权进行并更新自己的估算。
你有权承担自己的责任,而不是被分配责任。
你将需要为以下主要责任负责:
估算用户故事
从用户故事中定义任务
估算任务
编写单元测试
编写代码以通过编写的单元测试
执行单元测试
重构
持续集成
开发者技能
结对编程
沟通 - 必要的且细节充分的沟通
始终使用隐喻来使用正确的名称
只编写必需的代码。
保持简单
集体所有权
如果有人更改了你编写的代码,无论是在系统的哪个部分,你都必须信任这些更改并学习。如果更改方向错误,你有责任改进,但要小心,不要责怪任何人。
准备好承认你的恐惧。记住,你是团队的一员,勇气是极限编程成功的必要条件。
在团队中,作为开发者,你需要扮演不同的角色,例如:
程序员。
架构师和设计师。
界面架构师/UI 设计师。
数据库设计师和 DBA。
运维和网络设计师。
有时,开发人员中的一员需要扮演测试人员的角色。
帮助客户选择和编写功能测试。
定期运行功能测试。
报告测试结果。
确保测试工具正常运行。
客户
在极限编程中,客户角色与开发者角色一样至关重要,因为客户应该知道要编写什么程序,而开发者应该知道如何编写程序。
这引发了客户角色的一些必要技能:
以必要且充分的细节编写所需的用户故事。
培养对项目成功的态度。
在无法控制项目的情况下影响项目。
及时做出关于所需功能范围的决策。
愿意随着产品的演变而改变决策。
编写功能测试。
在极限编程中,要求客户与团队保持持续沟通,并以统一的声音与团队沟通。这是因为:
客户可能是多个利益相关者。
客户可能是一个社区。
客户并不总是负责人(代理)。
客户可以是一个团队,其中可能包括以下成员:
产品经理
市场营销、销售
业务分析师
最终用户、他们的经理
业务/系统运维
客户的主要责任包括:
编写用户故事
编写功能测试
设置用户故事的优先级
解释用户故事
决定关于用户故事的问题
客户需要对这些责任负责。
经理
在极限编程中,经理的主要责任包括:
定义计划游戏的规则。
让团队和客户熟悉计划游戏的规则。
监控计划游戏,修复任何偏差,并在必要时修改规则。
安排和主持发布计划和迭代计划会议。
在团队进行估算时参与其中,以提供关于现实如何符合他们先前估算的反馈,包括团队级别和个人级别,最终帮助他们在下次提出更好的估算。
确保团队在迭代中取得进展并朝着下一个发布目标前进,同时保持承诺的进度和功能。
跟踪功能测试缺陷。
跟踪每个团队成员的实际花费时间。
培养获取所有必要信息的能力,而不会干扰团队的工作。经理需要对这些责任负责。
教练
极限编程是团队中每个人的责任。但是,如果团队是极限编程的新手,那么教练的角色至关重要。
教练的职责包括:
深入了解极限编程在项目中的应用。
识别在出现任何问题时有帮助的极限编程实践。
即使在其他人恐慌时也要保持冷静。
默默观察团队,只有在预见到重大问题时才进行干预,并让团队也看到问题。
确保团队能够自力更生。
随时准备提供帮助。