Agile tổng quan


1) Agile là gì?

Là phương pháp phát triển phần mềm chú trọng vào sự tiến hóa, phát triển của nó theo thời gian (xây dựng bồi đắp thêm, mở rộng thêm) với sự kế thừa tối đa, hiệu chỉnh lại cho phù hợp và tránh phải bắt đầu làm một thành phần nào đó lại từ đầu.

Bản chất của Agile chính là tạo nên những sự thay đổi theo thời gian.

Vì vậy Agile chia dự án thành các giai đoạn nhỏ, mỗi một giai đoạn sẽ tập chung phát triển một phần mềm hoàn chỉnh, bao gồm: lấy yêu cầu, phân tích, thiết kế, code, test, fixbugs và documentation.

Trong Agile, coi trọng nhất là các giao tiếp trực tiếp giữa các đối tượng tham gia dự án, hơn là qua các tài liệu… Nhất là việc giao tiếp giữa đội dự án với khách hàng.

2) Công việc thường xuyên với Agile

Refactoring code: tức là chỉnh sửa lại code, mở rộng tính năng mà không phải code lại từ đầu

Developer testing: người phát triển tự tay test phần mềm do mình làm ra

3) Các giá trị mà Agile hướng tới

a) Tính cá thể & tính tương tác

Agile coi trọng tương tác giữa các cá nhân hơn là việc sử dụng các quy trình và công cụ để áp đặt cho tất cả các thành viên.

Thật vậy, với agile, không có gì gọi là đầy đủ ngay từ đầu, các vấn đề sẽ được phát hiện ngay trong quá trình phát triển phầm mềm, được xây đắp, khắc phục dần dần. Cho nên các thành viên càng có môi trường cộng tác tốt, sẽ càng nảy sinh nhiều vấn đề, phần mềm càng hoàn thiện.

b) Sản xuất phần mềm

Mục đích của agile là các phần mềm, tạo ra các phiên bản chạy được. Nói như vậy không phải là agile phủ nhận vai trò của “tài liệu đầy đủ”. Nhưng với agile, khi chưa có tài liệu đầy đủ, đã phải có phiên bản chạy được. Việc chạy đúng hay sai là vấn đề thời gian, khi mà phần mềm có thể thay đổi theo các yêu cầu của khách hàng.

Nói cách khác, phần mềm sẽ có đồng thời với việc củng cố các tài liệu mô tả.

c) Cộng tác với khách hàng

Cũng như đã nói ở trên, với agile, không có gì gọi là đầy đủ ngay từ đầu, việc cộng tác tốt với khách hàng là một nguồn bổ sung chủ yếu cho các thiếu sót của phiên bản cũ, để ra đời các phiên bản mới.

Theo phương pháp phát triển cũ, phải mất nhiều thời gian phân tích, thiết kế mới cho ra đời một mớ các tài liệu dự án. Sau đó, phải thương lượng với khách hàng cẩn thận rồi mới bắt tay vào làm. Khách hàng sẽ rất cẩn trọng, bởi mọi thay đổi trong quá trình phát triển của họ (và giả sử rằng thay đổi này rất quan trọng) cũng khiến cho họ mất thời gian và tiền bạc thể thảo luận lại với bên phát triển. Với agile thì không, bởi vì những “thay đổi” là bản chất của agile.

d) Phản ứng với các thay đổi

Bản chất của agile chính là tạo nên những sự thay đổi theo thời gian. Vì vậy khả năng phản ứng với các thay đổi là đỏi hỏi hết sức quan trọng. Trong agile, các kế hoạch chỉ là phần “chết”. Còn nội dung của kế hoạch sẽ được cập nhật hết sức linh hoạt để phù hợp với các thay đổi.

4) Triển khai Agile

a) XP (10-20)

Hình thức “tự tổ chức” (self-organization) là một đặc điểm chung của các dự án theo triết lí Agile.
Trong một dự án phần mềm, những hiểu biết về sản phẩm luôn được nắm giữ bởi nhiều cá nhân. XP thừa nhận thực tế này bằng cách tạo ra một nhóm làm việc hỗn hợp với đầy đủ các vai trò cần thiết. Một đội dự án XP thường bao gồm các thành viên sau đây:

Đại diện khách hàng (chịu trách nhiệm về requirement)

Người quản lý sản phẩm (chịu trách nhiệm về sản phẩm, định hướng sản phẩm, thứ tự ưu tiên các tính năng).

Các chuyên gia nghiệp vụ (chịu trách nhiệm về lĩnh vực mà phần mềm đang hướng tới)

Thiết kế giao diện

Lập trình viên

Tester

Quản lý dự  án (hướng dẫn các developer, kết nối các hoạt động thông suốt)

b) Scrum (8)

Scrum là một quy trình triển khai agile, trong đó mỗi một giai đoạn phát triển tính năng không vượt quá 30 ngày. Cái tên scrum xuất phát từ bộ môn Rugby (bóng bầu dục). Mỗi một sprint như là một hiệp thi đấu.

Cùng chung ý tưởng đó, scrum đề ra các yêu cầu để có thể được hoàn thành trong vòng 30 ngày. Một tính năng cụ thể không được công nhận như đang được hoàn thành cho đến khi nó được phân tích, thiết kế, mã hoá, kiểm tra, refactor, và tài liệu hóa.

Một sprint gọi là thành công nếu nó triển khai được tất cả các tính năng trong yêu cầu.

Nếu như có một tính năng nào đó chưa được triển khai đầy đủ, nó sẽ được hold lại và chuyển tới sprint sau.

c) Crystal Orange (20-4o)

Tiếp tục tìm hiểu..

d) DSDM (*)

Tiếp tục tìm hiểu

Hình thức “tự tổ chức” (self-organization) là một đặc điểm chung của các dự án theo triết lí Agile.
Trong một dự án phần mềm, những hiểu biết về sản phẩm luôn được nắm giữ bởi nhiều cá nhân. XP thừa nhận thực tế này bằng cách tạo ra một nhóm làm việc hỗn hợp với đầy đủ các vai trò cần thiết. Một đội dự án XP thường bao gồm các thành viên sau đây:

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s