Chuyển tới nội dung chính

XP Terms – Extreme Programming trong PMI-ACP

Minh hoạ Extreme Programming: hai lập trình viên pair programming trước một màn hình với vòng lặp feedback liên tục.

Extreme Programming (XP) – phương pháp Agile đậm chất kỹ thuật cho dự án phần mềm, tập trung vào feedback nhanh và thực hành lập trình tốt.

Ngôn ngữ • Language

XP Terms – Extreme Programming “dịch” sang ngôn ngữ đời sống

💡 Bài này dành cho ai?

  • Bạn xuất thân từ project management / business và thấy XP toàn thuật ngữ kỹ thuật.
  • Bạn là developer nhưng muốn hiểu XP dưới góc độ PMI-ACP chứ không chỉ là “coding style”.
  • Bạn muốn phân biệt XP với Scrum: giống nhau ở đâu, khác nhau ở đâu, đi thi bị gài kiểu gì.
TL;DR – Extreme Programming (XP) trong 1 phút
  • Extreme Programming (XP) = một phương pháp Agile tập trung vào phát triển phần mềm với các thực hành kỹ thuật cụ thể.
  • XP có:
    • Core values: Communication, Feedback, Simplicity, Respect, Courage (bạn có thể thấy thứ tự khác nhau tuỳ tài liệu, nhưng “đúng bộ 5” là quan trọng nhất).
    • Roles: Customer (On-site Customer), Programmer, Tester, XP Coach.
    • Practices nổi bật: Small Releases, Simple Design, Pair Programming, Test-Driven Development (TDD), Refactoring, Continuous Integration, Collective Code Ownership, Coding Standards, Sustainable Pace, Customer/Acceptance Tests.
  • So với Scrum:
    • Scrum thiên về quản lý công việc & feedback ở cấp đội/sản phẩm.
    • XP thiên về cách code & cách tổ chức kỹ thuật để giữ chất lượng cao.
  • Trong PMI-ACP, XP thường xuất hiện ở:
    • Câu hỏi về engineering practices, technical excellence, team collaboration trong phát triển phần mềm.
Lối tắt:ECO 2025 · 4 domain
Cho người mới tiếp xúc XP

Gợi ý cách học:

  1. Đọc mục 1 để hiểu XP dùng khi nào, khác gì Scrum – đặc biệt chú ý phần Scrum + XP combo.
  2. Nắm vững 5 XP values và các role tương đương Scrum.
  3. Học thuộc “mặt chữ” các XP practices (pair programming, TDD, CI...) cho phần mini-mock & đề thi.

  1. XP là gì? Dùng lúc nào?

1.1. Định nghĩa ngắn gọn

  • Extreme Programming (XP) là một phương pháp Agile, ban đầu thiết kế cho phát triển phần mềm.
  • Mục tiêu chính:
    • Nâng chất lượng phần mềm thông qua thực hành kỹ thuật tốt.
    • Đáp ứng thay đổi yêu cầu bằng feedback nhanh & liên tục giữa team và khách hàng.

Ví dụ dễ hình dung:

  • Nếu Scrum là cách bạn tổ chức việc và họp (Sprint, Daily Scrum, Review, Retro),
  • Thì XP là bộ “thói quen code” và “cách làm kỹ thuật”:
    • code chung 2 người (pair programming),
    • viết test trước khi code (TDD),
    • tích hợp thường xuyên (CI),
    • refactor liên tục để code luôn sạch.

1.2. XP vs Scrum – giống và khác

Điểm giống (đều là Agile methods):

  • Làm việc theo iterative & incremental.
  • Đề cao feedback sớm, khách hàng tham gia thường xuyên, team tự tổ chức.
  • Nhấn mạnh giảm lãng phí, tập trung vào giá trị khách hàng.

Điểm khác (để nhớ khi đi thi):

  • Scrum:
    • Dùng được cho nhiều loại sản phẩm, không chỉ phần mềm (dịch vụ, marketing campaign, thiết kế tòa nhà, v.v.).
    • Tập trung vào framework quản lý: roles, events, artifacts.
  • XP:
    • Gần như chỉ dùng trong phát triển phần mềm (programming đã nằm trong tên).
    • Tập trung vào thực hành kỹ thuật & coding practices.

Nếu đề hỏi về pair programming, TDD, continuous integration, refactoring... → gần như chắc đang nói về XP / technical practices, không phải “Scrum thuần”.

1.3. Scrum + XP combo trong thực tế

Trong thực tế, rất nhiều team dùng:

  • Scrum để:
    • Quản lý công việc: Sprint, Product Backlog, Sprint Review, Retrospective.
    • Đảm bảo cadence họp & feedback với business.
  • XP để:
    • Nâng technical excellence: TDD, CI, refactoring, pair programming, coding standards, acceptance tests.
    • Giữ codebase sạch, dễ maintain, ít bug.

Pattern hay gặp trong đề:

  • Hỏi: “Scrum team muốn nâng chất lượng kỹ thuật, nên làm gì?”
    → Đáp án thường là: bổ sung XP practices (TDD, CI, refactoring, pair programming…),
    chứ không phải thêm họp hay tăng giờ OT.


  1. XP core values – 5 “tính cách” chính của Extreme Programming

XP có 5 giá trị cốt lõi (core values). Nắm 5 giá trị này sẽ giúp bạn đoán được tinh thần của các practice phía sau.

Lưu ý nhỏ: bạn có thể gặp tài liệu ghi thứ tự khác nhau (hoặc tài liệu cũ chỉ nhắc 4 values). Khi đi thi, ưu tiên nhớ đúng bộ 5 và hiểu ý nghĩa.

2.1. Simplicity – Đơn giản

  • Tập trung làm “the simplest thing that could possibly work” – thứ đơn giản nhất có thể chạy được và tạo giá trị cho khách hàng.
  • Tránh:
    • Over-engineering (thiết kế quá phức tạp).
    • Extra features mà không ai dùng → lãng phí.

Ví dụ đời thường:

  • Làm app nội bộ chỉ cần báo cáo ngày/tuần/tháng:
    • Nếu bạn thêm 10 kiểu chart, 7 dashboard nhưng team chỉ dùng 1 kiểu → phần lớn là lãng phí.
  • XP khuyến khích:
    • Bắt đầu với “phiên bản đủ dùng”, sau đó refactor & mở rộng khi thật sự có nhu cầu.

2.2. Communication – Giao tiếp

  • Team cần nói chuyện thường xuyên, rõ ràng, không “mạnh ai nấy làm”.
  • XP khuyến khích:
    • Daily communication (thường là daily standup tương tự Scrum).
    • Pair programming → 2 người cùng nhìn vào một vấn đề, trao đổi liên tục.

Ví dụ:

  • Thay vì mỗi dev ôm một module, XP thích:
    • 2 người cùng ngồi 1 máy, bàn cùng một đoạn code, cùng hiểu chung hệ thống.

2.3. Feedback – Phản hồi sớm

  • Lấy feedback từ:

    • Khách hàng (Customer / On-site Customer).
    • Tests (unit test, customer/acceptance test).
    • Pair programming / reviews.
  • Mục tiêu:

    • “Fail fast, learn fast” – nếu sai thì biết sớm để sửa rẻ & nhẹ.

Ví dụ:

  • Thay vì đợi xong nguyên hệ thống rồi mới test,
  • XP viết test sớm, chạy test liên tục mỗi lần build → sai là thấy ngay.

2.4. Courage – Can đảm

  • Can đảm nhìn thẳng vào vấn đề, sẵn sàng thay đổi thiết kế khi biết mình đang sai.
  • Can đảm:
    • Refactor code cũ khi nó cồng kềnh.
    • Viết test cho phần code “dơ” trước khi đụng tay.
    • Thừa nhận “mình chưa hiểu chỗ này” với team.

Hình ảnh dễ nhớ:

  • Công khai code cho cả team xem (collective code ownership) → cần nhiều courage:
    • code không còn “giấu trong góc”.
    • ai cũng có thể chỉnh sửa, comment, improve.

2.5. Respect – Tôn trọng

  • Tôn trọng cách làm việc khác nhau của từng người.
  • Cùng chia sẻ trách nhiệm về thành công/thất bại của dự án.
  • Mọi người trong team đều quan trọng:
    • Customer, Programmer, Tester, Coach…

Trong nhiều tài liệu quản lý truyền thống, người ta hay nói “accountability không thể chia sẻ”.
Trong XP, ta muốn ai cũng cảm thấy mình có trách nhiệm – vì cả team là một đơn vị (unit).


  1. XP roles – map sang Scrum roles cho dễ nhớ

XP có một số vai trò chính. Để dễ học PMI-ACP, ta đặt cạnh Scrum để so sánh.

3.1. XP Coach

  • Vai trò:
    • Hướng dẫn team áp dụng XP values & practices.
    • Làm servant leader: hỗ trợ, gỡ vướng, facilitate hơn là ra lệnh.
    • Giữ cho team “đúng XP”: pair programming, TDD, CI, refactoring…

So sánh với Scrum:

  • XP Coach ≈ Scrum Master (coach/servant leader):
    • Cùng là người đỡ đầu cho Agile mindset, giúp team tự tổ chức, bảo vệ team khỏi “nhiễu bên ngoài”.

3.2. Customer / On-site Customer

  • Trong XP thường gọi là Customer hay On-site Customer:
    • Người đại diện cho business, mang yêu cầu & ưu tiên (priorities).
    • Làm việc sát với team, lý tưởng là ngồi cùng chỗ hoặc luôn sẵn sàng để trao đổi.
    • Tham gia viết user storiescustomer/acceptance tests.

So sánh với Scrum:

  • Customer / On-site Customer ≈ Product Owner:
    • Cùng là người định hướng sản phẩmưu tiên.

3.3. Programmers (Developers)

  • Là những người viết code, implement user stories.
  • Trong XP, programmer:
    • Thường làm việc theo pair programming.
    • Viết unit tests (thường là TDD: test trước, code sau).
    • Cùng chịu trách nhiệm về collective code ownership.

So sánh với Scrum:

  • Programmers ≈ Developers trong Scrum Team.

3.4. Testers

  • Giúp:
    • Khách hàng định nghĩa acceptance tests cho user stories.
    • Thiết kế & chạy test để đảm bảo chất lượng.
  • Trong nhiều team, programmer & tester có thể trùng người, nhưng XP vẫn nhấn mạnh rõ vai trò test.

So sánh:

  • Testers trong XP tương đương với những người làm testing / QA trong Scrum Team.

  1. XP practices – các thuật ngữ hay gặp trong đề thi

PMI-ACP thường kiểm tra nhận diện khái niệm (recognition) các thực hành điển hình của XP.

4.1. Một số practices cốt lõi

  • User Stories
    • Cách ghi yêu cầu ngắn gọn từ góc nhìn người dùng.
    • Thường theo format: As a [user], I want [something] so that [benefit].
  • Small Releases
    • Release thường xuyên những phiên bản nhỏ nhưng usable.
    • Mục tiêu: đưa phần mềm vào tay người dùng sớm, lấy feedback thật.
  • Simple Design
    • Thiết kế “vừa đủ xài” cho nhu cầu hiện tại, tránh phức tạp hóa.
    • Kết hợp với refactoring để cải thiện thiết kế dần dần.
  • Pair Programming
    • Hai lập trình viên ngồi chung một máy:
      • Một người “driver” gõ code.
      • Một người “navigator” suy nghĩ về kiến trúc, edge cases, hướng giải.
    • Lợi ích:
      • Chất lượng code cao hơn, chia sẻ kiến thức nhanh hơn.

    Ví dụ đời thường:

    • Giống như 2 người cùng học lái xe:
      • 1 người cầm lái, 1 người luôn nói “cẩn thận chỗ này, nhớ bật xi-nhan, coi gương”.
  • Test-Driven Development (TDD)
    • Chu trình: Red → Green → Refactor:
      1. Viết test trước (fail → red).
      2. Viết vừa đủ code để pass test (green).
      3. Refactor code cho sạch hơn, vẫn giữ test pass.
    • Lợi ích:
      • Thiết kế tốt hơn, ít bug hơn, tự tin refactor.
  • Customer / Acceptance Tests
    • Các tiêu chí chấp nhận (acceptance criteria) và bài kiểm thử do Customer/PO cùng team xác định để xác nhận “đúng nhu cầu”.
    • Điểm hay bị gài trong đề:
      • Test không chỉ của dev (unit test), mà còn là test theo góc nhìn người dùng/khách hàng để feedback sớm.
  • Refactoring
    • Thay đổi cấu trúc bên trong của code để nó:
      • Sạch hơn, dễ hiểu hơn, dễ sửa hơn.
      • Nhưng không thay đổi hành vi bên ngoài.
    • Luôn kết hợp với test để đảm bảo không phá chức năng.
  • Continuous Integration (CI)
    • Tích hợp code thường xuyên (nhiều lần mỗi ngày) vào mainline.
    • Mỗi lần tích hợp:
      • Build & chạy test tự động (bao gồm unit test và/hoặc acceptance tests tuỳ pipeline).
    • Lợi ích:
      • Phát hiện lỗi tích hợp sớm, tránh “đại chiến merge” cuối dự án.
  • Collective Code Ownership
    • Bất kỳ lập trình viên nào cũng có thể sửa bất kỳ phần code nào khi cần.
    • Không có chuyện “đây là module của A, không ai được đụng vào”.
    • Phù hợp với pair programming & CI.
  • Coding Standards
    • Cùng thống nhất tiêu chuẩn:
      • Style code, naming, layout, comment…
    • Mục tiêu:
      • Code của ai nhìn cũng giống “cùng một người viết”.
  • Sustainable Pace
    • Làm việc với nhịp độ bền vững (nhiều tài liệu hay dùng “40-hour work week” như một cách nói tắt).
    • Trọng tâm: không OT triền miên, tránh burnout → giữ chất lượng và tốc độ ổn định dài hạn.
  • Planning Game
    • Cách XP tổ chức Release Planning & Iteration Planning.
    • Customer ưu tiên business value, programmers ước lượng kỹ thuật → cùng thương lượng scope cho iteration.
  • Whole Team
    • Mọi người cần thiết cho việc delivery (customer, dev, test, ops...) đều được xem là một team.
    • Giảm kiểu “đội A xong mới quăng qua đội B”.
  • System Metaphor
    • Một ẩn dụ dễ hiểu mô tả cách hệ thống hoạt động (ví dụ: “như bưu điện chuyển thư”).
    • Giúp team nói chuyện với nhau về architecture bằng ngôn ngữ đơn giản.

Trong đề, các practice như Planning Game, Whole Team, System Metaphor thường chỉ xuất hiện ở mức nhận diện tên hơn là đào sâu chi tiết. Nhưng thấy chữ là nên nhận ra đang nói về XP.

4.2. Cách đề thi hay gài

  • Nhắc đến:

    • Pair programming, TDD, CI, refactoring, collective code ownership, sustainable pace, acceptance tests → điểm mặt XP.
  • Nếu câu hỏi so sánh:

    • Scrum: nói về Sprint, Product Backlog, Scrum Master, Product Owner…
    • XP: nói về Coach, Customer/On-site Customer, Programmer, Tester, và các practices kỹ thuật.
  • Nếu câu hỏi về Scrum team muốn nâng kỹ thuật, phương án đúng thường là:

    • Áp dụng các thực hành XP (TDD, CI, refactoring, pair programming, coding standards, acceptance tests…),
    • Không phải “tăng giờ OT” hay “bỏ bớt test”.

  1. Exam patterns & traps – XP trong PMI-ACP

Bẫy đề hay gặp
  • Câu hỏi bảo: “Để tăng tốc, team bỏ bớt test & bỏ CI, chỉ đợi cuối dự án mới test kỹ” → ngược XP, ngược technical excellence.
  • Câu hỏi: “Module A chỉ cho một dev chỉnh sửa để giữ trách nhiệm rõ ràng” → trái với collective code ownership.
  • Câu hỏi: “Để tối ưu chi phí, cấm pair programming vì tốn 2 người/1 máy” → trái với spirit của XP (ưu tiên chất lượng & shared knowledge).
  • Câu hỏi: “Team làm 60–70 giờ/tuần trong nhiều tháng để theo kịp deadline” → trái với sustainable pace.

Pattern cần nhớ:

  • XP:
    • Ưu tiên chất lượng kỹ thuậtfeedback nhanh.
    • Dùng nhiều engineering practices cụ thể (TDD, CI, refactoring, acceptance tests...).
  • Scrum:
    • Ưu tiên structure quản lý & collaboration ở cấp đội.
    • Không chỉ định chi tiết về kỹ thuật như XP.

6. Checklist học & tự soi

  1. Giải thích được XP khác Scrum chỗ nào (về focus & audience).
  2. Kể tên và mô tả ngắn gọn 5 XP values.
  3. Mapping được XP Coach / Customer / Programmer / Tester sang Scrum Master / Product Owner / Developers/QA.
  4. Nhận diện được các practice XP trong đề: pair programming, TDD, CI, refactoring, collective code ownership, sustainable pace, customer/acceptance tests, Planning Game, Whole Team, System Metaphor…
  5. Nhìn vào một tình huống làm việc (OT triền miên / cấm pair programming / không test sớm) và chỉ ra nó phù hợp hay ngược XP.

Checklist – XP Terms (VI)

Tiến độ: 0/5 (0%)

Mini-mock – XP Terms

Loading questions…
Exam key takeaways – XP (VI)
  • XP = Agile kỹ thuật, tập trung vào phát triển phần mềm.
  • Nhìn thấy pair programming, TDD, CI, refactoring, customer/acceptance tests, collective code ownership, sustainable pace, Planning Game, Whole Team, System Metaphor → nghĩ ngay đến XP.
  • XP Coach ≈ Scrum Master, Customer ≈ Product Owner, Programmers/Testers ≈ Developers/QA.
  • XP ưu tiên quality + feedback sớm, không trade-off chất lượng để “cày đêm cho kịp deadline”.
  • Scrum dùng được cho nhiều loại sản phẩm; XP chủ yếu dùng cho software development, thường được kết hợp với Scrum để tăng technical excellence.

Liên hệ & cập nhật

Không spam. Bạn có thể huỷ đăng ký bất cứ lúc nào.