ÁP DỤNG AGILE TRONG THIẾT KẾ PHẦN MỀM
Có một lý do tại sao các phương pháp đào tạo Agile đang trở thành xu hướng chủ đạo. Chúng thực sự có kết quả! Mặc dù mọi phương pháp của Agile thì không nhất thiết phải phù hợp với mọi tổ chức, nhưng mỗi sự áp dụng đó đều đã mang lại giá trị thực sự cho nhiều tổ chức và một số phương pháp thực tiễn đó có thể được áp dụng bởi bất kỳ ai!
Ưu Điểm #1: Đáp Ứng Nhu Cầu Của Khách Hàng
Các dự án Agile liên quan đến khách hàng thường xuyên, không chỉ ở lúc ban đầu (phần cho các yêu cầu) và lúc kết lúc (phần chấp thuận). Sự tham gia này của khách hàng giảm thiểu một số vấn đề mâu thuẫn về các dự án phần mềm; Những gì họ lẽ ra phải được nhận vào cuối dự án không giống với những gì họ đã bàn bạc với chúng ta lúc ban đầu.
“Mặc dù có những phương pháp rất tốt như Business Analysis (Phân tích Kinh Doanh) hoặc là Requirements Analysis (Phân tích yêu cầu) có thể giúp giải quyết rủi ro này, nhưng chúng chỉ có thể đưa chúng ta đi xa”
Không có gì thay thế cho việc chứng minh cho khách hàng những gì chúng ta đang xây dựng và thường xuyên nhận được phản hồi của họ trong suốt dự án. Đây chính xác là những gì dự án Agile làm được.
Ngoài việc sớm phát hiện ra những hiểu lầm trong dự án, sự tương tác này giúp khách hàng có cách nhìn tốt hơn về sản phẩm đang trong giai đoạn phát triển. Cùng với khả năng hình dung các chức năng sắp có, dựa trên những gì đã được xây dựng cho đến nay. Khách hàng sẽ hiểu rõ hơn về nhu cầu của chính họ và dễ dàng dùng từ ngữ để diễn đạt lại những yêu cầu đó với các nhà phát triển. Nó cũng cho phép họ xác định khi nào nhu cầu của họ thay đổi.
Tất cả những động lực này kết hợp với nhau để cho phép khách hàng chỉ đạo dự án hướng tới sản xuất nhiều nhất những gì họ cần có thể được thực hiện trong phạm vi của dự án.
Ưu Điểm #2: Nhanh Nhẹn Hơn
Thế giới sẽ không yên bình trong khoảng thời gian từ ngày chúng ta bắt đầu một dự án đến khi nó được hoàn thành. Mọi thứ đều có thể biến chuyển cho dù dự án diễn ra trong vài ngày, vài tháng hay hơn một năm, tổ chức thay đổi, môi trường thay đổi và ngay cả các nhà phát triển cũng thay đổi.
Lý do chính tại sao các phương pháp Agile được gọi là “Agile” là vì vòng đời lặp đi lặp lại được thiết kế để thích ứng với sự thay đổi. Công việc sẽ được thực hiện trong
các phân đoạn nhỏ được lặp lại nhiều lần (Iterations hặc Sprints) chỉ trong vài tuần và quá trình chuyển đổi từ lần lặp này sang lần lặp tiếp theo bao gồm việc kiểm tra những gì có thể đã thay đổi kể từ khi vòng lặp bắt đầu và cách thích ứng với những thay đổi đó.
Như chúng ta đã đề cập trong Ưu điểm #1, nhu cầu của khách hàng có thể thay đổi. Thực sự không quan trọng liệu sự thay đổi đó có cấu thành cho khách hàng hiểu rõ hơn về nhu cầu của họ hay không, hay đó là kết quả của những thay đổi rất thực tế trong môi trường của họ. Điểm mấu chốt là việc cung cấp một sản phẩm đáp ứng nhu cầu ban đầu (không dùng được) là lãng phí và phản tác dụng. Nhưng khách hàng không phải là nguồn thay đổi duy nhất. Tình hình của tổ chức phát triển cũng có thể là nơi tạo ra sự thay đổi.
Môi trường kinh doanh thay đổi có thể tác động đến đề xuất giá trị cho dự án, khiến ban lãnh đạo phải phân bố nhiều hơn hoặc ít hơn các nguồn lực,
sắp xếp lại các vấn đề ưu tiên, gia hạn hoặc thỏa thuận mốc thời gian thậm chí là đình chỉ hoặc hủy bỏ dự án.
Bản chất lặp đi lặp lại và gia tăng của quy trình hoạch định Agile làm cho bất kỳ loại thay đổi nào trong số này ít gây gián đoạn hơn nhiều so với các dự án truyền thống. Việc làm lại toàn bộ lộ trình dự án tương đổi dễ dàng vì nó dựa trên ước tính ROM (rough order of magnitude) với rất ít chi tiết đi kèm. Và bởi vì việc lập kế hoạch chi tiết được thực hiện đúng lúc (chỉ trong vài tuần tại một thời điểm), những thay đổi cũng sẽ gây ra rất ít hoặc không cần phải làm lại ở đó.
Bất kể nguồn gốc của sự thay đổi là gì, khách hàng cũng tham gia vào việc thích nghi với nó giống như họ đang ở trong đó, bất kể là phần nào của dự án. Điều này đảm bảo rằng sự nhanh hẹn không đi kèm với chi phí làm hài lòng khách hàng.
Ưu Điểm #3: Kỳ Vọng Thực Tế Của Khách Hàng
Hầu hết khách hàng có rất ít hiểu biết hoặc là hoàn toàn không hiểu về những thứ cần thiết để phát triển ra một phần mềm. Điều này có thể dẫn đến nhiều vấn đề và sự tranh cãi về các dự án, khi khách hàng đưa ra các yêu cầu mà họ tưởng rằng, sẽ rất dễ dàng cho nhóm phát triển, và đặt câu hỏi về thời gian và công sức phải bỏ ra và tại sao dự án lại mất nhiều thời gian như vậy.
Các dự án Agile thì bao gồm cả khách hàng trong tất cả các hoạt động quan trọng nhất. Đó là lý do tại sao khách hàng được tính là một thành viên của nhóm Agile!
Các nhà phát triển và khách hàng hợp tác để xác định các yêu cầu cấp cao (User Stories) và duy trì chúng xuyên suốt dự án.
Khách hàng có mặt khi các nhà phát triển đưa ra các ước tính sơ bộ của họ (ví dụ: Story Points) để trả lời các câu hỏi về từng yêu cầu nếu cần thiết.
Nguyễn Huy.
Có một lý do tại sao các phương pháp đào tạo Agile đang trở thành xu hướng chủ đạo. Chúng thực sự có kết quả! Mặc dù mọi phương pháp của Agile thì không nhất thiết phải phù hợp với mọi tổ chức, nhưng mỗi sự áp dụng đó đều đã mang lại giá trị thực sự cho nhiều tổ chức và một số phương pháp thực tiễn đó có thể được áp dụng bởi bất kỳ ai!
Ưu Điểm #1: Đáp Ứng Nhu Cầu Của Khách Hàng
Các dự án Agile liên quan đến khách hàng thường xuyên, không chỉ ở lúc ban đầu (phần cho các yêu cầu) và lúc kết lúc (phần chấp thuận). Sự tham gia này của khách hàng giảm thiểu một số vấn đề mâu thuẫn về các dự án phần mềm; Những gì họ lẽ ra phải được nhận vào cuối dự án không giống với những gì họ đã bàn bạc với chúng ta lúc ban đầu.
“Mặc dù có những phương pháp rất tốt như Business Analysis (Phân tích Kinh Doanh) hoặc là Requirements Analysis (Phân tích yêu cầu) có thể giúp giải quyết rủi ro này, nhưng chúng chỉ có thể đưa chúng ta đi xa”
Không có gì thay thế cho việc chứng minh cho khách hàng những gì chúng ta đang xây dựng và thường xuyên nhận được phản hồi của họ trong suốt dự án. Đây chính xác là những gì dự án Agile làm được.
Ngoài việc sớm phát hiện ra những hiểu lầm trong dự án, sự tương tác này giúp khách hàng có cách nhìn tốt hơn về sản phẩm đang trong giai đoạn phát triển. Cùng với khả năng hình dung các chức năng sắp có, dựa trên những gì đã được xây dựng cho đến nay. Khách hàng sẽ hiểu rõ hơn về nhu cầu của chính họ và dễ dàng dùng từ ngữ để diễn đạt lại những yêu cầu đó với các nhà phát triển. Nó cũng cho phép họ xác định khi nào nhu cầu của họ thay đổi.
Tất cả những động lực này kết hợp với nhau để cho phép khách hàng chỉ đạo dự án hướng tới sản xuất nhiều nhất những gì họ cần có thể được thực hiện trong phạm vi của dự án.
Ưu Điểm #2: Nhanh Nhẹn Hơn
Thế giới sẽ không yên bình trong khoảng thời gian từ ngày chúng ta bắt đầu một dự án đến khi nó được hoàn thành. Mọi thứ đều có thể biến chuyển cho dù dự án diễn ra trong vài ngày, vài tháng hay hơn một năm, tổ chức thay đổi, môi trường thay đổi và ngay cả các nhà phát triển cũng thay đổi.
Lý do chính tại sao các phương pháp Agile được gọi là “Agile” là vì vòng đời lặp đi lặp lại được thiết kế để thích ứng với sự thay đổi. Công việc sẽ được thực hiện trong
các phân đoạn nhỏ được lặp lại nhiều lần (Iterations hặc Sprints) chỉ trong vài tuần và quá trình chuyển đổi từ lần lặp này sang lần lặp tiếp theo bao gồm việc kiểm tra những gì có thể đã thay đổi kể từ khi vòng lặp bắt đầu và cách thích ứng với những thay đổi đó.
Như chúng ta đã đề cập trong Ưu điểm #1, nhu cầu của khách hàng có thể thay đổi. Thực sự không quan trọng liệu sự thay đổi đó có cấu thành cho khách hàng hiểu rõ hơn về nhu cầu của họ hay không, hay đó là kết quả của những thay đổi rất thực tế trong môi trường của họ. Điểm mấu chốt là việc cung cấp một sản phẩm đáp ứng nhu cầu ban đầu (không dùng được) là lãng phí và phản tác dụng. Nhưng khách hàng không phải là nguồn thay đổi duy nhất. Tình hình của tổ chức phát triển cũng có thể là nơi tạo ra sự thay đổi.
Môi trường kinh doanh thay đổi có thể tác động đến đề xuất giá trị cho dự án, khiến ban lãnh đạo phải phân bố nhiều hơn hoặc ít hơn các nguồn lực,
sắp xếp lại các vấn đề ưu tiên, gia hạn hoặc thỏa thuận mốc thời gian thậm chí là đình chỉ hoặc hủy bỏ dự án.
Bản chất lặp đi lặp lại và gia tăng của quy trình hoạch định Agile làm cho bất kỳ loại thay đổi nào trong số này ít gây gián đoạn hơn nhiều so với các dự án truyền thống. Việc làm lại toàn bộ lộ trình dự án tương đổi dễ dàng vì nó dựa trên ước tính ROM (rough order of magnitude) với rất ít chi tiết đi kèm. Và bởi vì việc lập kế hoạch chi tiết được thực hiện đúng lúc (chỉ trong vài tuần tại một thời điểm), những thay đổi cũng sẽ gây ra rất ít hoặc không cần phải làm lại ở đó.
Bất kể nguồn gốc của sự thay đổi là gì, khách hàng cũng tham gia vào việc thích nghi với nó giống như họ đang ở trong đó, bất kể là phần nào của dự án. Điều này đảm bảo rằng sự nhanh hẹn không đi kèm với chi phí làm hài lòng khách hàng.
Ưu Điểm #3: Kỳ Vọng Thực Tế Của Khách Hàng
Hầu hết khách hàng có rất ít hiểu biết hoặc là hoàn toàn không hiểu về những thứ cần thiết để phát triển ra một phần mềm. Điều này có thể dẫn đến nhiều vấn đề và sự tranh cãi về các dự án, khi khách hàng đưa ra các yêu cầu mà họ tưởng rằng, sẽ rất dễ dàng cho nhóm phát triển, và đặt câu hỏi về thời gian và công sức phải bỏ ra và tại sao dự án lại mất nhiều thời gian như vậy.
Các dự án Agile thì bao gồm cả khách hàng trong tất cả các hoạt động quan trọng nhất. Đó là lý do tại sao khách hàng được tính là một thành viên của nhóm Agile!
Các nhà phát triển và khách hàng hợp tác để xác định các yêu cầu cấp cao (User Stories) và duy trì chúng xuyên suốt dự án.
Khách hàng có mặt khi các nhà phát triển đưa ra các ước tính sơ bộ của họ (ví dụ: Story Points) để trả lời các câu hỏi về từng yêu cầu nếu cần thiết.
Nguyễn Huy.