xp-practices

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Extreme Programming (XP) Practices

极限编程(XP)实践

<default_to_action> When applying XP practices:
  1. START with practices that give immediate value
  2. BUILD supporting practices gradually
  3. ADAPT to your context
  4. MEASURE results
Core XP Practices (Prioritized):
PracticeStart HereWhy First
TDD✅ YesFoundation for everything
Continuous Integration✅ YesFast feedback
Pair Programming✅ YesKnowledge sharing
Collective OwnershipAfter CI+TDDNeeds safety net
Small ReleasesAfter CIInfrastructure dependent
Pairing Quick Start:
Driver-Navigator (Classic):
- Driver: Writes code
- Navigator: Reviews, thinks ahead
- Rotate every 20-30 min

Ping-Pong (with TDD):
A: Write failing test
B: Make test pass + refactor
B: Write next failing test
A: Make test pass + refactor
</default_to_action>
<default_to_action> 应用XP实践时:
  1. 从能带来即时价值的实践入手
  2. 逐步构建配套支持实践
  3. 根据自身场景灵活调整
  4. 衡量实践效果
核心XP实践(优先级排序):
实践从这里开始为何优先
TDD✅ 是所有实践的基础
持续集成✅ 是快速获得反馈
结对编程✅ 是知识共享
集体代码所有权在CI+TDD之后需要安全保障机制
小版本发布在CI之后依赖基础设施支持
结对编程快速入门:
Driver-Navigator(经典模式):
- Driver:编写代码
- Navigator:评审代码、提前规划
- 每20-30分钟轮换一次角色

Ping-Pong(结合TDD):
A:编写失败的测试用例
B:让测试通过 + 重构代码
B:编写下一个失败的测试用例
A:让测试通过 + 重构代码
</default_to_action>

Quick Reference Card

快速参考卡片

The Five XP Values

XP的五大价值观

ValueMeaningPractice
CommunicationEveryone knows what everyone doesDaily standups, pairing
SimplicitySimplest thing that worksYAGNI, small design
FeedbackGet feedback early and oftenTDD, CI, short iterations
CourageTell truth, adaptRefactor, admit mistakes
RespectEveryone contributes valueSustainable pace, pairing
价值观含义对应实践
沟通团队成员清晰了解彼此工作每日站会、结对编程
简单采用最简单可行的方案YAGNI原则、轻量化设计
反馈尽早且频繁获取反馈TDD、CI、短迭代周期
勇气坦诚沟通、灵活适应重构代码、勇于承认错误
尊重认可每位成员的价值可持续开发节奏、结对编程

Core Practices

核心实践

PracticeDescriptionBenefit
Pair ProgrammingTwo devs, one workstationQuality + knowledge sharing
TDDRed-Green-RefactorConfidence + design
CIIntegrate multiple times/dayFast feedback
Collective OwnershipAnyone can change anythingNo bottlenecks
Sustainable Pace40-hour weeksLong-term productivity
Small ReleasesShip frequentlyRisk reduction

实践说明益处
结对编程两名开发者共用一个工作站提升代码质量 + 知识共享
TDD红-绿-重构流程增强开发信心 + 优化代码设计
CI每日多次集成代码快速获得反馈
集体代码所有权任何人都可修改任意代码消除瓶颈
可持续开发节奏每周工作40小时保障长期生产力
小版本发布频繁交付版本降低风险

Pair Programming

结对编程

When to Pair

何时进行结对编程

ContextPair?Why
Complex/risky code✅ AlwaysNeeds multiple perspectives
New technology✅ AlwaysLearning accelerator
Onboarding✅ AlwaysKnowledge transfer
Critical bugs✅ AlwaysTwo heads better
Simple tasks❌ SkipNot worth overhead
Research spikes❌ SkipPair to discuss findings
场景是否结对原因
复杂/高风险代码✅ 始终结对需要多视角考量
新技术学习✅ 始终结对加速学习进程
新成员融入✅ 始终结对知识传递
关键Bug修复✅ 始终结对集思广益更高效
简单任务❌ 无需结对投入产出比低
技术调研❌ 无需结对可在调研后结对讨论结果

Pairing Dos and Don'ts

结对编程注意事项

Do:
  • ✅ Switch roles every 20-30 min
  • ✅ Take breaks together
  • ✅ Think out loud
  • ✅ Ask questions
  • ✅ Keep sessions 2-4 hours max
Don't:
  • ❌ Grab keyboard without asking
  • ❌ Check phone while pairing
  • ❌ Dominate conversation
  • ❌ Pair all day (exhausting)

建议做:
  • ✅ 每20-30分钟轮换一次角色
  • ✅ 一起休息
  • ✅ 大声思考(说出思路)
  • ✅ 主动提问
  • ✅ 单次结对时长控制在2-4小时以内
不要做:
  • ❌ 未经询问就抢过键盘
  • ❌ 结对时查看手机
  • ❌ 主导整个对话
  • ❌ 全天都进行结对(容易疲惫)

Ensemble (Mob) Programming

群编程(Mob编程)

Setup: 3+ developers, one screen, rotating driver
[Screen]
[Driver] ← Directions from navigators
[Navigator 1] [Navigator 2] [Navigator 3]
Rotation: Driver switches every 5-10 min
Best for:
  • Complex problem solving
  • Architectural decisions
  • Learning new frameworks
  • Resolving blockers

配置方式: 3名及以上开发者共用一个屏幕,轮换Driver角色
[屏幕]
[Driver] ← 接收导航者的指令
[导航者1] [导航者2] [导航者3]
轮换规则: 每5-10分钟轮换一次Driver
适用场景:
  • 复杂问题解决
  • 架构决策制定
  • 新框架学习
  • 障碍排查

Continuous Integration

持续集成

CI Workflow:
1. Pull latest from main
2. Make small change (<2 hrs work)
3. Run tests locally (all pass)
4. Commit and push
5. CI runs tests automatically
6. If fail → fix immediately
Best Practices:
  • Commit frequently (small changes)
  • Keep build fast (<10 min)
  • Fix broken builds immediately
  • Never commit to broken build

CI工作流程:
1. 拉取主分支最新代码
2. 进行小幅修改(耗时<2小时)
3. 本地运行所有测试(确保全部通过)
4. 提交并推送代码
5. CI自动运行测试
6. 若失败 → 立即修复
最佳实践:
  • 频繁提交(小幅修改)
  • 保持构建速度快(<10分钟)
  • 立即修复失败的构建
  • 绝不向失败的构建提交代码

Four Rules of Simple Design

简单设计四原则

(In priority order)
  1. Passes all tests - Works correctly
  2. Reveals intention - Clear, expressive code
  3. No duplication - DRY principle
  4. Fewest elements - No speculative code

(按优先级排序)
  1. 通过所有测试 - 功能正常运行
  2. 清晰表达意图 - 代码清晰、易懂
  3. 无重复代码 - 遵循DRY原则
  4. 最少代码元素 - 不写冗余代码

Agent Integration

Agent集成

typescript
// Agent-human pair testing
const charter = "Test payment edge cases";
const tests = await Task("Generate Tests", { charter }, "qe-test-generator");
const reviewed = await human.review(tests);
await Task("Implement", { tests: reviewed }, "qe-test-generator");

// Continuous integration with agents
await Task("Risk Analysis", { prDiff }, "qe-regression-risk-analyzer");
await Task("Generate Tests", { changes: prDiff }, "qe-test-generator");
await Task("Execute Tests", { scope: 'affected' }, "qe-test-executor");

// Sustainable pace: agents handle grunt work
const agentWork = ['regression', 'data-generation', 'coverage-analysis'];
const humanWork = ['exploratory', 'risk-assessment', 'strategy'];

typescript
// Agent-人类结对测试
const charter = "Test payment edge cases";
const tests = await Task("Generate Tests", { charter }, "qe-test-generator");
const reviewed = await human.review(tests);
await Task("Implement", { tests: reviewed }, "qe-test-generator");

// 结合Agent的持续集成
await Task("Risk Analysis", { prDiff }, "qe-regression-risk-analyzer");
await Task("Generate Tests", { changes: prDiff }, "qe-test-generator");
await Task("Execute Tests", { scope: 'affected' }, "qe-test-executor");

// 可持续开发节奏:Agent处理繁琐工作
const agentWork = ['regression', 'data-generation', 'coverage-analysis'];
const humanWork = ['exploratory', 'risk-assessment', 'strategy'];

Agent Coordination Hints

Agent协作提示

Memory Namespace

内存命名空间

aqe/xp-practices/
├── pairing-sessions/*   - Pair/ensemble session logs
├── ci-metrics/*         - CI health metrics
├── velocity/*           - Team velocity data
└── retrospectives/*     - XP retrospective notes
aqe/xp-practices/
├── pairing-sessions/*   - 结对/群编程会话日志
├── ci-metrics/*         - CI健康指标
├── velocity/*           - 团队交付速度数据
└── retrospectives/*     - XP回顾会议记录

Fleet Coordination

集群协作

typescript
const xpFleet = await FleetManager.coordinate({
  strategy: 'xp-workflow',
  agents: [
    'qe-test-generator',   // TDD support
    'qe-test-executor',    // CI integration
    'qe-code-reviewer'     // Collective ownership
  ],
  topology: 'parallel'
});

typescript
const xpFleet = await FleetManager.coordinate({
  strategy: 'xp-workflow',
  agents: [
    'qe-test-generator',   // TDD支持
    'qe-test-executor',    // CI集成
    'qe-code-reviewer'     // 集体代码所有权支持
  ],
  topology: 'parallel'
});

Common Objections

常见质疑

ObjectionResponse
"Pairing is 2x slower"15% slower writing, 15% fewer bugs, net positive
"No time for TDD"Debugging takes longer than testing
"CI is hard to setup"Start simple: one action, one test
"Collective ownership = chaos"Only without tests + CI

质疑点回应
"结对编程效率减半"编写代码慢15%,但Bug减少15%,整体收益为正
"没时间做TDD"调试花费的时间比编写测试用例更长
"CI搭建难度大"从简单入手:一个动作、一个测试用例
"集体代码所有权会导致混乱"只有在没有测试和CI的情况下才会如此

Related Skills

相关技能

  • tdd-london-chicago - TDD deep dive
  • refactoring-patterns - Safe refactoring
  • pair-programming - AI-assisted pairing

  • tdd-london-chicago - TDD深度解析
  • refactoring-patterns - 安全重构
  • pair-programming - AI辅助结对编程

Remember

要点回顾

XP practices work as a system. Don't cherry-pick randomly:
  • TDD enables collective ownership
  • CI enables small releases
  • Pairing enables collective ownership
  • Sustainable pace enables everything
With Agents: Agents amplify XP. Pair humans with agents. Agents handle repetitive work, humans provide judgment and creativity.
XP实践是一个有机的系统,不要随意挑选单独使用:
  • TDD为集体代码所有权提供支持
  • CI支持小版本发布
  • 结对编程促进集体代码所有权
  • 可持续开发节奏是所有实践的基础
结合Agent使用: Agent可以放大XP实践的效果。让人类与Agent结对协作,Agent处理重复性工作,人类提供判断和创造力。