Preaload Image

XP Practices

Small Releases

Các dự án XP tiến triển thông qua một loạt các iteration, mỗi iteration độ dài từ một đến ba tuần. Các tính năng (feature) được mô tả bởi các user story, mà mỗi một user story được phát triển trọn vẹn trong một iteration duy nhất. Một team không được phép bàn giao một nửa tính năng. Tương tự, một team không được phép cung cấp tính năng đầy đủ nhưng chất lượng chỉ bằng một nửa. Bởi kết thúc mỗi iteration, team chịu trách nhiệm bàn giao code chạy ngon và đã được thử nghiệm pass, và có thể ngay lập tức được đưa vào sử dụng.

Khi bắt đầu dự án, team chọn độ dài iteration mà sẽ sử dụng trong suốt thời gian của dự án. Độ dài iteration thường là một hoặc hai tuần và không bao giờ dài hơn bốn tuần. Team nên chọn độ dài iteration là càng ngắn càng tốt sao cho vẫn đảm bảo khả năng bàn giao giá trị hữu hình cho doanh nghiệp. Khi team chưa quyết định giữa hai thời lượng của iteration thì nên chọn độ dài ngắn hơn.

Iteration là cố định về độ dài (timebox). Một team không thể đạt được kế hoạch vào ngày cuối cùng của một iteration và quyết định họ cần thêm hai ngày nữa. Không được! Iteration phải kết thúc đúng vào ngày dự kiến. Khối lượng công việc mà team làm sẽ được điều chỉnh để phù hợp với độ dài cố định của iteration.

The Planning Game

The Planning game là tên gọi mà XP dùng để chỉ hoạt động lập kế hoạch cho release và cho iteration mà bằng cách đó các developer và customer hợp tác cùng nhau đưa ra dự đoán về tương lai. Trước khi bắt đầu lập kế hoạch, customer đã viết user story trên thẻ ghi chú (note card) và các developer đã ước lượng được chi phí của mỗi user story (tính bằng story point) và đã viết ước lượng trên thẻ user story. Để bắt đầu lập kế hoạch, các developer ước lượng số lượng công việc họ có thể hoàn thành trong một iteration (tức velocity của team) với độ dài được chọn cho dự án. Customer xem qua tất cả các thẻ user story và chọn những user story ưu tiên hàng đầu để đưa vào trong iteration đầu tiên. Customer được phép chọn những user story tổng hợp lại không vượt quá số lượng công việc (số story point) mà các developer ước lượng họ có thể làm trong iteration. Khi iteration đầu tiên đã đầy công việc, customer chuyển sang chọn user story cho iteration thứ hai và các iteration tiếp theo. Sau một số iteration nhất định, customer quyết định rằng đã đủ user story được đặt vào các iteration cấu tạo thành một bản phát hành (release). Release plan gần như chắc chắn không phản ánh chính xác những gì sẽ được phát triển và theo thứ tự nào. Kế hoạch phát hành là một giả thuyết về cách phát triển có thể tiến hành nhưng nó sẽ được cập nhật khi bắt đầu mỗi iteration bằng sự rà soát lại thứ tự ưu tiên, khi team hiểu biết nhiều hơn về velocity của team và các developer đã hiểu thêm về chi phí dự kiến ​​thực sự (ước lượng lại số story point) của mỗi user story. Trước khi bắt đầu mỗi iteration, team và customer cùng nhau lập iteration plan. Điều này liên quan đến việc chọn những user story ưu tiên cao nhất có thể được hoàn thành trong iteration và sau đó xác định các nhiệm vụ cụ thể (task) cần thiết để hoàn thành các user story đã chọn của iteration.

Refactoring

Refactoring đề cập đến việc viết lại code để cải thiện code mà không thay đổi hành vi bên ngoài của nó. Thời gian trôi qua code có thể trở nên xấu xí. Chẳng hạn khi một method được thiết kế cho một mục đích cần phải thay đổi một chút để xử lý một điều kiện đặc biệt (special condition). Sau đó, khi nó đã xử lý điều kiện đặc biệt đó, nó (method) lại phải thay đổi để xử lý một điều kiện đặc biệt khác. Và cứ thế cho đến khi method trở nên quá mong manh để sửa đổi thêm. XP cổ súy cho sự chú ý liên tục làm refactoring. Bất cứ khi nào một programmer thực hiện thay đổi code mà nên được refactor, anh ta được yêu cầu làm refactor. Programmer không chỉ được khuyến khích refactoring mà anh ta được yêu cầu bắt buộc phải làm refactoring. Nhờ cách này code tránh được sự chậm chạp, tránh được những khiếm khuyết (decay) đôi khi khó phát hiện mà vì điều này cuối cùng sẽ dẫn đến lỗi.

Refactoring là một trong những kỹ thuật được XP sử dụng để thay thế cho việc làm thiết kế trước (upfront design). Thay vì dành thời gian suy nghĩ trước về một hệ thống trước khi coding, và do đó buộc phải phán đoán một số khía cạnh trong hành vi của hệ thống, các hệ thống làm theo phương pháp XP được liên tục refactoring và giữ trong một trạng thái đáp ứng hoàn hảo các yêu cầu đã biết.

(To be continued)

Theo Mike Cohn

An Overview of  Extreme Programming

Freeway to LearnPM

266
students
3 000 ₫
3 000 ₫

VirtualCamp for PMP

129
students
6 800 000 ₫
6 800 000 ₫

eLearn for PM

126
students
2 400 000 ₫
2 400 000 ₫

AgileClassic for PMI-ACP

101
students
8 800 000 ₫
8 800 000 ₫
Admin bar avatar
PMP, PMI-ACP. 10-year professional project management & consultancy in the industries of banking, finance and IT. Professional trainer/coach for both traditional and Agile project management methodologies. 20-year+ experience in IT service management and operation. Matured-level skills of setup & implementation of ITIL-based IT management processes.