Có nên nhìn lại Extreme Programming (XP) trong thời đại AI?
(hyperact.co.uk)- Nhờ AI tạo mã và đổi mới nền tảng, tốc độ phát triển đã tăng bùng nổ, nhưng kết quả dự án vẫn kém và tỷ lệ thất bại vẫn cao
- Vấn đề không nằm ở tốc độ mà ở sự thiếu vắng kiểm chứng và căn chỉnh, và XP thúc đẩy học hỏi, căn chỉnh, nâng cao chất lượng thông qua những ràng buộc có chủ đích
- Đặc biệt, khi các tác nhân AI tăng tốc việc tạo, sửa và triển khai mã, sự gia tăng độ phức tạp và lỗ hổng mà không có kiểm chứng càng trở nên nghiêm trọng
- XP nhấn mạnh các giá trị lấy con người làm trung tâm như đơn giản, giao tiếp, phản hồi, tôn trọng, dũng cảm cùng với lô nhỏ, tích hợp liên tục và kiểm thử tự động
- Trong thời đại mà đầu ra nhanh đã trở thành điều hiển nhiên, XP là một phương pháp luận nhắc lại rằng phần mềm rốt cuộc là để phục vụ con người
Gia tốc tốc độ sản xuất phần mềm và những giới hạn của nó
- Gần đây, nhờ các công cụ AI và đổi mới của nhiều nền tảng phát triển, rào cản tạo mã đã giảm mạnh và tốc độ được cải thiện đáng kể
- Chỉ với vài prompt hoặc lệnh gọi API, toàn bộ sản phẩm, tính năng và hạ tầng có thể được tạo ra rất nhanh
- Tuy nhiên, dù năng suất đã tăng lên, vẫn tồn tại vấn đề là tỷ lệ thành công chung của dự án không được cải thiện rõ rệt
- Các báo cáo như Standish Chaos và McKinsey chỉ ra rằng các trường hợp phần lớn dự án IT thất bại hoặc vượt ngân sách vẫn còn rất thường xuyên
- Điều này cho thấy việc chỉ cải thiện tốc độ tạo mã không tự động nâng cao hiệu quả cung cấp phần mềm
Vì sao đầu ra (output) không phải là vấn đề thật sự
- Đã nhiều lần chứng minh rằng nút thắt của phát triển phần mềm không nằm ở tốc độ nhập/xuất mã
- Đã có những làn sóng tăng tốc nối tiếp nhau như sự xuất hiện của ngôn ngữ bậc cao, phổ biến framework và package manager, mở rộng DevOps và serverless, phát triển nền tảng phát triển, và AI tạo mã
- Theo báo cáo Chaos, dù đầu ra được tăng tốc nhưng kết quả cuối cùng vẫn thiếu nhất quán và thấp hơn kỳ vọng
- Điều quan trọng không phải là tăng tốc đơn thuần, mà là những “ràng buộc” thông minh hơn
- XP là một thực hành dẫn dắt theo đúng hướng thông qua học hỏi, căn chỉnh và phát triển có chủ đích thay vì vội vàng
Vai trò của XP: đối trọng với tốc độ
- Tăng tốc không giới hạn gây ra vấn đề là tước đi cơ hội học hỏi, phát hiện sai sót và điều chỉnh hướng đi
- Extreme Programming (XP) được thiết kế để đưa vào ma sát và ràng buộc có chủ đích nhằm giúp đội ngũ di chuyển đúng hướng
- Thực hành tiêu biểu: pair programming cố ý giảm một nửa sản lượng
- Pair programming có thể làm sản lượng giảm một nửa, nhưng lại mang đến gấp đôi hiệu quả tích cực về mức độ hiểu biết chung, niềm tin, chất lượng và năng lực trong đội ngũ
- XP thay đổi chính cách cộng tác, và đầu tư vào nâng cao năng lực đội ngũ và định hướng
Cách nhìn vấn đề của XP càng rõ hơn khi đi cùng AI
- Khi AI khiến việc tạo mã gần như không tốn công sức, rủi ro sản xuất hàng loạt phần mềm chưa được kiểm chứng ngày càng lớn
- Rủi ro này tăng mạnh đặc biệt trong các hệ thống agentic AI, nơi nhiều tác nhân tự động tạo, cải thiện và triển khai mã
- Các hệ thống tự động hóa không có ràng buộc chồng chất logic chưa được kiểm chứng theo nhiều lớp, làm trầm trọng thêm độ phức tạp và lỗ hổng
- Nghiên cứu gần đây cho thấy cửa sổ ngữ cảnh của LLM càng dài thì độ chính xác càng giảm
- Phần đầu và phần cuối được xử lý tốt, nhưng phần giữa lại dễ bị khái quát hóa quá mức và phát sinh lỗi
- Kết quả là dẫn đến mã dễ vỡ và có chi phí bảo trì cao, và XP ra đời để ngăn chặn kiểu entropy hỗn loạn này
Phần mềm vẫn là lĩnh vực của con người
- Dù AI phát triển đến đâu, bản chất của phần mềm vẫn không thay đổi: con người tạo ra nó cho con người, trong giao tiếp và văn hóa của tổ chức
- Những yếu tố cản trở truyền đạt chính không phải mức độ tự động hóa, mà là căn chỉnh, bối cảnh chung, kết quả rõ ràng, xác thực từ người dùng và các yếu tố nền tảng con người khác
- Các giá trị cốt lõi của XP:
- Simplicity: giảm độ phức tạp
- Communication: duy trì sự gắn kết của đội ngũ
- Feedback: thúc đẩy học hỏi và thích nghi
- Respect: xây dựng niềm tin và sự an toàn
- Courage: hỗ trợ tính minh bạch và khả năng thay đổi
Từ feature factory đến việc chuyển giao giá trị thực
- Các đội ngũ thành công ưu tiên flow và feedback hơn là tốc độ tự thân
- Các thực hành của XP như lô nhỏ, tích hợp liên tục, kiểm thử tự động và quyền sở hữu chung góp phần vào khả năng thích nghi và tính lấy người dùng làm trung tâm
- Trong tương lai, khi tốc độ sản xuất mã còn nhanh hơn nữa, những phương pháp này sẽ thiết yếu để quản lý chất lượng, rủi ro và chủ đích
Bài học từ quá khứ
- Thống kê từ báo cáo CHAOS:
- 1994: 16% dự án thành công đúng hạn và trong ngân sách
- 2012: cải thiện lên 37%
- 2020: lại giảm xuống 31%
- Sau hơn 20 năm đổi mới và thay đổi (agile, DevOps, cloud-native, AI...), độ tin cậy tổng thể chỉ tăng 14 điểm phần trăm
- Không thể giải quyết vấn đề chỉ bằng toolchain
- Điều này tái khẳng định tầm quan trọng của phương pháp luận đúng đắn
Cần gì trong thời gian tới
- 1. Đầu ra không còn là ràng buộc nữa: năng lực sản xuất mã đã vượt tốc độ kiểm chứng và căn chỉnh
- 2. Tăng cường năng lực hướng đến kết quả: phản hồi, định hướng sản phẩm rõ ràng, cộng tác mạnh và thiết kế tốt là bắt buộc
- 3. Cần quy trình mang tính con người hơn: dù AI tiến bộ, phân phối liên tục vẫn phụ thuộc vào cộng tác
- Thực tế nhấn mạnh rằng một Product Operating Model hiệu quả được hình thành từ vận hành lấy con người làm trung tâm—cộng tác, sự rõ ràng, dòng chảy
- Khi chiến lược đội ngũ, nhịp độ vận hành và thực hành kỹ thuật được căn chỉnh chặt chẽ hơn là chỉ dựa vào đổi mới công nghệ (nền tảng), mới có thể xây dựng môi trường cung cấp phần mềm bền vững trong thời đại AI
Kết luận: Trong thời đại AI, XP có cần thiết không?
- Có
- Trong bối cảnh công cụ ngày càng mạnh hơn, cần một khung thực hành neo giữ các thực hành lấy con người làm trung tâm
- XP đồng thời mang lại trọng tâm đội ngũ, sự đồng cảm, hiểu biết chung và định hướng đến mục tiêu đúng đắn
- Tập trung không phải vào tốc độ đầu ra đơn thuần mà vào định hướng có ý nghĩa và sự căn chỉnh trong đội ngũ
- Trong thời đại AI tăng tốc và sản xuất không giới hạn, XP là một phương pháp hiếm hoi nhắc chúng ta rằng phần mềm là công việc của con người
1 bình luận
Ý kiến Hacker News
Kent Beck (người sáng lập Extreme Programming) đang thực hiện nhiều thử nghiệm khác nhau liên quan đến AI coding
Trong các bài viết như Augmented Coding Beyond the Vibes, ông đang suy nghĩ về cách AI có thể được sử dụng trong lập trình
Khi ChatGPT bắt đầu được dùng hữu ích cho việc viết code, tôi nhớ ông từng nói rằng 90% kỹ năng của mình giờ đã trở nên vô dụng, còn 10% còn lại thì trở nên giá trị hơn bấy nhiêu
90% of my skills are now worth 0
Tôi nghĩ cách phát triển XP theo hướng test-first còn giá trị hơn trong thời đại AI tạo ra code và xác minh nó
Làm như vậy đặc biệt khiến việc sinh code bằng công cụ AI trở nên dễ dàng hơn
Một trong những điều khiến tôi bận tâm ở AI coding dạo này là các báo cáo hay hướng dẫn cũ vẫn còn nằm lại trong repository
Ví dụ, báo cáo này cũng là một báo cáo do AI tạo ra dựa trên code ở thời điểm nó được tạo
Tôi không rõ việc để lại những sản phẩm trung gian như vậy trong history có ý nghĩa gì
Đặc biệt là những file cứ tích lũy dần như _updated_v2_from_2025
Ví dụ 1, Ví dụ 2
Tôi nghĩ chỉ XP mới là phương pháp agile thực sự
Agile theo thời gian đã bị biến chất thành thứ không còn nhiều ý nghĩa
AI programming giúp khép kín feedback loop nhanh hơn, nhưng tôi không nghĩ mọi code đều cần một lượng unit test khổng lồ
Nếu mọi người có thể hiểu lại cốt lõi của XP (với tôi là feedback loop), và có thể tạo ra feedback loop chặt hơn thông qua hệ thống agent dựa trên LLM, thì đó sẽ là một bước tiến lớn cho software engineering
Tôi bắt đầu với XP và đã kiên trì thực hành XP đến mức giờ rất khó làm việc trong các tổ chức kiểu SCRUM
SCRUM chủ yếu bắt nguồn từ XP nhưng giờ có cảm giác chỉ còn lại những thực hành vô nghĩa
Tôi nghĩ kịch bản lý tưởng là hai lập trình viên pair programming với các AI agent trên cùng một branch
Đó là feedback loop lý tưởng nơi pair planning, review, development và test được lặp lại một cách tự nhiên
Unit test thời XP và test hiện nay có khác nhau
Khi đó là test theo đơn vị tính năng, không phải test theo từng method
Tôi cảm thấy điều đó phụ thuộc vào việc AI có thể khép kín feedback loop chính xác đến mức nào
Theo tôi, nếu một nửa số code không được chuyển đến người dùng (= đưa vào production) thì đó không phải là agile
Đội của chúng tôi gồm toàn bộ là người từng làm ở Pivots và Thoughtworks
Pair programming, TDD và khách hàng onsite là mặc định
Chúng tôi cũng đã tích cực dùng AI trong IDE hơn 2 năm
Nhưng điều đáng ngạc nhiên là năm nay, thay vì mỗi người tách ra làm việc riêng với AI, cả đội (4 người) lại bắt đầu "mobbing" — cùng đồng bộ trên một dự án và tập trung vào một việc duy nhất
Claude Code hỗ trợ phần gõ, còn bốn người cộng tác đồng thời theo thời gian thực
Đó là trải nghiệm kết hợp XP và AI thú vị nhất, tập trung nhất và hiệu quả nhất mà chúng tôi từng có
Tôi đã hoàn toàn quên mất XP
Một phần của nó giờ đã trở thành chuyện thường ngày, còn những phần còn lại có lẽ theo tiêu chuẩn hiện nay sẽ bị xem là cực kỳ xa lạ
Đặc biệt, tôi muốn nhấn mạnh rằng trước khi dùng LLM để tuôn ra hơn 1000 dòng code mà không suy nghĩ, ta nhất định phải dừng lại suy nghĩ một lần
Cá nhân tôi tò mò không biết bạn cho rằng phần nào của XP là xa lạ nhất
Không nên hiểu đây là ý rằng ai cũng phải pair programming với AI
Khi pair programming với đồng đội, mọi người sẽ chia sẻ cách suy nghĩ của nhau và ngữ cảnh của code
Nhưng khi pair programming với AI, ngay khoảnh khắc đóng prompt lại thì AI quên sạch mọi thứ
Vì vậy XP đang được bàn ở đây, cũng như trong thập niên 1990, vẫn là XP giữa "con người với con người"
AI có thể tham gia một phần, nhưng cốt lõi vẫn là con người
Nếu không để lại kết quả một cách rõ ràng thì sẽ là như vậy
Khi khám phá code mới chưa có đủ tài liệu, nếu lưu những gì đã học cùng LLM vào repository dưới dạng tài liệu hoặc file agent thì có thể sẽ có ý nghĩa
Ngược lại, tôi cho rằng nếu không pair programming với AI thì là đang làm sai cách
Thực ra ngay cả khi con người pair programming với nhau, "tôi của tương lai" cũng thường quên hết những gì đang nhớ lúc này
Ta nên hướng tới kiểu pair tập trung vào tài liệu hóa
Tóm lại, nhất định phải thực hành XP pair programming cùng LLM
Chắc chắn sẽ có người định bán khóa học Extreme Vibing (XV)
Extreme Programming là một paradigm gộp nhiều khái niệm có thể dùng độc lập (ví dụ: TDD, pair programming, CI, feedback) lại với nhau
Mỗi thứ đều hữu ích tùy tình huống, nhưng tôi không nghĩ lúc nào cũng cần dùng toàn bộ mọi phần cùng lúc
Chính trong bối cảnh đó mà XP mất đi sức mạnh như một khái niệm hoàn chỉnh
Ngày nay phần lớn các team chỉ thực hành một phần của XP, và gần như không tổ chức nào thực sự áp dụng toàn bộ XP
Với agile, các tập đoàn lớn đa phần triển khai khoảng 70% mức trung thành đối với hơn 90% các thực hành
Thực tế chưa từng có công ty nào triển khai đúng 100% theo cách được mô tả trong Agile Manifesto, và nơi làm tốt nhất cũng chỉ khoảng 90%
Nhưng vì các thực hành cốt lõi đều được gói trong một paradigm duy nhất, các tổ chức rất dễ tự gọi mình là "agile"
Vì thế việc chỉ cần tuyên bố "chuyển sang agile" trở nên dễ hơn nhiều
Đây là lý do sách về XP được chia thành triết lý, nguyên tắc và tầng thực hành
Câu ấn tượng nhất trong cuốn đó là: giá trị không có thực hành thì đã chết, còn thực hành không có giá trị thì cũng rỗng tuếch
Rốt cuộc, mục tiêu cuối cùng không phải là best practice mà là trao quyền cho team, để họ tự định ra quy trình và tạo ra phần mềm đáng tin cậy, được thiết kế tốt
XP trông hơi giống một "bộ công cụ lặt vặt" cũng là vì thực chất đó là những thứ mà các team chủ động như vậy sẽ chọn dùng
Thực tế tôi luôn làm những thực hành đã nêu ở trên (TDD, pair programming, CI, feedback) với production code, nếu điều kiện cho phép
Tôi tò mò trong tình huống nào thì những thực hành đó có thể bị xem là "sai"
Tôi nghĩ chúng ta đã tiến khá xa kể từ kiểu agile ám ảnh của thập niên 90
Giờ đây khi có nhiều workflow tích hợp AI hơn, cần tập trung nhiều hơn vào việc xem xét quy trình phần mềm theo hướng thực sự nâng xác suất tạo ra kết quả tốt cho người dùng, thay vì chỉ tăng số lượng output
Tôi nghĩ XP là điểm khởi đầu tốt cho việc đó (dù không nhất thiết là điểm kết thúc)
Extreme Programming (XP) là một phương pháp agile tập trung vào các vòng lặp ngắn, phản hồi nhanh và thiết kế đơn giản, dựa trên các thực hành như pair programming, TDD, CI để thích nghi nhanh với thay đổi
Nó ưu tiên việc xây dựng ở mức nhỏ nhất, nhanh nhất có thể, rồi lặp lại cùng khách hàng để tối ưu việc học hỏi và chất lượng
~ GPT5 in perplexity
Dạo này tôi có cảm giác waterfall đang trỗi dậy trở lại cùng với AI
Thực ra waterfall chưa từng biến mất
Việc waterfall quay trở lại là điều đáng tiếc
Trong phần lớn trường hợp, waterfall không phải là cách tiếp cận đúng
Với tư cách là người từng ở Pivot và là fan cuồng XP, tôi đồng ý
Hãy xem thêm bình luận của tôi ở dưới
Tôi vẫn đang thực hành XP