Chủ Nhật, 13 tháng 7, 2014

Học quản lý dự án theo phương pháp Agile

Phát triển phần mềm linh hoạt (Agile software development – gọi tắt là Agile) là một nhóm các phương pháp và phương pháp luận phát triển phần mềm dựa trên các nguyên tắc phát triển phân đoạn lặp (iterative) và tăng trưởng (incremental) ra đời vào đầu những năm 90, theo đó nhu cầu và giải pháp tiến hóa thông qua sự hợp tác giữa các nhóm tự quản và liên chức năng. Agile thường sử dụng cách lập kế hoạch thích ứng (adaptive planning), việc phát triển và chuyển giao theo hướng tiến hóa; sử dụng các khung thời gian ngắn và linh hoạt để dễ dàng phản hồi lại với các thay đổi trong quá trình phát triển. Thuật ngữ agile chính thức được sử dụng rộng rãi theo cách thống nhất kể từ khi “Tuyên ngôn Agile” được giới thiệu ra công chúng năm 2001. Nhờ tính linh hoạt, đa dạng và hiệu quả cao, các phương pháp agile ngày càng trở thành sự lựa chọn hàng đầu của các khách hàng, nhà phát triển, các công ty phát triển phần mềm. Agile ra đời đã khắc phục được những yếu điểm của phương pháp Waterfall truyền thống.

Các đặc điểm của phương pháp Agile

  1. Được phát triển dựa trên quy trình phát triển lặp (Interative Development) – Mỗi dự án được chia thành nhiều mảng nhỏ, dễ sử dụng và sửa đổi khi yêu cầu của khách hàng thay đổi. Dự án sẽ thực hiện từng phần nhỏ này như từng dự án nhỏ cho đến khi tất cả các yêu cầu của khách hàng được đáp ứng và dự án được bàn giao.
  2. Cứ mỗi khi bàn giao các phần nhỏ được hoàn thành (deliverable) cho khách hàng, khách hàng có thể đưa ra các thay đổi hoặc các yêu cầu mới cho dự án. Theo đó, nhóm phát triển phần mềm có thể cập nhật và sửa đổi sản phẩm theo đúng yêu cầu khách hàng mà không nhất thiết phải thực hiện lại từ đầu.
  3. Từng phẩn nhỏ của dự án được test ngay trong quá trình làm dự án bằng các Unit test tương ứng bởi chính các lập trình viên thay vì các tester độc lập. Quá trình test này được thực hiện trong quá trình phát triển trước khi tích hợp phần mềm.
  4. Yêu cầu về việc gặp mặt trao đổi thông tin thường xuyên , cùng bàn bạc và thống nhất để hoàn thành dự án đúng thời hạn, đồng thời cũng có sự tiếp xúc với khách hàng thường xuyên để cập nhật những thay đổi về yêu cầu.
  5. Vì các quá trình của Agile đều thực hiện với nhân lực hoàn toàn là các lập trình viên trong nhóm ban đầu, nên yêu cầu về kĩ năng của các lập trình viên sẽ cao hơn và phải có kinh nghiệm trong lập trình và kiểm thử .

Agile phù hợp với các dự án có đặc điểm sau:

Mức độ rủi ro thấp. Thành viên nhóm có kinh nghiệm. Yêu cầu thay đổi thường xuyên. Kích thước nhóm nhỏ. Các thành viên làm việc cùng một địa điểm. Văn hóa công ty ưa thích sự “không trật tự” (thrive on chaos). Phương pháp này là tuyệt hảo cho các dự án nhỏ có từ hai tới tám người cùng làm việc và thường xuyên trao đổi với nhau. Khía cạnh then chốt của Lập trình Agile là từng thành viên trong nhóm làm nhiều điều từ giao tiếp với khách hàng, thu nhận yêu cầu, thiết kế kiến trúc, cho tới thiết kế cụ thể, viết mã, và đưa sản phẩm ra thị trường. Phương pháp Agile có thể không có hiệu quả trong môi trường của các dự án lớn hay các tích hợp lớn, điển hình có sự tham gia của hàng trăm người làm việc cùng với nhau. Vì Agile tập trung cho các dự án nhỏ và có thời gian hoàn tất ngắn, phương pháp này đòi hỏi có những cá nhân tài năng, những người sẵn lòng làm mọi chuyện và có năng lực tổng quát hóa, có thể làm qua nhiều công đoạn trong vòng đời truyền thống của sản phẩm (phần mềm). Phương pháp Agile cần có các cá nhân đa năng, có động lực, biết nghiên cứu, biết phân tích, biết sáng tạo, và có các kỹ năng giao tiếp cần thiết để hiểu thấu các vấn đề của khách hàng. Họ cũng phải là những người làm việc nhóm có tính kỹ luật, và là những kỹ sư phần mềm tài ba có thể cho ra đời sản phẩm đúng hạn thời gian cho phép. 

Không có nhận xét nào:

Đăng nhận xét