Thursday, November 20, 2008

Scrum software development

Việc phát triển phần mềm ngày nay càng lúc càng lưu ý hơn đến việc sử dụng lại (re-use) và đáp ứng (adapt) với thay đổi của yêu cầu khách hàng, bởi kinh nghiệm cho thấy đó là điều tất yếu không thể tránh khỏi.
Vì thế các quy trình phát triển phần mềm cổ điển như WaterFall, Spiral, RUP, ... càng lúc càng ít được dùng, mà thay vào đó là các phương pháp có tính reusable và flexible cao. Các quy trình tập trung vào 2 tính năng trên được gọi là quy trình linh hoạt (Agile process) .

WaterFall fails


Trong họ Agile software development process thì đến nay đã được khoảng năm bảy loại, nhưng nổi bật nhất là Extreme Programming (XP) và Scrum .

Agile Basis



Tuy nhiên đến bây giờ thì Scrum xem như đã vượt qua XP và FDD để trở thành mô hình Agile được công nhận rộng rãi nhất. Bởi Scrum vừa tập hợp các best practices từ các mô hình khác (daily meeting, test automation, iterations,... ), vừa khai thác triệt để các giá trị Agile (team interaction, run first, customer collaboration, embrace change) .


Các thuật ngữ và khái niệm trong quy trình Scrum mới nghe thì hơi khó hiểu hơn bên XP, chẳng hạn chia Roles thành PigChicken , rồi nào là Sprint, nào là BackLog, rồi BurnDownChart, etc... liệu có vi phạm KISS ? (trong Agile thường dùng thuật ngữ "Assume Simplicity" hơn là K.I.S.S)


Lúc đầu tôi cũng nghĩ là chia như vậy hơi rắc rối, làm sao mà lại tốt hơn quy trình XP được. Nhưng sau quá trình chấp nhận làm quen thuật ngữ và áp dụng triệt để Scrum tôi đã cảm thấy nó nhỉnh hơn XP (có lẽ nhờ kinh nghiệm XP đã làm trước đây chăng? ) . Dẫu sao đi nữa thì nó cũng là một quy trình đáng giá và sẽ rất tốt nếu áp dụng cho 1 team gồm những lập trình viên có kinh nghiệm.


Hẹn lại trong 1 bài khác tôi sẽ trình bày rõ hơn các khái niệm trong quy trình Scrum và vì sao nó lại được đánh giá cao trong giới Agile. Nếu có thời gian thì giới thiệu sơ luôn các quy trình Agile khác như: AUP, DSDM, FDD, Getting Real, ...

No comments: