- Lập trình cực hạn · Extreme Programming (XP)
- Phương pháp agile do Kent Beck khởi xướng cuối thập niên 1990, tập trung vào thực hành kỹ thuật để nâng chất lượng và khả năng thích ứng: lập trình cặp, phát triển hướng kiểm thử, tích hợp liên tục, tái cấu trúc, thiết kế đơn giản, phát hành nhỏ, sở hữu mã tập thể, nhịp độ bền vững. Giá trị: giao tiếp, đơn giản, phản hồi, can đảm, tôn trọng.
- Phát triển hướng kiểm thử · Test-Driven Development (TDD)
- Thực hành viết kiểm thử tự động trước khi viết mã, theo vòng ngắn "đỏ – xanh – tái cấu trúc": viết một kiểm thử thất bại, viết mã tối thiểu cho nó qua, rồi làm sạch mã mà vẫn giữ mọi kiểm thử xanh. Tạo ra bộ kiểm thử hồi quy dày và thiết kế dễ thay đổi.
- Lập trình cặp · Pair Programming
- Thực hành XP trong đó hai lập trình viên làm chung một nhiệm vụ trên một máy: một người gõ mã (driver), người kia quan sát, xem xét và nghĩ hướng đi (navigator), đổi vai thường xuyên. Giúp phát hiện lỗi sớm, lan truyền tri thức và giảm phụ thuộc vào một cá nhân, đổi lại tốn thêm công sức cho từng nhiệm vụ.
- Tích hợp liên tục · Continuous Integration (CI)
- Thực hành đưa thay đổi mã của mọi người vào nhánh chung nhiều lần mỗi ngày, mỗi lần đều tự động biên dịch và chạy kiểm thử. Lỗi tích hợp được phát hiện trong vài phút thay vì dồn đến cuối dự án. Là nền tảng cho chuyển giao liên tục và DevOps.
- Tái cấu trúc mã · Refactoring
- Cải thiện cấu trúc bên trong của mã nguồn mà không thay đổi hành vi bên ngoài, ví dụ tách hàm dài, đặt lại tên, loại bỏ trùng lặp. Làm thường xuyên với bước nhỏ, được bảo vệ bởi kiểm thử tự động, để giữ mã dễ hiểu, dễ thay đổi và trả dần nợ kỹ thuật.
- Nợ kỹ thuật · Technical Debt
- Chi phí làm lại trong tương lai phát sinh khi chọn giải pháp nhanh, tạm thay cho giải pháp tốt hơn nhưng tốn thời gian hơn. Giống nợ tài chính, nợ kỹ thuật có "lãi": mỗi thay đổi sau đó chậm và rủi ro hơn. Cần được nhìn thấy (ghi vào backlog), ưu tiên và trả dần, không để tích tụ.
- Spike · Spike
- Hạng mục nghiên cứu hoặc thử nghiệm ngắn, giới hạn thời gian (timebox), có nguồn gốc từ Extreme Programming, dùng để giảm bất định kỹ thuật hoặc nghiệp vụ trước khi cam kết làm: thử công nghệ, dựng nguyên mẫu, tìm hiểu API. Kết quả của spike là kiến thức (đủ để ước lượng hay chọn phương án), không phải tính năng phát hành.
- Phát triển hướng hành vi · Behavior-Driven Development (BDD)
- Thực hành do Dan North khởi xướng, mở rộng từ TDD: đội kinh doanh, kiểm thử và phát triển cùng mô tả hành vi mong muốn của hệ thống bằng các ví dụ cụ thể viết bằng ngôn ngữ nghiệp vụ, rồi dùng chính các ví dụ đó làm kiểm thử chấp nhận (thường tự động hoá). BDD biến yêu cầu thành "đặc tả sống", giảm hiểu lầm giữa người viết yêu cầu và người làm.