Tối ưu hóa quy trình thiết kế và phát triển sản phẩm bằng Dual-track Agile

 



Khi nhìn vào những công ty hay tổ chức áp dụng agile development, Scrum là một trong những framework phổ biến. Họ sẽ có các chu kỳ với thời gian cố định gọi là Sprint để thực hiện một mục tiêu nào đó. Hoặc thậm chí nếu họ không áp dụng Scrum, nhiều công ty vẫn có Sprint. Sprint tạo ra một nhịp làm việc đều đặn với một chu kỳ lặp lại xoay quay việc lập và thực thi kế hoạch.

Trong một team product dùng Scrum, khi liệt kê ra những việc cần làm theo trình tự thời gian thì sẽ có nhiều trường hợp những việc về design (thiết kế) cần phải làm trước development (phát triển). Để hạn chế tối thiểu tình trạng waterfall trá hình, bạn có thể áp dụng Dual-track Agile (Agile kép). Cụm từ “Dual-track Agile” được tạo ra bởi Desirée Sy và được phổ biến bởi Jeff Patton qua các buổi diễn văn và workshop khắp thế giới.

Dual-track Agile được chia làm hai track, Discovery (Khám phá) and Delivery (Phân phối) diễn ra theo hai chu kỳ song song nhau.

Discovery track tập trung vào việc hiểu yêu cầu sản phẩm và đặt câu hỏi để tìm ra đúng sản phẩm cần tạo, còn Delivery track tạo ra những phần code nhỏ nhưng hoàn chỉnh để tạo ra sản phẩm đúng cách.



Ảnh minh họa cho Dual-track Agile của Lynn Miller (2007)

 

Trong một môi trường Dual-track Agile, Discovery team có Product Owner, UX Designer và Senior Engineer để tìm hiểu về yêu cầu của người dùng (user requirement), kiểm thử, thiết kế theo phân đoạn (iterate designs) và đưa ra phản hồi của khách hàng với Delivery team.

Có thể nói là, thành quả công việc của Discovery track sẽ trở thành input cho Delivery track. Lấy ví dụ một Sprint kéo dài hai tuần thì tiến độ công việc của Discovery team sẽ đi trước 2 tuần so với Delivery team trong cùng một Sprint. Hoặc một cách hiểu khác là khi Discovery Team đến Sprint 2 thì Delivery Team đang ở Sprint 1. Bằng cách này, quá trình development và design có thể diễn ra song song, tránh rơi vào tình trạng waterfall gắn mác Agile.

Đọc thêm chi tiết hơn về Dual-track Agile (bằng tiếng Anh) trong bài báo gốc của Desirée Sy về Dual-track Agile.

 

 

Note:
"Dual-track Agile" có thể hiểu chính xác hơn là "Dual-track Scrum". Vì Agile là hệ giá trị, tư tưởng cho phát triển phần mềm còn Scrum mới là một framework ứng dụng hệ giá trị Agile.

"Dual-track" ở đây là một cách áp dụng Agile chứ không phải là một giá trị, tư tưởng. "Dual-track Agile" còn sử dụng các thành phần của Scrum như là Sprint vậy nên có thể hiểu chính xác hơn "Dual-track Agile" là một biến thể dạng "dual-track" của Scrum.

 

 

Waterfall
Phương thức phát triển phần mềm truyền thống theo kiểu thác đổ

Trong Waterfall, các giai đoạn phát triển phần mềm diễn ra theo trình tự thời gian. Giai đoạn mới chỉ bắt đầu khi giai đoạn trước đó đã hoàn tất.

 

 

Agile Software Development (Agile)
Phương thức phát triển phần mềm Agile (linh hoạt)

Agile là một phương thức phát triển phần mềm xoay quanh các giá trị được nêu trong Agile Manifesto (Tuyên ngôn Agile). Các bộ khung làm việc (framework) ứng dụng Agile phổ biến gồm Scrum, Kanban, ...

 

 

Agile Manifesto
Tuyên ngôn Agile

Bản tuyên ngôn về các giá trị của phương thức phát triển phần mềm Agile. Agile đề cao cá nhân và tương tác (individuals and interactions), phần mềm chạy tốt (working software), hợp tác với khách hàng (customer collaboration) và đáp ứng thay đổi (responding to change). Chi tiết về Agile Manifesto: https://agilemanifesto.org/

 

 

Scrum
 

Scrum là một bộ khung làm việc (framework) ứng dụng các giá trị Agile. Đọc thêm về Scrum tại: https://www.scrum.org/

 

 

Sprint
 

Một khung thời gian cố định (2 đến 4 tuần) để Scrum Team hoàn thành một mục tiêu nhất định.

 

Post a Comment

0 Comments